眼和星座图

这个例子说明如何使用comm.EyeDiagramcomm.ConstellationDiagram在分析的通信系统。

使用comm.EyeDiagram系统对象™

使用PLOT不为眼和星座图中清楚地显示调制的特性绘制的调制,滤波后的信号。眼图的覆盖许多短段,称为迹线,以显示的信号特性。星座图样品在符号时间的信号,并把它显示在信号(即,I / Q)的空间。模拟参数(采样率,每个符号的采样)提供用于分析高分辨率。

初始化系统参数Fs = 10000;% 采样率RS = 100;% 符号指数SPS = FS /卢比;每个符号样本百分比滚降= 0.5;%滚降系数M = 4;%调制顺序(QPSK)%平方根升余弦滤波器。filterSpan = 6;filterGainTx = 9.9121;transmitFilter = comm.RaisedCosineTransmitFilter(“RolloffFactor”, 滚下,“OutputSamplesPerSymbol”,SPS,'FilterSpanInSymbols',filterSpan,“获得”,filterGainTx);receiveFilter = comm.RaisedCosineReceiveFilter(“RolloffFactor”, 滚下,“InputSamplesPerSymbol”,SPS,'FilterSpanInSymbols',filterSpan,“DecimationFactor”1,“获得”,1 / filterGainTx);%生成调制和脉冲整形信号frameLen = 1000;消息= randi([0 M-1], frameLen, 1);= pskmod(报文,M, pi/4);filteredTx = transmitFilter(调制);t = 0:1 / Fs: 50个/ 1,76,645 / Fs;idx =圆(t * Fs + 1);hFig =图;情节(t,实际(filteredTx (idx)));标题(“调制,过滤的同相信号”);包含(“时间(秒)”);ylabel ('振幅');格;%管理数字hFig.Position = [50 400 hFig.Position(3:4)];

眼图系统对象被用来绘制一个调制脉冲形信号的多条迹线,分析系统的特性。在下面的图中,二维彩色眼图绘制;颜色强度正比于在给定时刻的输入信号的幅度的概率密度函数(PDF)。上面的曲线是对所分析的信号的同相分量,和用于正交分量的下曲线。由于SymbolsPerTrace属性的默认值是2,则眼图跨度两个符号。在以下示例中,所发送的信号进行分析。通过平方根,升余弦引入的符号间干扰(ISI),脉冲整形滤波器可以清楚地看到。

%创建的眼图对象eyeObj = comm.EyeDiagram('采样率'Fs,'SamplesPerSymbol',SPS,“这个”,“2D颜色直方图”,'ShowImaginaryEye',真实,'YLimits'(-0.7 - 0.7))%#确定用发射信号更新眼图对象eyeObj(0.5 * filteredTx);%管理的数字:eyeObj。位置= [hfig位置(1)+ hfig位置(3)hfig位置(2)]eyeObj.Position(3)* 0.75 eyeObj.Position(4)];hFig.Visible =“关”;
eyeObj = comm.EyeDiagram与属性:名称: '眼图' 跟踪配置SAMPLERATE:10000 SamplesPerSymbol:100 SampleOffset:0 SymbolsPerTrace:2显示的配置DISPLAYMODE: '2D颜色直方图' EnableMeasurements:0 ShowImaginaryEye:1个YLimits:[-0.7000 0.7000]ShowGrid:1个位置:[320 282 640 460]使用get显示所有属性

现在,接收到的信号进行研究。假设所接收的信号是通过用AWGN符号能量损坏与噪声功率谱密度比为20分贝(ES /否)和所述接收机使用匹配的滤波器。因此,由接收器看到的组合的过滤器是具有最小ISI的近似升余弦滤波器。与此眼图观察到的一个问题是信号超过对象的幅度限制。如可以从命令行警告可以看出,眼图对象忽略外的范围内的值。

