主要内容

多径衰落信道

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

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

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

  2. 如有必要,调整系统对象的属性,使其适合您的需要。例如,可以更改路径延迟或平均路径增益。

  3. 使用步进方法将channel System对象应用到您的信号,该方法生成随机离散路径增益并对输入信号进行滤波。

通过System对象的内置可视化支持,可以显示通道的特性。金宝app

初始化

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

sampleRate500kHz = 500年e3;% 500K Hz采样率采样频率20kHz=20e3;%20千赫兹的采样率maxDopplerShift=200;%漫射分量的最大多普勒频移(Hz)delayVector = (0:5:15) * 1 e-6;%四路信道的离散延迟gainVector = [0 -3 -6 -9];%平均路径增益(dB)

最大多普勒频移计算为v*f/c,其中v是移动速度,f是载波频率,c是光速。例如,200 Hz的最大多普勒频移(如上所述)对应于65 mph(30 m/s)的移动速度和2 GHz的载波频率。

按照惯例,第一条路径的延迟通常设置为零。对于后续的路径,1微秒的延迟对应300米的路径长度差。在一些室外多路径环境中,反射路径可能比最短路径长几公里。在上述路径延迟情况下,最后一条路径比最短路径长4.5公里,因此到达时间要晚15微秒。

路径延迟和路径增益共同指定信道的平均延迟轮廓。通常,平均路径增益随延迟呈指数衰减(即dB值线性衰减),但具体的延迟轮廓取决于传播环境。在上面指定的延迟剖面中,我们假设路径延迟每5微秒平均功率降低3 dB。

下面的变量控制Rician通道System对象。镜面分量的多普勒频移通常小于最大多普勒频移(上图),并取决于相对于镜面分量的移动方向。k因子指定了平均接收功率从镜面分量相对于相关漫射分量的线性比率。

k系数=10;%反射光与散射光的线性比率specDopplerShift=100;%镜面分量多普勒频移(Hz)

创建通道系统对象

有了上面指定的参数,我们现在可以创建comm.RayleighChannel里桑查内尔通信公司系统对象。我们配置对象,使其使用自包含的随机流和指定的种子来生成路径增益。

%配置瑞利通道对象rayChan = comm.RayleighChannel (...“SampleRate”sampleRate500kHz,...“路径延迟”,延迟向量,...“AveragePathGains”,gainVector,...“MaximumDopplerShift”maxDopplerShift,...“RandomStream”“与种子mt19937ar”...“种子”10...“PathGainsOutputPort”,真正的);%配置Rician通道对象ricChan = comm.RicianChannel (...“SampleRate”sampleRate500kHz,...“路径延迟”,延迟向量,...“AveragePathGains”,gainVector,...“KFactor”KFactor,...“DirectPathDopplerShift”specDopplerShift,...“MaximumDopplerShift”maxDopplerShift,...“RandomStream”“与种子mt19937ar”...“种子”, 100,...“PathGainsOutputPort”,真正的);

调制与信道滤波

创建一个comm.QPSKModulator对象来调制信道数据,该数据是使用兰迪作用在这里的代码中,“帧”是指信息位的向量。本例中使用了pi/4的相位偏移。

qpskMod = comm.QPSKModulator (“BitInput”,真的,“PhaseOffset”π/ 4);%每帧传输的比特数设置为1000。用于QPSK%调制,这相当于每帧500个符号。bitsPerFrame = 1000;msg = randi([0 1],bitsPerFrame,1);为信道传输调制数据modSignal=qpskMod(msg);对调制数据应用瑞利或Rician信道对象rayChan(modSignal);ricChan(modSignal);

可视化

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

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

宽带或频率选择衰落

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

同样,设置可视化财产“频率响应”显示脉冲的频率响应(DFT变换)。您还可以设置可视化“脉冲和频率响应”同时显示脉冲和频率响应。

