LTE物理层概述(6)-- LTE之调制与解调及其matlab仿真

LTE(长期演进)下行链路 PHY(物理)层处理链路可以认为是下行链路共享信道(DLSCH)和物理下行链路共享信道(PDSCH)处理的组合。DLSCH 即 下行链路传输信道 TrCH。

LTE下行链路物理模型描述,具体可参照之前文章:   

LTE物理层概述(3)-- 下行链路物理模型概述https://blog.csdn.net/snowman898/article/details/124684077

本节主要学习 LTE物理信道的调制与解调功能,文末给出仿真代码。

1、调制

LTE使用的调制方案包括:QPSK, QAM16 和 QAM64。图1所示为三个调制方案的星座图:

       

  

图1  LTE 三种调制方案星座图

1.1  QPSK调制器映射规则

表1 LTE中QPSK调制映射器规则
载荷比特图形调制符号
同相(I)正交(Q)
00\frac{1}{\sqrt{2}}\frac{1}{\sqrt{2}}
01\frac{1}{\sqrt{2}}-\frac{1}{\sqrt{2}}
10-\frac{1}{\sqrt{2}}\frac{1}{\sqrt{2}}
11-\frac{1}{\sqrt{2}}-\frac{1}{\sqrt{2}}

1.2  QAM16 调制器映射规则

表2 LTE中QAM16调制映射器规则

载荷比特

图形

调制符号

载荷比特

图形

调制符号
同相(I)正交(Q)同相(I)正交(Q)
0000\frac{1}{\sqrt{10}}\frac{1}{\sqrt{10}}1000-\frac{1}{\sqrt{10}}\frac{1}{\sqrt{10}}
0001\frac{1}{\sqrt{10}}\frac{3}{\sqrt{10}}1001-\frac{1}{\sqrt{10}}\frac{3}{\sqrt{10}}
0010\frac{3}{\sqrt{10}}\frac{1}{\sqrt{10}}1010-\frac{3}{\sqrt{10}}\frac{1}{\sqrt{10}}
0011\frac{3}{\sqrt{10}}\frac{3}{\sqrt{10}}1011-\frac{3}{\sqrt{10}}\frac{3}{\sqrt{10}}
0100\frac{1}{\sqrt{10}}-\frac{1}{\sqrt{10}}1100-\frac{1}{\sqrt{10}}-\frac{1}{\sqrt{10}}
0101\frac{1}{\sqrt{10}}-\frac{3}{\sqrt{10}}1101-\frac{1}{\sqrt{10}}-\frac{3}{\sqrt{10}}
0110\frac{3}{\sqrt{10}}-\frac{1}{\sqrt{10}}1110-\frac{3}{\sqrt{10}}-\frac{1}{\sqrt{10}}
0111\frac{3}{\sqrt{10}}-\frac{3}{\sqrt{10}}1111-\frac{3}{\sqrt{10}}-\frac{3}{\sqrt{10}}

 1.3  QAM64 调制器映射规则 

表3 LTE中QAM64调制映射器规则

载荷比特

图形

调制符号

载荷比特

图形