EsNo = 20;SNR = EsNo - 10*log10(sps);%创建一个comm.AWGNChannel系统对象并设置其属性NoiseMethod%到“信噪比(SNR)”。将“SignalPower”属性设置为%计算出的输入信号功率。信道= comm.AWGNChannel('NoiseMethod',“信噪比(SNR)”,“信噪比”,SNR);channel.SignalPower = VAR(filteredTx);收到=通道(filteredTx);filteredRx = receiveFilter(接收);%丢弃现有的眼图数据重置(eyeObj);%步骤的眼图的对象与所接收的信号eyeObj(filteredRx);图(hFig);情节(T,实(filteredRx(IDX)));标题(['经过调制、滤波的噪声同相信号,Es/No = 'num2str(EsNo)“数据库”]);包含(“时间(秒)”);ylabel ('振幅');格;
警告:输入值超出指定的Y限制和被忽略。

振幅限制可以调整,以包括整个信号的分析。因为改变振幅限制会重置眼图对象,所以需要用相同的输入再次更新眼图。有了新的振幅限制,范围外的警告不再抛出。

eyeObj.YLimits = [-1.5 1.5];eyeObj(filteredRx);

色阶可以设置为对数来获得小PDF值的眼图更好的视野。穿过围绕零电平眼图开口的线是在此视图中更可见。这些线是由于输入信号的初始瞬变。

eyeObj。ColorScale =“对数”;

的眼图分析随着符号的数量的精确度通过眼图对象增加通过。在下面的例子中,眼图对象在环台阶和收集数据的2000个符号。观察到眼睛的最宽幅度开口左右出现10毫秒。这对应于最佳采样时间。

eyeObj。ColorScale =“线性”;释放(渠道);释放(transmitFilter);释放(receiveFilter);释放(eyeObj);frameLen = 50;n帧= 40;对于P = 1:n帧消息=兰迪([0 M-1],frameLen,1);= pskmod(报文,M, pi/4);filteredTx = transmitFilter(调制);channel.SignalPower = VAR(filteredTx);收到=通道(filteredTx);filteredRx = receiveFilter(收到);eyeObj(filteredRx);结束

眼图的时间偏移量可以配置为沿着时间轴移动眼的打开部分。将5 msec的时间偏移应用于下图的眼图。时间偏移仅用于绘图目的,不影响收集的数据。

eyeObj。SampleOffset = 5 e - 3 * Fs;

不同的色彩表可以使用样式对话框的眼图中指定(查看 - >样式...)。下面的例子中选择设置有MATLAB®的“射流”颜色表。任何自定义颜色表也可以指定。

隐藏(eyeObj);

眼图的背景颜色可以通过指定自定义颜色映射进行调整。由于背景颜色也是颜色对应于零PDF,色彩映射对应于背景颜色的第一个元素。在下文中,背景色设置为黑色。

CMAP =射流(64);CMAP(1,:) = [0 0 0];

眼图对象还可以绘制使用单独的迹线,而不是PDF值的接收信号。这种能力是快速获得所述信道的短期视图是有用的。眼图对象的TracesToDisplay属性确定由所述对象绘制迹线的数量。由于只有10迹线绘制,眼图并不能完全代表信号值的范围。

eyeObj.SampleOffset = 0;eyeObj.DisplayMode =“线路图”;eyeObj.TracesToDisplay = 10;显示(eyeObj);

TracesToDisplay增加以获得更好的线积眼图。

eyeObj.TracesToDisplay = 100;

使用com . constellationdiagram系统对象

comm.ConstellationDiagram生成的星座图(也称为散点图),这是在信号对其正交分量的同相分量的曲线图,抽取由通常被设定为每符号,NSAMPS样本的数目的因数。将得到的曲线图示出了以符号率采样的匹配滤波信号。由于组合的发送和接收滤波器仅是一个接近理想升余弦滤波器,接收的符号是不完全一样的传送的符号;它们可以使用ShowReferenceConstellation和ReferenceConstellation特性在视觉上比较。