控件可以控制要显示的输入样本的百分比SamplesToDisplay财产。通常,百分比越小,模拟运行的速度就越快。一旦可视化图形打开,单击回放按钮,并关闭“减少更新以提高性能”或“减少地积率以提高性能”选项,以进一步提高显示精度。默认情况下,该选项是开启的,以便更快地进行模拟。要查看每个输入样本的通道响应,请取消选中该选项并进行设置SamplesToDisplay'100%'

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

如您所见,通道频率响应不是平坦的,在500K Hz带宽上可能有深度褪色。由于功率水平随信号带宽的变化而变化,这被称为频率选择性衰落。

对于相同的信道规格,我们现在显示其第一个离散路径的多普勒频谱,这是衰落过程的统计特征。System对象定期测量多普勒光谱(蓝星)。随着时间的推移,System对象处理的样本越多,测量结果的平均值就越接近理论多普勒频谱(黄色曲线)。

释放(rayChan);rayChan,可视化=的多普勒频谱显示多普勒频谱从5000帧传输numFrames=5000;i = 1:numFrames msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(味精);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(味精);rayChan (modSignal);结束

为了简化和加速建模,窄带衰落信道通常被建模为单路径衰落信道。也就是说,多径衰落模型过度指定了窄带衰落信道。以下设置对应于窄带衰落信道。请注意,带限脉冲响应的形状是平坦的。

释放(rayChan);rayChan.PathDelays=0;零延迟的单衰落路径rayChan。AveragePathGains = 0;%平均路径增益为1(0 dB)我= 1:numFrames%显示2帧脉冲和频率响应msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(味精);rayChan (modSignal);结束

除了漫射多径散射外,Rician衰落信道系统对象还模拟视线传播。这导致路径增益的幅度变化较小。为了比较瑞利信道和Rician信道之间的变化,我们使用了timescope对象查看其随时间的路径增益。请注意,Rician衰落信道(蓝色曲线)的幅度波动范围约为10 dB,而瑞利衰落信道(黄色曲线)的幅度波动范围约为30-40 dB。对于Rician衰落信道,通过增加K因子(当前设置为10)可进一步减小这种变化。

释放(rayChan);rayChan,可视化=“关闭”%禁用“Rayliegh对象可视化”ricChan。可视化=“关闭”关闭物件可视化%瑞利和里希对象的相同采样率和延迟剖面ricChan.SampleRate=rayChan.SampleRate;ricChan.PathDelays=rayChan.PathDelays;ricChan.AveragePathGains=rayChan.AveragePathGains;%配置时间范围系统对象以显示路径增益幅度gainScope = timescope (...“SampleRate”,rayChan.SampleRate,...“时间跨度源”“属性”...“时间间隔”bitsPerFrame / 2 / rayChan。SampleRate,...%一帧跨度“名字”“多路径增益”...“ShowGrid”,真的,...“YLimits”-40年[10],...“伊拉贝尔”‘增益(dB)’);%比较一帧中两个对象的路径增益输出msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(味精);[~, rayPathGain] = rayChan (modSignal);[~, ricPathGain] = ricChan (modSignal);%将路径增益作为时间范围的双通道输入gainScope (10 * log10 (abs ([rayPathGain ricPathGain])。^ 2));

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

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

清楚的hRicChanhMultipathGain; 释放(rayChan);rayChan.PathDelays=延迟向量;rayChan.AveragePathGains=gainVector;rayChan.MaximumDopplerShift=5;配置星座图系统对象来显示接收到的信号constDiag = comm.ConstellationDiagram (...“名字”“瑞利衰落后的接收信号”);numFrames=16;n = 1:numFrames msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(味精);rayChanOut = rayChan (modSignal);%显示瑞利信道输出星座图constDiag (rayChanOut);结束

当我们将信号带宽增加到500 kb/s (250 ksym/s)时,信号星座中的失真会大得多。这种失真就是ISI,它来自于宽带信号的时间色散。信道的延迟跨度(15微秒)现在大于QPSK符号周期(4微秒),因此合成的限带脉冲响应不再近似平坦。

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