文档

眼图测量

这个例子展示了如何使用comm.EyeDiagram系统对象™进行眼图可以对模拟信号进行测量。

使用comm.EyeDiagram系统对象

comm.EyeDiagram系统对象收集眼图数据形式的垂直和水平直方图。我们可以利用这些直方图提取定量指标被测试的系统。这些定量指标称为眼图测量。以下模拟参数选择(采样率、样品每个符号)提供一个高分辨率的分析。

%初始化系统参数Fs = 10000;%采样率Rs = 100;%符号率(Sps)sps = Fs / Rs;%每个符号的样本数量信噪比= 30;%信号噪声比(dB)Trise = 1 / (5 * Rs);% NRZ信号的上升时间Tfall = 1 / (5 * Rs);% NRZ信号的下降时间frameLen = 5000;%符号在一个框架

下面的代码生成一个二进制不归零制(NRZ)信号利用模式发生器提供的通信资源包。然后加入加性高斯白噪声(AWGN)这个信号通过comm.AWGNChannel系统对象。接下来,时域信号绘制。另一种方法来检查信号特点是生成信号的眼图使用眼图系统对象。注意SymbolsPerTrace产权代表的符号跟踪眼睛的图,应该设置为两个执行测量。右边的图显示了相同的信号的眼图。指定SampleOffset值设置为确保眼睛集中在图中。在使用眼图对象的更多信息,请参阅文档(comm.EyeDiagram)和例子眼睛和星座图

%设置模式发生器src = commsrc.pattern (“SamplingFrequency”Fs,“SamplesPerSymbol”sps,的上升时间Trise,“FallTime”Tfall)% #好吧%生成NRZ信号消息=生成(src, frameLen);%创建一个comm.AWGNChannel系统对象。%设置NoiseMethod属性通道的信号噪声比%(信噪比)。commsrc。模式对象生成单位功率信号;设置% SignalPower属性1瓦特。频道= comm.AWGNChannel (“NoiseMethod”,信号噪声比(信噪比)的,“信噪比”信噪比,“SignalPower”1);%增加情况下收到=通道(消息);%创建一个眼图并显示属性eyeObj = comm.EyeDiagram (“YLimits”(-1.5 - 1.5),“SamplesPerSymbol”sps,“SampleRate”Fs,“SampleOffset”,0.004 * Fs,“这个”,二维颜色直方图的,“ColorScale”,“对数”)% #好吧%更新与嘈杂的NRZ信号眼图对象eyeObj(收到);%绘制时域信号t = 0:1 / Fs: 15 / 1,76,645 / Fs;idx =圆(t * Fs + 1);hFig =图(“位置”[0 0 460 360]);情节(t)收到(idx));标题(“吵NRZ信号”);包含(的时间(秒));ylabel (“振幅”);网格;%管理数据hFig。位置= [10 10 hFig.Position (3:4)];eyeObj。位置= [hFig.Position (1) + hFig.Position (3) + 10 hFig.Position (2)eyeObj.Position (3) * 0.75 eyeObj.Position (4) * 0.75);
src =类型:“模式发生器”SamplingFrequency: 10000 SamplesPerSymbol: 100 SymbolRate: 100 PulseType:“NRZ”OutputLevels:[1]上升时间:0.0020 FallTime: 0.0020 DataPattern:“PRBS7”抖动:[1 x1 commsrc.combinedjitter] eyeObj = comm.EyeDiagram属性:名称:“眼图”跟踪配置SampleRate: 10000 SamplesPerSymbol: 100 SampleOffset: 40 SymbolsPerTrace: 2显示配置这个:“二维颜色直方图”EnableMeasurements: 0 ShowImaginaryEye: 0 YLimits: [-1.5000 - 1.5000] ShowGrid: 1位置:[320 282 640 460]使用显示所有属性

通信信号的一个重要特征,特别是在高速背板通信等应用程序定时抖动。定时抖动的偏差定义为理想的计时时钟时钟信号。定时抖动可以分为两个主要分类:确定性和随机抖动(1]。两个例子的确定性抖动周期抖动和传输干扰(ISI)。