调制符号
同相(I)正交(Q)同相(I)正交(Q)
000000\frac{3}{\sqrt{42}}\frac{3}{\sqrt{42}}100000-\frac{3}{\sqrt{42}}\frac{3}{\sqrt{42}}
000001\frac{3}{\sqrt{42}}\frac{1}{\sqrt{42}}100001-\frac{3}{\sqrt{42}}\frac{1}{\sqrt{42}}
000010\frac{1}{\sqrt{42}}\frac{3}{\sqrt{42}}100010-\frac{1}{\sqrt{42}}\frac{3}{\sqrt{42}}
000011\frac{1}{\sqrt{42}}\frac{1}{\sqrt{42}}100011-\frac{1}{\sqrt{42}}\frac{1}{\sqrt{42}}
000100\frac{3}{\sqrt{42}}\frac{5}{\sqrt{42}}100100-\frac{3}{\sqrt{42}}\frac{5}{\sqrt{42}}
000101\frac{3}{\sqrt{42}}\frac{7}{\sqrt{42}}100101-\frac{3}{\sqrt{42}}\frac{7}{\sqrt{42}}
000110\frac{1}{\sqrt{42}}\frac{5}{\sqrt{42}}100110-\frac{1}{\sqrt{42}}\frac{5}{\sqrt{42}}
000111\frac{1}{\sqrt{42}}\frac{7}{\sqrt{42}}100111-\frac{1}{\sqrt{42}}\frac{7}{\sqrt{42}}
001000\frac{5}{\sqrt{42}}\frac{3}{\sqrt{42}}101000-\frac{5}{\sqrt{42}}\frac{3}{\sqrt{42}}
001001\frac{5}{\sqrt{42}}\frac{1}{\sqrt{42}}101001-\frac{5}{\sqrt{42}}\frac{1}{\sqrt{42}}
001010\frac{7}{\sqrt{42}}\frac{3}{\sqrt{42}}101010-\frac{7}{\sqrt{42}}\frac{3}{\sqrt{42}}
001011\frac{7}{\sqrt{42}}\frac{1}{\sqrt{42}}101011-\frac{7}{\sqrt{42}}\frac{1}{\sqrt{42}}
001100\frac{5}{\sqrt{42}}\frac{5}{\sqrt{42}}101100-\frac{5}{\sqrt{42}}\frac{5}{\sqrt{42}}
001101\frac{5}{\sqrt{42}}\frac{7}{\sqrt{42}}101101-\frac{5}{\sqrt{42}}\frac{7}{\sqrt{42}}
001110\frac{7}{\sqrt{42}}\frac{5}{\sqrt{42}}101110-\frac{7}{\sqrt{42}}\frac{5}{\sqrt{42}}
001111\frac{7}{\sqrt{42}}\frac{7}{\sqrt{42}}101111-\frac{7}{\sqrt{42}}\frac{7}{\sqrt{42}}
010000\frac{3}{\sqrt{42}}-\frac{3}{\sqrt{42}}110000-\frac{3}{\sqrt{42}}-\frac{3}{\sqrt{42}}
010001\frac{3}{\sqrt{42}}-\frac{1}{\sqrt{42}}110001-\frac{3}{\sqrt{42}}-\frac{1}{\sqrt{42}}
010010\frac{1}{\sqrt{42}}-\frac{3}{\sqrt{42}}110010-\frac{1}{\sqrt{42}}-\frac{3}{\sqrt{42}}
010011\frac{1}{\sqrt{42}}-\frac{1}{\sqrt{42}}110011-\frac{1}{\sqrt{42}}-\frac{1}{\sqrt{42}}
010100\frac{3}{\sqrt{42}}-\frac{5}{\sqrt{42}}110100-\frac{3}{\sqrt{42}}-\frac{5}{\sqrt{42}}
010101\frac{3}{\sqrt{42}}-\frac{7}{\sqrt{42}}110101-\frac{3}{\sqrt{42}}-\frac{7}{\sqrt{42}}
010110\frac{1}{\sqrt{42}}-\frac{5}{\sqrt{42}}110110-\frac{1}{\sqrt{42}}-\frac{5}{\sqrt{42}}
010111\frac{1}{\sqrt{42}}-\frac{7}{\sqrt{42}}110111-\frac{1}{\sqrt{42}}-\frac{7}{\sqrt{42}}
011000\frac{5}{\sqrt{42}}-\frac{3}{\sqrt{42}}111000-\frac{5}{\sqrt{42}}-\frac{3}{\sqrt{42}}
011001\frac{5}{\sqrt{42}}-\frac{1}{\sqrt{42}}111001-\frac{5}{\sqrt{42}}-\frac{1}{\sqrt{42}}
011010\frac{7}{\sqrt{42}}-\frac{3}{\sqrt{42}}111010-\frac{7}{\sqrt{42}}-\frac{3}{\sqrt{42}}
011011\frac{7}{\sqrt{42}}-\frac{1}{\sqrt{42}}111011-\frac{7}{\sqrt{42}}-\frac{1}{\sqrt{42}}
011100\frac{5}{\sqrt{42}}-\frac{5}{\sqrt{42}}111100-\frac{5}{\sqrt{42}}-\frac{5}{\sqrt{42}}
011101\frac{5}{\sqrt{42}}-\frac{7}{\sqrt{42}}111101-\frac{5}{\sqrt{42}}-\frac{7}{\sqrt{42}}
011110\frac{7}{\sqrt{42}}-\frac{5}{\sqrt{42}}111110-\frac{7}{\sqrt{42}}-\frac{5}{\sqrt{42}}
011111\frac{7}{\sqrt{42}}-\frac{7}{\sqrt{42}}111111-\frac{7}{\sqrt{42}}-\frac{7}{\sqrt{42}}

在实际实现中,尤其是matlab,我们可以调用以下代码:

