“原文 Understanding LTE with MATLAB ,作者Houman Zarrinkoub,本文是对于该书的翻译,书中的专业性词汇给出了英文原文,图和表的排版都是参考原文,翻译不准确的地方请读者多多包涵。
本文仅限于个人学习,研究,交流,不得用于其他商业用途!”
第5章 OFDM
到目前为止,我们已经考虑了LTE标准的调制、加扰和编码规范,并使用了一个简单的信道模型(加性高斯白噪声,AWGN)来进行性能评估。了解正交频分复用(OFDM)是标准的基本空中接口,需要了解和建模更复杂的信道模型。
在本章中,我们考虑实际的信道模型,该模型考虑了动态信道响应和衰落条件。由移动性导致的多径衰落和多普勒效应等短期衰落效应将导致频率选择性信道模型。LTE中的OFDM和单载波频分复用(SC-FDM)多址技术分别用于下行链路和上行链路,使用高效的频域均衡器来对抗频率选择性衰落,并有助于其优越的频谱效率。在本章中,我们将着重于单天线配置,而在下一章中,我们将结合多输入多输出(MIMO)和OFDM。
我们将详细介绍OFDM技术的基础,并讨论在LTE标准中的OFDM帧结构和实现。然后,我们将讨论OFDM信号的时频映射和用于自适应地利用信道带宽的各种资源元素粒度,接着在接收机处对OFDM信号进行频域均衡。我们研究了零逼近(ZF)、最小均方误差(MMSE)、均衡器和参考信号或导频插值的细节。最后,我们检查由迄今为止开发的组件组成的收发器在标准规定的各种多径衰落和移动性条件下的性能。
5.1 信道建模
无线信道的特征在于发射机和接收机之间不同传播路径的可用性。除了发射器和接收器之间的直接路径(可能甚至不存在)之外,还可以通过反射、衍射、散射或其他传播场景来形成其他路径。通过穿过不同的路径,可以在接收器处同时接收不同版本的发射信号。这些不同的版本表现出不同的信号功率和时间延迟或相位分布。由于这些接收信号在时间上是相关的,所以对于大多数无线连接来说,AWGN模型不是最具代表性的信道模型。因此,对无线信道的特性进行适当的建模是移动通信系统设计的重要要求。信道传播通常导致接收信号相对于发送信号的功率降低。一般来说,功率降低分为两类:(i)信号衰减或大规模衰落,和(i i)衰落或小规模衰落。
5.1.1 大尺度和小尺度衰落
路径损耗和阴影是最显著的大规模衰落效应之一。在设计蜂窝通信应考虑了这些较大的特征[1 ]。小尺度衰落包括多径衰落和由于移动性引起的时间色散。这些特点是短暂的,必须自适应处理。物理层的设计应该包括有效地处理这些类型的信道损伤的技术[1]。
5.1.2 多径衰落
多径衰落的特征是功率延迟分布,包括两个分量:相对延迟向量和平均功率参数向量。另一组有用的标量度量是作为相对延迟的第一和第二时刻的平均超时延或根均方(RMS)延迟扩展。多径衰落可以是平坦的或频率选择性的。如果带宽大于延迟扩展的倒数,信道频率响应将导致多径衰落。
在蜂窝通信环境中,在移动终端处按照来自基站的直接路径接收信号。一些信号也将从建筑物或其他反射器反射出来,并且以时延和衰减的功率到达移动终端。由于移动接收机获得这些信号的线性组合,因此获得的净信号实质上是输入信号和信道的脉冲响应的卷积。在频域中,信道的频率响应包括不同频率下的不同响应模式;因此我们有频率选择性衰落,如图5.1。
在具有多径传播特性的时间色散信道的情况下,不仅子载波内存在码间干扰,而且子载波之间也存在干扰。这是因为子载波之间的正交性将由于一条路径的解调器相关间隔与另一条路径的符号边界的重叠而部分丢失。用于计算快速傅立叶变换(FFT)的积分间隔不一定对应于该路径的复指数周期的整数,因为调制符号可能在连续的符号间隔之间不同。
5.1.3 多普勒效应
对于在诸如LTE之类的宽带上传输的移动系统,主要信道退化是由多径传播引起的短期衰落的结果。我们需要考虑衰落信道的影响,以便提供LTE系统性能的准确评估。作为移动终端移动的结果,信道脉冲响应的轮廓可以变化。快衰落信道和慢衰落信道反映移动终端的速度,并且以多普勒频移来表示[1]。
5.1.4 MATLAB 例子
通过使用通信系统工具箱的各种信道模型,我们可以研究信道响应对发送信号的影响。瑞利信道对象和瑞利信道对象可以用来对单条传播路径进行建模,而公共MIMO信道系统对象可以用来研究多天线和多条传播路径的影响。所有这些分量都使用延迟分布和多普勒频移作为参数来模拟衰落信道的动态。
为了熟悉这些对象,让我们分别检查四种类型的信道。这些信道模型之间的差异涉及(i)是否存在频率平坦或频率选择性信道,以及(i i)是否存在由于接收机的移动性引起的多普勒偏移导致的频率色散信道。
5.1.4.1 低移动性平坦衰落信道
第一类信道是低移动性平坦衰落信道。在这种情况下,延迟分布不包含多个时间偏移。其特点是具有表示发射机与接收机之间的时差的单个主要延迟值。此外,低迁移率导致接近零的多普勒频移。下面的MATLAB函数实现了这样的信道模型。
1function y = ChanModelFading(in, Chan)
2%#codegen
3% Get simulation params
4numTx=1;
5numRx=1;
6chanSRate = Chan.chanSRate;
7PathDelays = Chan.PathDelays;
8PathGains = Chan.PathGains;
9Doppler = Chan.DopplerShift;
10% Initialize objects
11persistent chanObj
12if isempty(chanObj)
13 chanObj = comm.MIMOChannel(...
14 'SampleRate', chanSRate, ...
15 'MaximumDopplerShift', Doppler, ...
16 'PathDelays', PathDelays,...
17 'AveragePathGains', PathGains,...
18 'NumTransmitAntennas',numTx,... %
19 'TransmitCorrelationMatrix', eye(numTx),...
20 'ReceiveCorrelationMatrix', eye(numRx),...
21 'PathGainsOutputPort', false,...
22 'NormalizePathGains', true,...
23 'NormalizeChannelOutputs', true);
24end
25y = step(chanObj, in);
26
为了可视化这种信道对系统的影响,我们将衰落信道添加到包含编码加扰和调制的系统中,并观察解调器的输入信号。注意,通过在下面的MATLAB函数中运行实验,我们可以观察到,即使是表示温和形式的信道响应的静态平坦衰落信道,其性能也会显著降低。
函数chap5_ex01
1function [ber, bits] = chap5_ex01(EbNo, maxNumErrs, maxNumBits, prmLTE)
2%#codegen
3%% Constants
4FRM=2432-24;
5Kplus=FRM+24;
6Indices = lteIntrlvrIndices(Kplus);
7ModulationMode=prmLTE.Mode;
8k=2*ModulationMode;
9maxIter=prmLTE.maxIter;
10CodingRate=prmLTE.Rate;
11snr = EbNo + 10*log10(k) + 10*log10(CodingRate);
12noiseVar = 10.^(-snr/10);
13%% Processsing loop modeling transmitter, channel model and receiver
14numErrs = 0; numBits = 0; nS=0;
15while ((numErrs < maxNumErrs) && (numBits < maxNumBits))
16 % Transmitter
17 u = randi([0 1], FRM,1); % Randomly generated input bits
18 data= CbCRCGenerator(u); % Transport block CRC code
19 [t1, Kplus, ~] = TbChannelCoding(data, prmLTE);
20 t2 = Scrambler(t1, nS); % Scrambler
21 t3 = Modulator(t2, ModulationMode); % Modulator
22 % Channel & Add AWG noise
23 rxFade = ChanModelFading(t3, prmLTE); % Fading channel - assume unit sigPower
24 c0 = AWGNChannel2(rxFade, noiseVar ); % AWGN channel
25 zVisualize_ex01(prmLTE, t3, c0); % Visualize channel response and constellation
26 % Receiver
27 r0 = DemodulatorSoft(c0, ModulationMode, noiseVar); % Demodulator
28 r1 = DescramblerSoft(r0, nS); % Descrambler
29 r2 = RateDematcher(r1, Kplus); % Rate Matcher
30 r3 = TurboDecoder(-r2, Indices, maxIter); % Turbo Deocder
31 y = CbCRCDetector(r3); % Code block CRC dtector
32 % Measurements
33 numErrs = numErrs + sum(y~=u); % Update number of bit errors
34 numBits = numBits + FRM; % Update number of bits processed
35 % Manage slot number with each subframe processed
36 nS = nS + 2; nS = mod(nS, 20);
37end
38%% Clean up & collect results
39ber = numErrs/numBits; % Compute Bit Error Rate (BER)
40bits = numBits;
41
函数zVisualize_ex01
1function zVisualize_ex01(prmLTE, txSig, rxSig)
2% Constellation Scopes & Spectral Analyzers
3persistent hScope1 hSpecAnalyzer
4% Constellation Diagrams
5if isempty(hScope1)
6hScope1 = comm.ConstellationDiagram('ShowReferenceConstellation', false,...
7 'YLimits', [-3,3], 'XLimits', [-3,3], 'Position', ...
8 figposition([5 60 20 25]), 'Name', 'After Channel Model');
9% Spectrum Scope
10hSpecAnalyzer = dsp.SpectrumAnalyzer('SampleRate', prmLTE.chanSRate, ...
11 'SpectrumType', 'Power density', 'PowerUnits', 'dBW', ...
12 'RBWSource', 'Property', 'RBW', 15000,...
13 'FrequencySpan', 'Span and center frequency',...
14 'Span', 0.5*prmLTE.chanSRate, 'CenterFrequency', 0,...
15 'SpectralAverages', 10, ...
16 'Title', 'Transmitted & Received Signal Spectrum', 'YLimits', [-80 -55],...
17 'YLabel', 'PSD');
18end
19% Update Spectrum scope
20step(hSpecAnalyzer, [txSig, rxSig]);
21% Update Constellation Scope
22step(hScope1, rxSig);
23end
24
1%% Visualizing channel models under different mobility and multipath delay profiles
2maxNumErrs=1e6;
3maxNumBits=1e6;
4EbNo=9;
5CodingRate=1/3; % Choose any coding rate between 1/3 to 0.99
6Mode=3; % Choose either of 1 for QPSK or 2 for QAM16 or 3 for QAM64
7prmLTE.Mode=Mode;
8prmLTE.Rate=CodingRate;
9prmLTE.maxIter=6;
10prmLTE.chanSRate=3.654e6;
11chanSRate=prmLTE.chanSRate;
12%% Low-mobility flat fading channel
13prmLTE.PathDelays=0*(1/chanSRate);
14prmLTE.PathGains= 0;
15prmLTE.DopplerShift= 0;
16clear functions
17chap5_ex01(EbNo, maxNumErrs, maxNumBits, prmLTE);
图5.2显示了传输带宽内发送和接收信号的频率响应。它解释了为什么这被称为平坦衰落信道,因为在每个频率的整个带宽中,响应被相同的值衰落。
图5.2 低移动性平坦衰落信道
5.1.4.2 高移动性平坦衰落信道
现在我们为多普勒频移设置一个非零值,以便对高移动性平坦衰落信道建模。注意,信道响应的轮廓仍然是平坦衰落的,但是整个频谱的增益随时间而变化。而且,接收信号的星座仍然类似于64QAM(正交幅度调制)调制。然而,在每个时间步长,星座基于多普勒频移导致的相位偏移而旋转。这些效果如图5.3所示。
1%% Visualizing channel models under different mobility and multipath delay profiles
2maxNumErrs=1e6;
3maxNumBits=1e6;
4EbNo=9;
5CodingRate=1/3; % Choose any coding rate between 1/3 to 0.99
6Mode=3; % Choose either of 1 for QPSK or 2 for QAM16 or 3 for QAM64
7prmLTE.Mode=Mode;
8prmLTE.Rate=CodingRate;
9prmLTE.maxIter=6;
10prmLTE.chanSRate=3.654e6;
11chanSRate=prmLTE.chanSRate;
12%% High-mobility flat fading channel
13prmLTE.PathDelays=0*(1/chanSRate);
14prmLTE.PathGains= 0;
15prmLTE.DopplerShift= 70;
16clear functions
17chap5_ex01(EbNo, maxNumErrs, maxNumBits, prmLTE);
图5.3高移动性平坦衰落信道
5.1.4.3低移动性频率选择衰减信道
在本节中,我们检查频率选择性信道模型,该模型仍然具有零多普勒频移,但是它将具有用于相关延迟分布的向量。利用时间延迟向量,我们观察到相同大小的增益向量。这导致了频率选择性信道响应,如图5.4所示。
1%% Visualizing channel models under different mobility and multipath delay profiles
2maxNumErrs=1e6;
3maxNumBits=1e6;
4EbNo=9;
5CodingRate=1/3; % Choose any coding rate between 1/3 to 0.99
6Mode=3; % Choose either of 1 for QPSK or 2 for QAM16 or 3 for QAM64
7prmLTE.Mode=Mode;
8prmLTE.Rate=CodingRate;
9prmLTE.maxIter=6;
10prmLTE.chanSRate=3.654e6;
11chanSRate=prmLTE.chanSRate;
12%% Low-mobility frequency-selective fading channel
13prmLTE.PathDelays= [0 10 20 30 100]*(1/chanSRate);
14prmLTE.PathGains= [0 -3 -6 -8 -172];
15prmLTE.DopplerShift= 0;
16clear functions
17chap5_ex01(EbNo, maxNumErrs, maxNumBits, prmLTE);
图5.4 低移动性频率选择衰减信道
5.1.4.4高移动性频率选择衰减信道
最后,通过设置多普勒频移的非零值,我们可以对高迁移率频率选择性信道建模。与先前的高迁移率情况一样,我们观察到在不同频率值下信道增益的变化曲线。我们还注意到,信道响应随时间变化。图5.5说明了在间隔10ms的两个子帧上计算的信道响应的幅度谱。
1%% Visualizing channel models under different mobility and multipath delay profiles
2maxNumErrs=1e6;
3maxNumBits=1e6;
4EbNo=9;
5CodingRate=1/3; % Choose any coding rate between 1/3 to 0.99
6Mode=3; % Choose either of 1 for QPSK or 2 for QAM16 or 3 for QAM64
7prmLTE.Mode=Mode;
8prmLTE.Rate=CodingRate;
9prmLTE.maxIter=6;
10prmLTE.chanSRate=3.654e6;
11chanSRate=prmLTE.chanSRate;
12%% High-mobility frequency-selective fading channel
13prmLTE.PathDelays= [0 10 20 30 100]*(1/chanSRate);
14prmLTE.PathGains= [0 -3 -6 -8 -172];
15prmLTE.DopplerShift= 70;
16clear functions
17chap5_ex01(EbNo, maxNumErrs, maxNumBits, prmLTE);
图5.5高移动性频率选择衰减信道
未完待续
2018/12/9