周期抖动可以建模为一个正弦曲线,当ISI可以建模为狄拉克函数的火车。随机抖动建模为高斯变异信号时钟的边缘。

的抖动中遇到这些组件的通信系统可以是任意组合。常用的组合是dual-Dirac模型,ISI和随机抖动结合(2]。ISI是由两个相同振幅狄拉克函数建模。下面的图显示了概率密度函数的随机抖动,周期抖动,周期和随机抖动,ISI和随机抖动。我们使用抖动抖动样本生成的发电机提供的通信资源包。

histEdges = -0.1 / Rs: 1 / (10 * Fs): 0.1 / Rs;hFigPdf =图;%获得结合生成的PDF的随机抖动抖动对象。集%随机抖动时间标准偏差1%的象征。jitterSrc = commsrc.combinedjitter (“SamplingFrequency”Fs,“RandomJitter”,“上”,“RandomStd”,0.01 / Rs);抖动=生成(jitterSrc 1 e6);rjPdf = histc(抖动,histEdges);rjPdf = rjPdf /笔(rjPdf);次要情节(221);情节(histEdges * 1 e3, rjPdf);网格;标题(“随机抖动”);包含(“时间(ms)”);ylabel (“PDF”);%获得周期抖动的PDF。设置时间抖动幅度5%的象征%和抖动频率3赫兹。集(jitterSrc,“RandomJitter”,“关闭”,“PeriodicJitter”,“上”,“PeriodicAmplitude”0.05 / Rs,“PeriodicFrequencyHz”3);抖动=生成(jitterSrc 1 e6);rjPdf = histc(抖动,histEdges);rjPdf = rjPdf /笔(rjPdf);次要情节(222);情节(histEdges * 1 e3, rjPdf);网格;标题(周期抖动的);包含(“时间(ms)”);ylabel (“PDF”);%获取PDF的随机和周期抖动jitterSrc。RandomJitter =“上”;抖动=生成(jitterSrc 1 e6);rjPdf = histc(抖动,histEdges);rjPdf = rjPdf /笔(rjPdf);次要情节(223);情节(histEdges * 1 e3, rjPdf);网格;标题(定期和随机抖动的);包含(“时间(ms)”);ylabel (“PDF”);%获得ISI和随机抖动的PDFjitterSrc。PeriodicJitter =“关闭”;jitterSrc。DiracJitter =“上”;jitterSrc。DiracDelta = 0.05 / Rs * [1];抖动=生成(jitterSrc 1 e6);rjPdf = histc(抖动,histEdges);rjPdf = rjPdf /笔(rjPdf);次要情节(224);情节(histEdges * 1 e3, rjPdf);网格;标题(“三军情报局和随机抖动”);包含(“时间(ms)”);ylabel (“PDF”);

我们可以使用相同的抖动对象模式发生器输出信号注入抖动。下面的代码生成一个信号不仅受损的情况下也随机抖动。下面的例子使用了相同的消息数据在前面的情况下,比较了两个信号。注意,抖动对信号的影响还不清楚在这个时域图。

关闭(hFigPdf);隐藏(eyeObj);%将抖动对象附加到模式发生器src。抖动= jitterSrc;%只生成随机抖动与标准差0.3 ms。src.Jitter。DiracJitter =“关闭”;src.Jitter。RandomJitter =“上”;src.Jitter。RandomStd = 0.3 e - 3;%生成NRZ信号与随机抖动并添加情况重置(src);释放(渠道);消息=生成(src, frameLen);收到=通道(消息);%画出抖动噪声NRZ信号与噪声信号t = 0:1 / Fs: 15 / 1,76,645 / Fs;idx =圆(t * Fs + 1);图(hFig);持有;情节(t)收到(idx),“r”);标题(“噪声和抖动NRZ信号”);包含(的时间(秒));ylabel (“振幅”);网格;