%关闭数字关闭(hFig (ishghandle (hFig)));%通过匹配滤波器传递无噪声发射的信号filteredRx = receiveFilter(filteredTx);%创建星座图延迟= 6 * FS /卢比;filteredRxDelayed = filteredRx(延迟+ 1:结束);cdObj = comm.ConstellationDiagram('SamplesPerSymbol',SPS,“ShowReferenceConstellation”,真实,'ReferenceConstellation'qammod (0:3 4'UnitAveragePower',1));cdObj(filteredRxDelayed);%管理数字cdObj.Position = [eyeObj.Position(1)+ eyeObj.Position(3)eyeObj.Position(2)cdObj.Position(3)* 0.75 cdObj.Position(4)* 0.75];

还可以通过将show弹道属性设置为true或单击相应的工具栏按钮来绘制信号轨迹。可以使用Style对话框(View -> Style…)分配不同的图形属性。在信号空间中,青色线表示接收到的信号轨道相对于正交分量的同相位分量。黄点代表符号采样时间的信号。红色的叉表示给定调制方案的传输符号。从图中可以看出,虽然信号在信号空间中移动,但是当在符号边界处采样时,其值接近原始信号的值。

cdObj.ShowTrajectory = TRUE;

该ColorFading属性可以用来淡化旧的符号,作为硬件示波器会:

cdObj.ColorFading = TRUE;

分析使用Eye和星座图通信系统

下面的代码绘制了通过AWGN通道并在接收端匹配滤波的信号(红线)。即使可以将有噪声的信号与无噪声的匹配滤波信号(蓝线)区分开来,也很难确定噪声对信号的影响。噪声信号的Es/No为10db,相当于- 10db的信噪比(SNR)。

%创建情节EsNo = 10;SNR = EsNo - 10*log10(sps);frameLen = 1000;释放(渠道);释放(transmitFilter);释放(receiveFilter);通道。信噪比=信噪比;消息= randi([0 M-1],frameLen,1);= pskmod(报文,M, pi/4); filteredTx = transmitFilter(modulated); filteredRxPerfect = receiveFilter(filteredTx); channel.SignalPower = var(filteredTx); received = channel(filteredTx); filteredRx = receiveFilter(received); t = 6/Rs:1/Fs:40/Rs-1/Fs; idx = round(t*Fs+1); hFig = figure; plot(t,real(filteredRxPerfect(idx)),'B-',T,实(filteredRx(IDX)),的r -);标题(“调制,过滤的同相信号和噪声的信号”);包含(“时间(秒)”);ylabel ('振幅');格;传说(“调制,滤波的信号”,('噪声,滤波信号,Es/No='num2str(EsNo)“数据库”]'位置','西南');%管理数字hFig.Position = [50 400 hFig.Position(3:4)];

下面的附图是匹配滤波无噪声接收信号和噪声信号的眼图。眼图清楚地示出在从所发送的信号的接收信号的变化,由于AWGN信道和接收滤波器。

%创建眼图eyeObj。YLimits = [-2];释放(eyeObj);eyeObj (filteredRxPerfect);eyeObj。Name =“无声的眼图”;eyeObj。位置= [hfig位置(1)+ hfig位置(3)eyeobj .位置(2)eyeObj.Position (3) eyeObj.Position (4)];%使眼图对象的独立副本eyeObjNoise =克隆(eyeObj);eyeObjNoise.Name =“嘈杂眼图,ES /否=10分贝”;复位(eyeObjNoise);eyeObjNoise(filteredRx);%管理数字关闭(hFig (ishghandle (hFig)));eyeObjNoise。Position = [eyeObjNoise.Position(1)+eyeObjNoise.Position(3) eyeObjNoise.Position(2)eyeObjNoise.Position (3) eyeObjNoise.Position (4)];

下面的附图是匹配滤波无噪声接收信号和噪声信号的星座图。他们清楚地表明,从传输信号在接收信号在理想采样时间的变化。

