主要内容

多径衰落信道

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

使用衰落通道处理信号涉及以下步骤:

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

  2. 如有必要,调整系统对象的属性,以定制满足您的需求。例如,您可以更改路径延迟或平均路径增益。

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

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

初始化

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

sampleRate500kHz = 500年e3;500k Hz的样品率samplere20khz = 20e3;20k Hz的百分比样本率maxdopplershift = 200;漫射组件的最大多普勒偏移(Hz)delayVector = (0:5:15) * 1 e-6;四路径通道的%离散延迟gainVector = [0 -3 -6 -9];%平均路径增益(DB)

最大多普勒偏移被计算为V * F / C,其中V是移动速度,F是载波频率,C是光速。例如,200Hz(如上)的最大多普勒偏移对应于65英里/小时(30m / s)的移动速度和2GHz的载波频率。

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

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

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

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

创建通道系统对象

有了上面指定的参数,我们现在可以创建comm.RayleighChannelcomm.ricianchannel.系统对象。我们配置对象,使其使用自包含的随机流和指定的种子来生成路径增益。

%配置瑞利频道对象rayChan = comm.RayleighChannel (...“SampleRate”sampleRate500kHz,...'pathdelays',delayvector,...“AveragePathGains”,GainVector,...“MaximumDopplerShift”maxDopplerShift,...“RandomStream”'MT19937AR与种子'...“种子”10...“PathGainsOutputPort”,真正的);%配置rician通道对象ricChan = comm.RicianChannel (...“SampleRate”sampleRate500kHz,...'pathdelays',delayvector,...“AveragePathGains”,GainVector,...“KFactor”KFactor,...“DirectPathDopplerShift”specDopplerShift,...“MaximumDopplerShift”maxDopplerShift,...“RandomStream”'MT19937AR与种子'...“种子”, 100,...“PathGainsOutputPort”,真正的);

调制与信道滤波

创建一个comm.QPSKModulator对象来调制信道数据,该数据是使用兰迪功能。在此处的代码中,“帧”是指信息位的矢量。本例使用PI / 4的相位偏移。

qpskMod = comm.QPSKModulator ('bitInpul',真的,“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.Visualization =.“脉冲和频率响应”;Raychan.samplestodisplayplay ='100%'%显示2帧脉冲和频率响应numFrames = 2;我= 1:numFrames创建随机数据msg = randi([0 1],bitsPerFrame,1);%调整数据modsignal = qpskmod(msg);%通过通道过滤数据并显示通道响应rayChan (modSignal);结束

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

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

释放(Raychan);Raychan.Visualization =.的多普勒频谱显示多普勒频谱从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.Visualization =.“脉冲和频率响应”;rayChan。SampleRate = sampleRate20kHz;Raychan.samplestodisplayplay =“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);结束

瑞典衰落信道系统对象除了漫射多径散射之外,还模拟视线传播。这导致路径增益幅度较小。比较瑞利和瑞典频道之间的变化,我们利用了timescope对象随着时间的推移查看他们的路径收益。注意,与瑞利衰落通道(黄色曲线)的30-40dB相比,幅度衰落通道(蓝色曲线)的幅度在大约10dB范围内波动。对于瑞典衰落通道,通过增加k因子(目前设定为10),将进一步降低这种变化。

释放(Raychan);Raychan.Visualization =.“关闭”%关闭Rayliegh对象可视化ricChan。可视化=“关闭”%关闭rician对象可视化瑞利和瑞典对象的%相同的采样率和延迟配置文件Ricchan.Samplervere = Raychan.Sampleate;ricchan.pathdelays = raychan.pathdelays;ricchan.averagepathgains = Raychan.AveragePathgains;%配置时间范围系统对象以显示路径增益幅度gainScope = timescope (...“SampleRate”,Raychan.Samplerate,...'timespansource'“属性”...“时间间隔”bitsPerFrame / 2 / rayChan。SampleRate,...%一帧跨度“名字”“多路径增益”...'showgrid',真的,...“YLimits”-40年[10],...'ylabel''获得(DB)');%比较一帧中两个对象的路径增益输出msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(味精);[~, rayPathGain] = rayChan (modSignal);[~, ricPathGain] = ricChan (modSignal);%将路径增益作为时间范围的双通道输入gainScope (10 * log10 (abs ([rayPathGain ricPathGain])。^ 2));

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

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

清除hRicChanhMultipathGain;释放(Raychan);Raychan.Pathdelays = DelayVector;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.Samplerver = Samplerve500khz;n = 1:numFrames msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(味精);rayChanOut = rayChan (modSignal);constDiag (rayChanOut);结束