主要内容

多径衰落信道

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

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

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

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

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

通道的特性可以通过系统对象的内置可视化支持来显示。万博1manbetx

初始化

下面的变量控制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”,500kHz,...“PathDelays”delayVector,...“AveragePathGains”gainVector,...“最大换档速度”maxDopplerShift,...“RandomStream”,“与种子mt19937ar”,...“种子”,10,...“路径增益输出端口”,对);配置一个Rician通道对象ricChan=通信Ricinchannel(...“SampleRate”,500kHz,...“PathDelays”delayVector,...“AveragePathGains”gainVector,...“KFactor”KFactor,...“DirectPathDopplerShift”,specDopplerShift,...“最大换档速度”maxDopplerShift,...“RandomStream”,“与种子mt19937ar”,...“种子”,100,...“路径增益输出端口”,对);

调制和信道滤波

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

qpskMod = comm.QPSKModulator (“BitInput”符合事实的“相位偏移”π/ 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带宽上可能有深度衰减。因为功率水平随信号带宽而变化,所以称为频率选择性衰减。

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

释放(rayChan);rayChan。可视化=“多普勒频谱”显示多普勒频谱从5000帧传输numFrames = 5000;i=1:numFrames msg=randi([01],比特帧,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([01],比特帧,1);modSignal=qpskMod(msg);rayChan(modSignal);结束

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

释放(rayChan);rayChan。PathDelays = 0;%零延迟单衰落路径rayChan。AveragePathGains = 0;平均路径增益1 (0 dB)我= 1:numFrames%显示2帧脉冲和频率响应msg=randi([01],比特帧,1);modSignal=qpskMod(msg);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对象来显示路径增益大小增益范围=时间范围(...“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信道输入信号相比,您可以观察到信道输出处的信号衰减和旋转,以及由于e接收信号中的少量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);显示瑞利通道输出星座图康斯特迪亚格(雷查努特);结束

当我们将信号带宽增加到500 kb/s(250 ksym/s)时,我们在信号星座中看到了更大的失真。这种失真是由于宽带信号的时间色散造成的ISI。信道的延迟范围(15微秒)现在大于QPSK符号周期(4微秒)因此,产生的带限脉冲响应不再近似平坦。

释放(rayChan);释放(constDiag);rayChan。SampleRate = sampleRate500kHz;n=1:numFrames msg=randi([01],比特帧,1);modSignal=qpskMod(msg);rayChanOut=rayChan(modSignal);consdiag(rayChanOut);结束