创建星座图延迟= 6 / RS * FS;cdObj = comm.ConstellationDiagram('SamplesPerSymbol',SPS);cdObj.Name =“无声的星座图”;cdObjNoise = comm.ConstellationDiagram('SamplesPerSymbol',SPS);cdObjNoise.Name =“噪声星座图,Es/No = 10db”;cdObj(filteredRxPerfect(延迟+ 1:结束));cdObjNoise(filteredRx(延迟+ 1:结束));%管理数字隐藏(eyeObj);隐藏(eyeObjNoise);cdObj.Position = [eyeObj.Position(1)eyeObj.Position(2)cdObj.Position(3)* 0.75 cdObj.Position(4)* 0.75];cdObjNoise.Position = cdObj.Position + [cdObj.Position(3)0 0 0];

以下是在20dB的ES /否(品红线)接收到相同的传输信号的曲线图。由噪声引起的变化比与前一信号(ES /否= 10 dB)的变小。在这种情况下,需要在眼睛和星座图更,以确定系统的特性。

关闭所有打开的数字隐藏(eyeObj);隐藏(eyeObjNoise);隐藏(cdObj);隐藏(cdObjNoise);%绘制所发射的信号EsNo2 = 20;SNR2 = EsNo2  -  10 *日志10(SPS);channel.SNR = SNR2;channel.SignalPower = VAR(filteredTx);收到=通道(filteredTx);filteredRx = receiveFilter(收到);hFig =图;图(T,真正的(filteredRxPerfect(IDX)),'B-',T,实(filteredRx(IDX)),“间”);标题(“调制、滤波信号和噪声信号”);包含(“时间(秒)”);ylabel ('振幅');格;传说(“调制,滤波的信号”,('噪声信号,ES /否='num2str (EsNo2)“数据库”]'位置','西南');%管理数字hFig.Position = [50 400 hFig.Position(3:4)];

下面的附图是第一噪声信号和第二噪声信号的眼图。它们清楚地表明,在第二接收信号中的变化小于所述第一接收信号。

%关闭数字关闭(hFig (ishghandle (hFig)));创建眼图图eyeObjNoise2 =克隆(eyeObj);eyeObjNoise.Name =“嘈杂眼图,ES /否=20分贝”;eyeObjNoise2 (filteredRx);%管理数字eyeObjNoise2.Position = eyeObjNoise.Position;eyeObjNoise.Position = eyeObj.Position;显示(eyeObjNoise);显示(eyeObjNoise2);

下面的附图是第一噪声信号和第二噪声信号的星座图。它们清楚地显示,从所述第二接收信号的变化小于在采样点的第一接收信号。

%创建星座图cdObjNoise2 =克隆(cdObj);cdObjNoise2。Name =“噪声星座图,ES /否=20分贝”;释放(cdObjNoise2);cdObjNoise2 (filteredRx);%管理数字cdObjNoise2.Position = cdObjNoise.Position;cdObjNoise.Position = cdObj.Position;显示(cdObjNoise);显示(cdObjNoise2);隐藏(eyeObjNoise);隐藏(eyeObjNoise2);

可视化定时误差使用Eye&星座图的影响

我们可以直观的用眼和星座图定时误差的影响。此动画还示出了星座图和眼图可以用任何偏移来作图。我们用这个动画匹配滤波信号中的第二嘈杂。在眼图蓝线表示采样时间。在星座图中的红点显示在最佳采样时间的样品,而蓝色恒星显示样品与采样时间偏移。

%准备范围隐藏(cdObjNoise);cdObjNoise2.ShowTrajectory = TRUE;eyeObjNoise2.DisplayMode =“2D颜色直方图”;复位(eyeObjNoise2);释放(eyeObjNoise2);释放(cdObjNoise2);eyeObjNoise2(filteredRx(IDX));cdObjNoise2(filteredRx(IDX));helperPrepareScatterEyeAnimation(cdObjNoise2,eyeObjNoise2);%创建和动画绘制对于偏移量= (0:1:Fs/Rs-1) eyeobjnoise e2。SampleOffset =抵消;cdObjNoise2。SampleOffset =抵消;暂停(0.1);结束