主要内容

多径衰落信道

本例展示了如何使用Rayleigh和rist多径衰落信道系统对象及其内置可视化来建模衰落信道并显示信道的光谱特征。瑞利衰落信道和瑞斯衰落信道是无线通信中真实现象的有用模型。这些现象包括多径散射效应、时间分散和多普勒频移,这些都是由发射机和接收机之间的相对运动引起的。

使用衰落信道处理信号包括以下步骤:

  1. 创建一个通道系统对象™,用于描述您想要使用的通道。信道对象是一种MATLAB®变量,它包含有关信道的信息,例如最大多普勒频移。

  2. 根据需要调整System对象的属性,以建模您的通道。例如,您可以更改路径延迟或平均路径增益。

  3. 像函数一样调用信道系统对象以应用信道模型,该模型生成随机离散路径增益并对输入信号进行滤波。

初始化

下面的变量控制Rayleigh和rist通道对象。默认情况下,通道被建模为四条衰落路径,每个路径表示以大约相同的延迟接收的多路径组件集群。

sampleRate500kHz = 500e3;采样率为500K HzsampleRate20kHz = 20e3;% 20K Hz的采样率maxDopplerShift = 200;弥散分量最大多普勒频移% (Hz)delayVector = (0:5:15)*1e-6;四路信道离散时延百分比(s)gainVector = [0 -3 -6 -9];平均路径增益% (dB)

最大多普勒频移计算为 v × f / c ,在那里 v 为移动速度,f为载频,c为光速。例如,最大多普勒频移为200 Hz(如上所述)对应的移动速度为65英里/小时(30米/秒),载波频率为2 GHz。

按照约定,第一个路径的延迟通常设置为零。对于后续路径,1微秒的延迟对应300米的路径长度差。在一些室外多路径环境中,反射路径可能比最短路径长几公里。根据上面指定的路径延迟,最后一条路径比最短路径长4.5 km,因此到达时间晚15微秒。

路径延迟和路径增益一起指定了信道的平均延迟配置文件。通常,平均路径随延迟呈指数衰减(dB值线性衰减),但具体的延迟分布取决于传播环境。在上面指定的延迟配置文件中,我们假设每5微秒的路径延迟,平均功率下降3 dB。

下面的变量控制着专家级通道系统对象。镜面分量的多普勒频移通常小于最大多普勒频移(上图),并取决于移动装置相对于镜面分量方向的运动方向。k因子指定了来自高光分量的平均接收功率相对于相关漫射分量的线性比率。

KFactor = 10;%镜面与漫射功率的线性比率specDopplerShift = 100;反射分量多普勒频移% (Hz)

创建通道系统对象

创建comm.RayleighChannel而且comm.RicianChannel使用上面定义的变量的系统对象。将对象配置为使用具有指定种子的自包含随机流来生成路径增益。

rayChan = com . rayleighchannel (...SampleRate = sampleRate500kHz,...PathDelays = delayVector,...AveragePathGains = gainVector,...MaximumDopplerShift = maxDopplerShift,...RandomStream =“mt19937ar with seed”...种子= 10,...PathGainsOutputPort = true);ricChan = com . ricianchannel (...SampleRate = sampleRate500kHz,...PathDelays = delayVector,...AveragePathGains = gainVector,...KFactor = KFactor,...DirectPathDopplerShift = specDopplerShift,...MaximumDopplerShift = maxDopplerShift,...RandomStream =“mt19937ar with seed”...种子= 100,...PathGainsOutputPort = true);

调制与信道滤波

函数生成一帧信号数据兰迪函数。在代码中,帧指的是信息位向量。要调制信号数据,请创建comm.QPSKModulator配置相位偏移为pi/4的系统对象。指定每帧传输的比特数为1000。对于QPSK调制,这对应于每帧500个符号。

bitsPerFrame = 1000;msg = randi([0 1],bitsPerFrame,1);qpskMod = com . qpskmodulator (BitInput=true,PhaseOffset=pi/4);

调制数据在信道上传输。将瑞利和瑞斯信道滤波应用于调制数据,而无需可视化数据。

modSignal = qpskMod(msg);rayChan (modSignal);ricChan (modSignal);

信道响应可视化

衰落信道系统对象具有内置的可视化,以显示对象运行时的信道脉冲响应、频率响应或多普勒频谱。要调用它,设置可视化属性设置为所需的值,然后再调用对象。现在释放Rayleigh和rist通道系统对象以更改它们的属性值。

释放(rayChan);释放(ricChan);

设置可视化财产归"脉冲响应显示了限带脉冲响应(黄色圆圈)。可视化还显示了在脉冲响应峰值周围聚集的潜在衰落路径增益(粉红色茎条)的延迟和幅度。注意路径增益不等于AveragePathGains因为多普勒效应导致增益随时间波动。

类似地,设置可视化财产归"频率响应表示脉冲的频率响应(DFT变换)。你也可以设置可视化脉冲和频率响应“同时显示脉冲和频率响应。

设置可视化财产归"多普勒频谱”显示了第一个离散路径的多普勒频谱,这是衰落过程的统计表征。瞬时经验测量绘制了多普勒光谱(蓝色恒星)。随着时间的推移,处理更多的样本,该测量的平均值更接近理论多普勒频谱(黄色曲线)。

控件可以控制要可视化的输入样本的百分比SamplesToDisplay财产。一般来说,百分比越小,模拟运行越快。如需更精确的信号图,请选择回放工具栏上,取消选择减少更新以提高性能选择。默认情况下选择该选项,以便更快地模拟。如果您想查看每个输入示例的通道响应,请设置SamplesToDisplay100%然后取消选择减少更新以提高性能

