主要内容

多径衰落通道

此示例显示如何使用Rayleigh和Rician Multipath衰落通道系统对象及其内置可视化以建模衰落通道。Rayleigh和Rician Dading频道是无线通信中真实现象的有用模型。这些现象包括从发射机和接收器之间的相对运动产生的多径散射效果,时间分散和多普勒偏移。

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

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

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

  3. 使用step方法将channel System对象应用到你的信号上,该方法生成随机离散路径增益并过滤输入信号。

可以使用系统对象的内置可视化支持显示通道的特征。金宝app

初始化

以下变量同时控制瑞利和利耳通道对象。默认情况下,信道被建模为四个衰落路径,每个路径代表一组以相同延迟接收的多径组件。

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

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

根据惯例,第一路径的延迟通常将其设置为零。对于后续路径,1微秒延迟对应于路径长度的300μm。在一些户外多路径环境中,反射路径可以比最短路径长达几公里。使用上面指定的路径延迟,比最短路径长4.5 km,最后一个路径为4.5 km,因此稍后到达15微秒。

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

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

KFactor = 10;%镜面功率与散射功率的线性比specDopplerShift = 100;镜面组分的%多普勒偏移(Hz)

创建通道系统对象

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

%配置Rayleigh通道对象rayChan = comm.RayleighChannel (......“SampleRate”,samplerve500khz,......“PathDelays”delayVector,......“AveragePathGains”gainVector,......'MaximumDopplersHift'maxDopplerShift,......“RandomStream”“与种子mt19937ar”......“种子”10,......'pathgainseoutputport',真的);%配置Rician通道对象ricchan = comm.ricianchannel(......“SampleRate”,samplerve500khz,......“PathDelays”delayVector,......“AveragePathGains”gainVector,......“KFactor”KFactor,......'DirectPathdopplershift',specdopplershift,......'MaximumDopplersHift'maxDopplerShift,......“RandomStream”“与种子mt19937ar”......“种子”,100,......'pathgainseoutputport',真的);

调制和通道过滤

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

qpskMod = comm.QPSKModulator (“BitInput”,真的,'阶段OFFSET'π/ 4);%每帧传输的比特数设置为1000。对于正交相移编码%调制,这相当于每帧500个符号。bitperframe = 1000;msg = randi([0 1],bitperframe,1);%调制数据以通过通道传输modsignal = qpskmod(msg);%在调制数据上应用Rayleigh或Rician通道对象rayChan (modSignal);ricChan (modSignal);

可视化

衰落信道系统对象有内置可视化显示,以显示信道脉冲响应,频率响应,或多普勒频谱时,对象运行。要调用它,请设置可视化在调用对象之前,属性到所需值。立即释放瑞利和瑞典通道系统对象,以便更改其属性值。

释放(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带宽进行深度淡出。因为功率电平在信号的带宽上变化,所以它被称为频率选择性衰落。

对于相同的频道规范,我们现在显示其第一离散路径的多普勒频谱,这是衰落过程的统计表征。系统对象使多普勒频谱(蓝色恒星)定期测量。随着时间的推移,系统对象处理更多样本,该测量的平均值更好地近似于理论多普勒频谱(黄色曲线)。

释放(rayChan);rayChan。可视化='多普勒频谱';%显示5000帧传输的多普勒频谱numFrames = 5000;i = 1:numframes msg = randi([0 1],bitpitperframe,1);modSignal = qpskMod(味精);Raychan(modsignal);结束

窄带或平频衰落

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

我们现在将信号带宽从500 kb / s(250 ksym / s)减少到20 kb / s(10 ksym / s),因此通道的延迟跨度(15微秒)远小于QPSK符号周期(100微秒)。由此产生的脉冲响应具有非常小的Intersymbol干扰(ISI),频率响应大约是平坦的。

释放(rayChan);rayChan。可视化='脉冲和频率响应';rayChan。SampleRate = sampleRate20kHz;rayChan。SamplesToDisplay =“25%”;%显示每四个样本中的一个%显示2帧的脉冲和频率响应numframes = 2;i = 1:numframes msg = randi([0 1],bitpitperframe,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衰落信道系统对象模型视线传播除了漫射多径散射。这导致了路径增益幅度的较小变化。为了比较瑞利通道和瑞利通道之间的变化,我们使用了一个timescope对象查看他们的路径收益随时间。注意,在Rician衰落信道(蓝色曲线)的幅度波动在大约10 dB范围内,而在Rayleigh衰落信道(黄色曲线)的幅度波动在30-40 dB范围内。对于Rician衰落信道,这种变化将通过增加k因子(当前设置为10)进一步减少。

释放(rayChan);rayChan。可视化=“关闭”;%关闭瑞利对象可视化ricChan。可视化=“关闭”;关闭Rician对象可视化%相同的采样率和延迟轮廓的瑞利和利斯物体ricChan。SampleRate = rayChan.SampleRate;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));

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

我们现在回到原来的四径瑞利衰落信道。我们使用一个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);结束