QAM16 = comm.RectangularQAMModulator(16);
out = constellation(QAM16);

 

 2、Matlab实现

function y = lte_Modulator(u, Mode)

% Initialization
% Mode 1 -- QPSK 2--
%%
% 为避免每次调用函数时创建和释放系统对象的开销,函数内的系统对象为持久变量声明类型
%  持久变量声明类型可以支持只在函数第一次调用时创建系统对象,从而提高循环调用函数时的仿真速度
%%

persistent QPSK QAM16 QAM64
if isempty(QPSK)
    QPSK = comm.PSKModulator(4, 'BitInput', true, 'PhaseOffset', pi/4,...
                  'SymbolMapping', 'Custom', 'CustomSymbolMapping', [0 2 3 1]);
              
    QAM16 = comm.RectangularQAMModulator(16, 'BitInput', true, 'NormalizationMethod', 'Average power',...
                  'SymbolMapping', 'Custom', 'CustomSymbolMapping', [11 10 14 15 9 8 12 13 1 0 4 5 3 2 6 7]);
              
    QAM64 = comm.RectangularQAMModulator(64, 'BitInput', true, 'NormalizationMethod', 'Average power',...
                  'SymbolMapping', 'Custom', 'CustomSymbolMapping',...
                   [47 46 42 43 59 58 62 63 45 44 40 41 57 56 60 61 37 36 32 33 49 ...
                    48 52 53 39 38 34 35 51 50 54 55 7 6 2 3 19 18 22 23 5 4 0 1 ...
                   17 16 20 21 13 12 8 9 25 24 28 29 15 14 10 11 27 26 30 31]);
end

% Processing
switch Mode
    case 1
        y = step(QPSK, u);
    case 2
        y = step(QAM16,u);
    case 3
        y = step(QAM64,u);
end

 2.1 LTE调制Matlab实现

在QPSK调制情况下,我们可以调用 comm.PSKModulator 系统对象并将其调制阶数设置为4.参数属性描述如下:

1)' BitInput ' 属性:这里设置属性为 ' true' , 表示将调制器输入为 比特值向量。QPSK调制下,                                       每 2bit 映射到一个调制符号;

2) ' PhaseOffset ' 属性:这里设置为 pi / 4,表示调制符号对应复平面单位圆上4个点,角度依

                                           次为 [ 3/4 pi, pi / 4, -pi / 4, -3 / 4 pi ];

3)' CustomSymbolMapping ' 属性 : 确保LTE中定义的比特图形产生相应的输出符号。

对于QAM16,QAM64调制实现,可参考如上代码利用matlab通信工具箱函数实现。

 2.2 LTE解调及Matlab实现

解调可以使用硬判决或者软判决解码 —— 使用硬判决解码时,解调器输入符号映射为估计输出比特;软判决解码时,输出为对数估计似然比(LLR)向量。

硬判决解调代码如下所示:

function y = lte_DemodulatorHard(u, Mode)

% Initialization
% Mode 1 -- QPSK 2--
persistent QPSK QAM16 QAM64
if isempty(QPSK)
    QPSK = comm.PSKDemodulator('ModulationOrder',4, 'BitOutput', true, ...
           'PhaseOffset',pi/4,'SymbolMapping', 'Custom', 'CustomSymbolMapping',  ...
           [0 2 3 1]);
              
    QAM16 = comm.RectangularQAMDemodulator('ModulationOrder',16, 'BitOutput', true, ...
       'NormalizationMethod', 'Average power','SymbolMapping', 'Custom', ...
       'CustomSymbolMapping', [11 10 14 15 9 8 12 13 1 0 4 5 3 2 6 7]);
              
    QAM64 = comm.RectangularQAMDemodulator('ModulationOrder',64, 'BitOutput', true, ...
            'NormalizationMethod', 'Average power','SymbolMapping', 'Custom', ...
            'CustomSymbolMapping', [47 46 42 43 59 58 62 63 45 44 40 41 ...
            57 56 60 61 37 36 32 33 49 48 52 53 39 38 34 35 51 50 54 55 7 6 2 3 19 18 ... 
            22 23 5 4 0 1 17 16 20 21 13 12 8 9 25 24 28 29 15 14 10 11 27 26 30 31]);
end

软判决解调代码如下所示

function y = lte_DemodulatorSoft(u, Mode, NoiseVar)

% Initialization
% Mode 1 -- QPSK 2--
persistent QPSK QAM16 QAM64