宽带或频率选择性衰落

显示瑞利衰落后qpsk调制信号的脉冲和频率响应。信道频率响应不是平坦的,在500K Hz带宽上可能有很深的衰减。因为功率水平随信号带宽的变化而变化,所以它被称为宽带或频率选择性衰落。

rayChan。可视化=“脉冲和频率响应”;rayChan。SamplesToDisplay =“100%”显示2帧的脉冲和频率响应numFrames = 2;i = 1:numFrames%创建随机数据msg = randi([0 1],bitsPerFrame,1);调制数据modSignal = qpskMod(msg);通过信道过滤数据,显示信道响应rayChan (modSignal);结束

对于相同的信道规范,释放瑞利信道对象并重新配置以显示其第一个离散路径的多普勒频谱,这是衰落过程的统计特征。

释放(rayChan);rayChan。可视化=“多普勒谱”从5000帧传输显示多普勒频谱numFrames = 5000;i = 1:numFrames msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(msg);rayChan (modSignal);结束

窄带或频率平坦衰落

当带宽小到信号无法分解各个分量时,由于多径信道造成的最小时间色散,频率响应近似平坦。这种多径衰落通常被称为窄带衰落或频率平坦衰落。

将信号带宽从500 kb/s (250 ksym/s)降低到20 kb/s (10 ksym/s),因此信道的延迟跨度(15微秒)远小于QPSK符号周期(100微秒)。由此产生的脉冲响应具有非常小的符号间干扰(ISI)和频率响应近似平坦。

释放(rayChan);rayChan。可视化=“脉冲和频率响应”;rayChan。SampleRate = sampleRate20kHz;rayChan。SamplesToDisplay =“25%”显示每四个样本中的一个显示2帧的脉冲和频率响应numFrames = 2;i = 1:numFrames msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(msg);rayChan (modSignal);结束

对于窄带衰落信道,单径衰落模型可以准确地表示信道。当信道有窄带衰落时,为了简化和加快模拟,可以考虑用单路径衰落模型取代多路径衰落模型。以下设置对应于窄带衰落信道,如图所示,频率响应完全平坦。

释放(rayChan);rayChan。pathdelayed = 0;%单衰落路径,零延迟rayChan。averagepathgain = 0;平均路径增益为1 (0 dB)

显示脉冲和频率响应2帧。

i = 1:numFrames msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(msg);rayChan (modSignal);结束

除了漫射多径散射外,瑞尔斯衰落信道系统对象还模拟了视距传播。这导致路径增益幅度的变化较小。要比较瑞利通道和瑞利通道之间的变化,请使用timescope对象。

观察瑞利衰落信道(黄色曲线)30-40 dB的震级波动,而瑞利衰落信道(蓝色曲线)大约在10 dB范围内波动。对于瑞斯特衰落信道,通过增加k因子(目前设置为10)可以进一步减少这种变化。

释放(rayChan);rayChan。可视化=“关闭”关闭瑞利物体可视化ricChan。可视化=“关闭”关闭专家对象可视化Rayleigh和rist对象的采样率和延迟剖面相同ricChan。SampleRate = rayChan.SampleRate;ricChan。pathdelayed = raychan . pathdelayed;ricChan。averagepathgain = raychan . averagepathgain;配置一个时间范围系统对象来显示路径增益大小gainScope = timescope(...SampleRate = rayChan。SampleRate,...TimeSpanSource =“财产”...时间间隔= bitsPerFrame / 2 / rayChan。SampleRate,...%一帧跨度Name =“多路径增益”...ChannelName = [“瑞利”“Rician”],...ShowGrid = true,...YLimits = -40 [10],...YLabel =“增益(dB)”);比较一帧两个对象的路径增益输出msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(msg);[~,rayPathGain] = rayChan(modSignal);[~,ricPathGain] = ricChan(modSignal);将路径增益作为时间范围的双通道输入gainScope (10 * log10 (abs ([rayPathGain ricPathGain])。^ 2));

信道衰落对信号星座的影响

返回到原来的四路瑞利衰落信道,用a表示窄带衰落对信号星座的影响comm.ConstellationDiagram系统对象。为了达到可视化的目的,放慢信道动态,我们将最大多普勒频移降低到5赫兹。与QPSK信道输入信号相比,在信道输出处可以观察到信号的衰减和旋转,以及由于接收信号中存在少量ISI而导致的一些信号失真。

释放(rayChan);rayChan。pathdelayed = delayVector;rayChan。averagepathgain = gainVector;rayChan。MaximumDopplerShift = 5;constDiag = com . constellationdiagram (...Name =瑞利衰落后的接收信号);numFrames = 16;n = 1:numFrames msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(msg);rayChanOut = rayChan(modSignal);constDiag (rayChanOut);结束释放(rayChan);释放(constDiag);

将信号带宽增加到500 kb/s (250 ksym/s)并重新绘制星座图。在信号星座中观察到由于与宽带信号的时间色散相关的ISI造成的更大的失真。信道的延迟跨度(15微秒)现在大于QPSK符号周期(4微秒),因此产生的限带脉冲响应不再近似平坦。

rayChan。SampleRate = sampleRate500kHz;n = 1:numFrames msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(msg);rayChanOut = rayChan(modSignal);constDiag (rayChanOut);结束