抖动的效果是更好的信号的眼图所示。接下来的两眼图数据说明抖动的影响。抖动信号的宽度在零振幅水平明显比non-jittered信号的宽度的增加随机抖动。注意,尽管这个示例主要关注真实信号,还可以显示复杂的信号的眼图对象如果ShowImaginaryEye属性设置为true。

关上(hFig)%眼图对象的复制和重置eyeObjJitter =克隆(eyeObj);释放(eyeObjJitter);重置(eyeObjJitter);%更新与嘈杂的眼图对象,抖动信号eyeObjJitter(收到);%把前面的眼图进行比较显示(eyeObj);显示(eyeObjJitter);eyeObj。Name =眼图没有抖动的;eyeObjJitter。Name =眼图和抖动的;eyeObjJitter。位置= [eyeObj.Position (1) + eyeObj.Position (3) eyeObj.Position (2)eyeObj.Position (3) eyeObj.Position (4)];

水平直方图可以利用检查抖动特征更密切。水平直方图计算振幅水平通过DecisionBoundary属性指定。图显示了水平直方图在0振幅单元(AU)。因为眼图跟踪两个符号持续时间,它穿过引用振幅水平在两个地点,5 ms和15毫秒。注意符号持续时间是10 ms。同时,这两个口岸以来高斯特征信号与随机抖动受损。

%启用垂直柱状图叠加,因此测量eyeObjJitter。EnableMeasurements = true;eyeObjJitter。位置= eyeObjJitter。位置+ [0 0 0 eyeObjJitter.Position (4) * 0.75);eyeObjJitter。OverlayHistogram =“抖动”;%需要再次输入直方图收集:eyeObjJitter(收到);%也出口与jitterHistogram策划水平直方图%的方法horHist = jitterHistogram (eyeObjJitter);隐藏(eyeObj);

垂直柱状图可以用来检查通道的噪声特性。垂直直方图最佳采样时间收集,即。,at the value of the Eye Delay measurement, which corresponds to the average of the two crossing times.

eyeObjJitter。OverlayHistogram =“噪音”;%也导出了垂直直方图,noiseHistogram%的方法verHist = noiseHistogram (eyeObjJitter);

下面的代码运行一个模拟与随机抖动,ISI和情况。ISI介绍通过信号通过一个余弦滤波器。磁滞属性设置为一个值,这样交通十字路口由于噪声抑制。注意,大多数测量设置改变可能重置眼图对象。MeasurementDelay设置为一个值大于延迟滤波器消除瞬态信号的一部分。仿真运行在一个FOR循环,眼图对象计算测量数据以流的方式。

eyeObjJitter。OverlayHistogram =“没有”;重置(eyeObjJitter);释放(eyeObjJitter);%设置抖动参数src.Jitter。RandomStd = 0.1 e - 3;%设置抖动滞后值,测量延迟,和颜色eyeObjJitter。磁滞= 0.1;eyeObjJitter。MeasurementDelay = 6 / Rs;eyeObjJitter。ColorScale =“线性”;%设置平方根余弦滤波器。b = rcosdesign (0.5 6 sps);b = b /和(b);transmitFilter = dsp.FIRFilter (“分子”,b);%运行仿真frameLen = 1000;numFrames = 20;lastSymbol = 0;lastJitter = 0;释放(渠道);%产生抖动信号消息=生成(src, frameLen * numFrames);%添加ISI和噪音messageISI = transmitFilter(消息);收到=通道(messageISI);k = 1:800%更新信号的眼图对象eyeObjJitter(收到(1 + (k - 1) * 10 * 2 * sps: k * 10 * 2 * sps));结束%也出口显示测量的测量方法:量=测量(eyeObjJitter)% #好< NOPTS >%的测量的详细解释,请参考%的文档类型(“doc comm.EyeDiagram”在命令行)。请注意,%因为仿真运行使用少于20000符号,结果%不太准确。
量=结构体字段:EyeLevels: [2 x1双]EyeAmplitude: 1.8519 EyeHeight: 1.5124 VerticalOpening: 1.0447 EyeSNR: 10.5280 QualityFactor: 16.0473 CrossingLevels: [2 x1双]CrossingTimes: [2 x1双]EyeDelay: 0.0104 EyeWidth: 0.0077 HorizontalOpening: 0.0048上升时间:0.0066 FallTime: 0.0066 DeterministicJitter: 6.5994 e-04 RandomJitter: 0.0045 TotalJitter: 0.0052 RMSJitter: 3.8680 e-04 PeakToPeakJitter: 0.0049

