主要内容

多径衰落信道

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

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

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

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

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

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

初始化

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

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

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

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

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

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

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

创建通道系统对象

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

%配置Rayleigh通道对象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对象来调制信道数据,该数据是使用兰迪函数。在这里的代码中,“帧”指的是信息位的向量。在这个例子中使用了/4的相位偏移。

qpskMod = comm.QPSKModulator (“BitInput”,真的,“PhaseOffset”π/ 4);%设置每帧传输的比特数为1000。对于正交相移编码%调制,这相当于每帧500个符号。bitsPerFrame = 1000;msg = randi([0 1],bitsPerFrame,1);为信道传输调制数据modSignal = qpskMod(味精);对调制数据应用瑞利或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(味精);%通过通道过滤数据并显示通道响应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。可视化=“关闭”%关闭瑞利物体可视化ricChan。可视化=“关闭”关闭物件可视化相同的采样率和延迟轮廓的瑞利和Rician目标ricChan。SampleRate = rayChan.SampleRate;ricChan。PathDelays = rayChan.PathDelays;ricChan。AveragePathGains = rayChan.AveragePathGains;配置一个Time Scope System对象来显示路径增益大小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));

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

现在我们回到原来的四径瑞利衰落信道。我们使用一个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。SampleRate = sampleRate500kHz;n = 1:numFrames msg = randi([0 1],bitsPerFrame,1);modSignal = qpskMod(味精);rayChanOut = rayChan (modSignal);constDiag (rayChanOut);结束