if isempty(QPSK)
    QPSK = comm.PSKDemodulator('ModulationOrder',4, 'BitOutput', true,   ...
              'PhaseOffset',pi/4, 'SymbolMapping', 'Custom',   ...
              'CustomSymbolMapping', [0 2 3 1], 'DecisionMethod', ...
              'Approximate log-likelihood ratio', 'VarianceSource', 'Input port');
              
    QAM16 = comm.RectangularQAMDemodulator('ModulationOrder',16, 'BitOutput', true,  ...
              'NormalizationMethod', 'Average power', 'SymbolMapping', 'Custom', ... 
              'CustomSymbolMapping', [11 10 14 15 9 8 12 13 1 0 4 5 3 2 6 7], ...
              'DecisionMethod', 'Approximate log-likelihood ratio', ...
              'VarianceSource', 'Input port');
              
    QAM64 = comm.RectangularQAMDemodulator('ModulationOrder',64, 'BitOutput', true, ... 
              'NormalizationMethod', 'Average power', 'SymbolMapping', ...
              'Custom','CustomSymbolMapping', [47 46 42 43 59 58 62 63 45 44 40 41 ...
              57 56 60 61 37 36 32 33 49 48 52 53 39 38 34 35 51 50 54 55 7 6 2 3 19 ...
              22 23 5 4 0 1  17 16 20 21 13 12 8 9 25 24 28 29 15 14 10 11 27 26 30 31], 
              'DecisionMethod', 'Approximate log-likelihood ratio', ...
              'VarianceSource', 'Input port');
end

2.3 BER测量

    QAM16和 QAM64 的带宽利用率 分别是 QPSK 的 2倍和3倍。不过,高阶调制方案会更易受到信道噪声的影响。比较QPSK、QAM16和QAM64调制方案,在给定误码率概率下,接收端需要更高的Eb/No。

以下代码为一个简单的LTE 调制解调系统,用以衡量各种调制方案的BER和SNR之间的关系。该系统包括调制器、解调器、AWGN信道、计算BER和Eb/No的函数。主要代码展示如下所示:


clear
clc
close all

EbNo = 25;
maxNumErrs = 1000;
maxNumBits = 20e6;

FRM = 9600;
% Modulation Mode 
ModulationMode =3;          % 1--QPSK  2--QAM16  3-- QAM64
k = 2* ModulationMode;
snr = EbNo + 10*log10(k);   

% Processing loop: transmitter, channel model and receiver
 numErrs = 0;
 numBits = 0;
 
 AWGN = comm.AWGNChannel;
 AWGN.EbNo = snr;
 
 while((numErrs < maxNumErrs) && (numBits < maxNumBits))
    
     % Transmitter
    u = randi([0,1], FRM, 1);
    x = lte_Modulator( u, ModulationMode);
        
    % channel
    c0 = AWGN.step(x);
    c1 = scatterplot(c0);
    title('QAM64调制散点图');
    grid on
    
    % Receiver
    r0 = lte_DemodulatorHard(c0, ModulationMode);
    y = r0(1:FRM);
    
    % Measurements 
    numErrs = numErrs + sum(y ~= u);
    numBits = numBits + FRM;
 end
 
 %
 ber = numErrs / numBits

由于该仿真以函数形式呈现,实际执行时要调用MATLAB工具箱 bertool

配置好后,分别将 “ chapter1_ex01.m”代码中 :

% Modulation Mode 
ModulationMode =3;          % 1--QPSK  2--QAM16  3-- QAM64

ModulationMode值设置为1,2,3,从而得到 各种调制方式下 EbNo 与 ber的关系图:

 本系统完整代码资源可下载:

LTE QPSK、QAM16 以及 QAM64调制下 EbNo 与 误码率BER之间的仿真关系图icon-default.png?t=M4ADhttps://download.csdn.net/download/snowman898/85372067

说明:本章所述原理,只为让大家有系统的认识,可以完整了解 LTE 调制信号链路。以下再补充2点:

1)关于QAM16/64具体的数学公式推导,大家可以自行搜索,个人推荐以下帖子:

  QAM信号的调制解调原理icon-default.png?t=M4ADhttps://blog.csdn.net/gemengxia/article/details/116150246?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165249485116782391887600%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165249485116782391887600&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-116150246-null-null.142^v9^control,157^v4^control&utm_term=qam%E8%B0%83%E5%88%B6&spm=1018.2226.3001.4187

2)QAM16以及QAM64关键技术实现及其难点,后续会另开帖子说明。

 
 

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值