比较测量

我们可以使用comm.EyeDiagram比较测量结果的测量出口能力在不同配置。下一个示例检查随机抖动的影响在一个NRZ 10 gsp时符号率的系统。确定性抖动被设置为2 ns。随机抖动的标准差从300 ps 500 ps,增加在100 ps的步骤。NRZ信号通过与40 dB AWGN信道信噪比。注意,情况将会增加随机抖动自兴衰时代是零。

Fs = 10 e9;Rs = 100 e6;sps = Fs / Rs;Trise = 2 e-9;Tfall = 2 e-9;%生成器对象创建一个模式srcObj = commsrc.pattern (“SamplingFrequency”Fs,“SamplesPerSymbol”sps,“DataPattern”,“PRBS31”,的上升时间Trise,“FallTime”,Tfall);srcObj.Jitter。RandomJitter =“上”;srcObj.Jitter。DiracJitter =“上”;srcObj.Jitter。DiracDelta = [1 e-9 1 e-9];%创建一个眼图对象eyeObj = comm.EyeDiagram (“SampleRate”Fs,“SamplesPerSymbol”sps,“YLimits”(-1.75 - 1.75),“EnableMeasurements”,真的,“MeasurementDelay”6 e-9);%设置的标准偏差范围随机抖动stdVec = (300:50:500) * 1 e-12;%设置仿真参数frameLen = 1000;numFrames = 100;问= 1;%主循环randStd = stdVec%设置随机抖动标准差和重置眼图%的对象srcObj.Jitter。RandomStd = randStd;隐藏(eyeObj);重置(eyeObj);释放(eyeObj);%更新眼图对象的抖动和噪声来源x =生成(srcObj frameLen * numFrames);r = awgn (x, 40);eyeObj (r);量测量(问)= (eyeObj);%的眼科中心调整时间轴的中间timeOffsetSamps = 2 * eyeObj。SamplesPerSymbol - Fs *量(问).EyeDelay;eyeObj。SampleOffset =圆(timeOffsetSamps);问=问+ 1;结束隐藏(eyeObj);隐藏(eyeObjJitter);

下面的图显示了水平开口的测量结果中,随机抖动,确定性抖动。由于随机抖动的比特误码率测量1 e-12(见系统阈值属性),随机抖动的期望值大约14倍标准差的抖动样本。例如,对于300 ps的标准差,随机抖动数量= 1 e-12 4.2 ns。

hFig =图;情节(300:50:500 [meas.HorizontalOpening],“b - *”);持有;情节(300:50:500 [meas.RandomJitter],的r - *);持有;情节(300:50:500 [meas.DeterministicJitter],“g - *”);传奇(“水平开口”,“随机抖动”,“确定性抖动”,“位置”,“西北”);标题(“测量比较嘈杂的NRZ信号”);包含(随机抖动(ps)的标准偏差);ylabel (“时间(s)”);网格;

水平和垂直开口也可以为不同的误码率相比阈值使用可用的浴缸曲线显示。

eyeObj。ShowBathtub =“水平”;eyeObj。浴缸= 10 ^ - (1:3:13)[0.5];显示(eyeObj);

引用

  1. Ou n . et al .,“抖动模型的设计和测试Gbps-Speed串行互联,“IEEE®设计与测试的电脑,21卷,2004年,页302 - 313。

  2. 史蒂芬斯R。,"Jitter Analysis: The dual-Dirac Model, RJ/DJ, and Q-Scale," Agilent Technologies® Whitepaper, 2004. Available from www.Agilent.com.