文档

系统对象

显示时域信号眼图

描述

眼图系统对象™显示调制信号的多个迹线以产生眼图。您可以使用该对象来显示信号的调制特性,例如脉冲整形或信道失真的影响。当抖动和噪声符合双狄拉克模型时,眼图可以测量信号特性并绘制水平和垂直浴缸曲线[1]

显示输入信号的眼图:

  1. 创建一个comm.EyeDiagram对象,并设置该对象的属性。

  2. 调用一步显示信号的眼图。

请注意

或者,不使用一步方法来执行System object™定义的操作,则可以带参数调用该对象,就好像它是一个函数一样。例如,Y = step(obj,x)Y = obj(x)执行等价操作。

建设

ed = com . eyediagram返回一个眼图对象,艾德,使用默认属性。

ed = com . eyediagram (Name,Value)使用名称,值对。未指定的属性具有默认值。

例子

ed = com .眼图(“这个”“2D颜色直方图”...“OversamplingMethod”“输入插值”);

属性

全部展开

名称显示在眼图窗口上,指定为字符向量。可调。

输入信号的采样率(以Hz为单位),指定为正实标量。

每个符号的样本数,指定为正整数标量。可调。

在绘制第一个点之前要省略的样本数,指定为非负整数标量。为避免不规则行为,请将偏移量指定为小于的乘积SamplesPerSymbolSamplePerTrace

每个跟踪的符号数,指定为正整数标量。要获得眼睛测量值并可视化浴缸曲线,请使用默认值2。可调。

要显示的跟踪数,指定为正整数标量。时,此属性可用这个控件属性指定为“线路图”。可调。

眼图显示模式,指定为“线路图”“2D颜色直方图”。可调。

  • 指定“线路图”通过为最后一条线绘制一条线来覆盖跟踪TracesToDisplay痕迹。

  • 指定“2D颜色直方图”显示颜色梯度,显示输入与不同时间和振幅值匹配的频率。

启用眼图测量,指定为逻辑标量。可调。

启用浴缸曲线的可视化,指定为“没有”“水平”“垂直”,或“两个”。此属性在以下情况可用EnableMeasurements真正的。可调。

直方图叠加,指定为“没有”“抖动”,或“噪音”

  • 要在眼图上覆盖水平直方图,请将此属性设置为“抖动”

  • 要在眼图上叠加垂直直方图,请将此属性设置为“噪音”

此属性在以下情况可用这个控件“2D颜色直方图”EnableMeasurements真正的。可调。

幅度电平阈值以V表示,以标量表示。此属性为水平(抖动)直方图分隔不同的信令区域,并在以下情况下可用EnableMeasurements真正的。这个属性是可调的,但是当属性改变时,抖动直方图会重置。

对于非归零(NRZ)信号,设置DecisionBoundary为0。对于归零(RZ)信号,设置DecisionBoundary到最大振幅的一半。

计算眼睛水平的时间范围,指定为双元素向量。这些值表示为符号持续时间的百分比。此属性在以下情况可用EnableMeasurements真正的。可调。

上升和下降转换的幅度水平,指定为一个双元素向量。这些值以眼振幅的百分比表示。此属性在以下情况可用EnableMeasurements真正的。这个属性是可调的,但是当它被改变时,上升和下降阈值的交叉直方图会重置。

V中水平交叉点的振幅公差,用标量表示。增加迟滞,提供更大的容忍伪交叉由于噪声。此属性在以下情况可用EnableMeasurements真正的。这个属性是可调的,但是当属性改变时,抖动和上升和下降直方图会重置。

用于眼睛测量的误码率,指定为0到0.5的非负标量。该值用于测量随机抖动、总抖动、水平睁眼和垂直睁眼。此属性在以下情况可用EnableMeasurements真正的。可调。

BER值用于计算浴缸曲线的开口,指定为一个向量,其元素范围从0到0.5。根据此属性指定的每个值计算水平和垂直的眼开口。此属性在以下情况可用EnableMeasurements真正的ShowBathtub“两个”“水平”,或“垂直”。可调。

从测量中丢弃的初始数据的持续时间,以秒为单位,指定为非负标量。此属性在以下情况可用EnableMeasurements真正的

过采样方法,指定为“没有”“输入插值”,或“直方图插值”。此属性在以下情况可用这个控件“2D颜色直方图”。可调。

为了尽快绘制眼图,设置OversamplingMethod“没有”。不过采样的缺点是,当每个跟踪的采样数量很小时,图看起来像像素化了。

要使用每个跟踪的少量样本创建更平滑、像素化程度更低的绘图,请设置OversamplingMethod“输入插值”“直方图插值”。输入插值是一种速度较快的插值方法,在信噪比较高的情况下具有较好的插值效果。对于较低的信噪比,不建议使用这种过采样方法,因为它会引入直方图范围中心的偏差。直方图插值不如其他技术快,但即使在信噪比较低时也能提供良好的结果。

直方图的颜色比例,指定为“线性”“对数”。如果直方图的某些区域包含不成比例的点,则更改此属性。使用“对数”具有尖峰的眼图选项,其中信号重复匹配特定的时间和振幅值。此属性在以下情况可用这个控件“2D颜色直方图”。可调。

颜色褪色,指定为逻辑标量。要使显示中的点在首次绘制后随着时间间隔的增加而逐渐淡出,请将此属性设置为真正的。这个动画就像一个示波器。此属性在以下情况可用这个控件“线路图”。可调。

显示虚信号分量,指定为逻辑标量。若要查看输入信号的虚分量或正交分量,请将此属性设置为真正的。此属性在以下情况可用EnableMeasurements。可调。

眼图在V中的y轴极限,指定为双元素向量。第一个元素对应于ymin第二个是ymax。第二个元素必须大于第一个元素。可调。

在眼图上启用网格显示,指定为逻辑标量。若要在眼图上显示网格,请将此属性设置为真正的。可调。

作用域窗口位置(以像素为单位),指定为窗体的四元素向量[左下宽高]。可调。

方法

隐藏 隐藏作用域窗口
horizontalBathtub 水平浴缸曲线
jitterHistogram 抖动直方图
测量 测量眼图参数
noiseHistogram 噪音直方图
重置 眼图对象的重置状态
显示 使作用域窗口可见
一步 绘制输入信号眼图
verticalBathtub 垂直浴缸曲线
所有系统对象通用
释放

允许更改系统对象属性值

例子

全部展开

指定采样率和每个符号参数的输出样本数。

Fs = 1000;SPS = 4;

创建传输过滤器和眼图对象。

txfilter = comm.RaisedCosineTransmitFilter()“OutputSamplesPerSymbol”, sps);ed = com .眼图(“SampleRate”fs * sps,“SamplesPerSymbol”, sps);

生成随机符号并应用QPSK调制。然后对调制信号进行滤波,显示眼图。

Data = randi([0 3],1000,1);modSig = pskmod(data,4,pi/4);txSig = txfilter(modSig);ed (txSig)

展示了在不同信噪比条件下,不同插值方法对二维直方图的影响。

创建GMSK调制器和眼图系统对象。指定眼图使用二维颜色直方图显示,并绘制实信号和虚信号。

gmsk = com . gmskmodulator“PulseLength”3);ed = com .眼图(“这个”“2D颜色直方图”...“ShowImaginaryEye”,真的,“YLimits”(2 - 2));

生成双极数据并应用GMSK调制。

D = 2*randi([0 1],1,1)-1;X = gmsk(d);
%将信号通过具有25 dB信噪比的AWGN通道,并具有可重复结果的固定种子。randStream = randStream (“mt19937ar”“种子”, 5489);Y = awgn(x,25,“测量”, randStream);

显示眼图。

ed (y)

对于每个轨迹的样本数量较少(16),缺少插值会导致分段连续行为。

为了补偿分段连续的行为,设置OversamplingMethod财产“输入插值”。重置对象并显示眼图。

ed.OversamplingMethod =“输入插值”;重置(ed) ed (y)

插值平滑了眼图。

现在将gmsk调制的信号通过具有10 dB信噪比的AWGN信道。显示眼图。

Y = awgn(x,10,“测量”, randStream);重置(ed) ed (y)

垂直条纹是输入插值的结果,在低信噪比条件下精度有限。

设置OversamplingMethod财产“直方图插值”。绘制眼图。

ed.OversamplingMethod =“直方图插值”;重置(ed) ed (y)

由于直方图插值方法适用于所有信噪比值,因此眼睛图现在可以准确地渲染。这种方法会增加执行时间。

可视化双狄拉克输入信号的眼图。计算眼睛测量,并可视化水平和垂直浴缸曲线。覆盖水平(抖动)直方图。

指定采样率、每个符号的采样数和迹线数。

Fs = 10000;SPS = 200;numTraces = 2000;

创建一个具有以下属性的眼图对象:

  • 二维颜色直方图显示

  • 对数色标

  • 抖动直方图叠加

  • 水平和垂直浴缸曲线

  • y轴极限[-1.3 1.3]

  • 增加窗户高度

ed = com .眼图(“SampleRate”fs,“SamplesPerSymbol”sps,“SampleOffset”sps / 2,...“这个”“2D颜色直方图”“ColorScale”“对数”...“EnableMeasurements”,真的,“OverlayHistogram”“抖动”...“ShowBathtub”“两个”“YLimits”, [-1.3 1.3]);ed.Position = ed.Position + [0 0 0 120];

生成具有双狄拉克和随机抖动的波形。指定3毫秒的上升和下降时间。

SRC = commsrc.pattern(“SamplesPerSymbol”sps,的上升时间3 e - 3“FallTime”3 e - 3);src。Jitter = commsrc.combinedjitter(“RandomJitter”“上”“DiracJitter”“上”...“DiracDelta”(-10 e-04 10 e-04),“RandomStd”5的军医);

为每个跟踪生成两个符号。

symbols = src.generate(numTraces*2);

处理40e3符号数据包中的数据,添加噪声,显示眼图。

idx = 1:(numtrace -1)/100 x = symbols(1+(idx-1)*100*2*sps:idx*100*2*sps);%读取40,000个符号Y = awgn(x,30);%添加噪音ed (y);%显示眼图结束

显示具有双狄拉克和随机抖动的波形的眼图。绘制抖动和噪声直方图。

指定采样率、每个符号的采样数和跟踪参数的数量。

Fs = 1000;SPS = 200;numTraces = 1000;

创建一个眼图对象。

ed = com .眼图(“SampleRate”fs,“SamplesPerSymbol”sps,“SampleOffset”sps / 2,...“这个”“2D颜色直方图”“ColorScale”“对数”...“EnableMeasurements”,真的,“YLimits”[-1.2 - 1.2]);

生成具有双狄拉克和随机抖动的波形。指定3毫秒的上升和下降时间。

SRC = commsrc.pattern(“SamplesPerSymbol”sps,的上升时间3 e - 3“FallTime”3 e - 3);src。Jitter = commsrc.combinedjitter(“RandomJitter”“上”“DiracJitter”“上”...“DiracDelta”(-10 e-04 10 e-04),“RandomStd”5的军医);

为每个跟踪生成两个符号。

x = src.generate(numTraces*2);

将信号通过带有固定种子的AWGN通道传递,以获得可重复的结果。

randStream = randStream (“mt19937ar”“种子”, 5489);Y = awgn(x,30,“测量”, randStream);ed (y)

计算每个bin的抖动直方图计数jitterHistogram方法。绘制直方图。

jbins = jitterHistogram(ed);情节(jbins)

计算每个bin的噪声直方图计数noiseHistogram方法。绘制直方图。

nbins = noiseHistogram(ed);情节(nbins)

显示具有双狄拉克和随机抖动的波形的眼图。生成并绘制浴缸的水平和垂直曲线。

指定采样率、每个符号的采样数和跟踪参数的数量。

Fs = 1000;SPS = 200;numTraces = 1000;

创建一个眼图对象。

ed = com .眼图(“SampleRate”fs,“SamplesPerSymbol”sps,“SampleOffset”sps / 2,...“这个”“2D颜色直方图”“ColorScale”“对数”...“EnableMeasurements”,真的,“ShowBathtub”“两个”“YLimits”[-1.2 - 1.2]);

生成具有双狄拉克和随机抖动的波形。指定3毫秒的上升和下降时间。

SRC = commsrc.pattern(“SamplesPerSymbol”sps,的上升时间3 e - 3“FallTime”3 e - 3);src。Jitter = commsrc.combinedjitter(“RandomJitter”“上”“DiracJitter”“上”...“DiracDelta”(5 e-04 5 e-04),“RandomStd”2的军医);

为每个跟踪生成两个符号。

x = src.generate(numTraces*2);

将信号通过带有固定种子的AWGN通道传递,以获得可重复的结果。

randStream = randStream (“mt19937ar”“种子”, 5489);Y = awgn(x,30,“测量”, randStream);

显示眼图。

ed (y)

为眼图生成水平浴缸数据。绘制曲线。

hb = horizontal浴缸(ed)
hb =1x13结构数组与字段:BER LeftThreshold RightThreshold
semilogy ([hb.LeftThreshold]、[hb.BER]“b”[hb.RightThreshold], [hb.BER],“b”网格)

为眼图生成垂直浴缸数据。绘制曲线。

vb = vertical浴缸(ed)
vb =1x13结构数组与字段:BER UpperThreshold LowerThreshold
semilogx ([vb.BER]、[vb.LowerThreshold]“b”[vb.BER], [vb.UpperThreshold],“b”网格)

创建一个具有随机抖动的组合抖动对象,标准偏差为2e-4。

JTR = commsrc.combinedjitter()“RandomJitter”“上”“RandomStd”2的军医);

产生一个具有随机抖动和3毫秒上升和下降时间的NRZ信号。

genNRZ = commsrc.pattern(“抖动”jtr,的上升时间3 e - 3“FallTime”3 e - 3);x = generate(genNRZ,2000);

将信号通过带有固定种子的AWGN通道传递,以获得可重复的结果。

randStream = randStream (“mt19937ar”“种子”, 5489);Y = awgn(x,30,“测量”, randStream);

创建一个眼图对象。启用度量。

ed = com .眼图(“SamplesPerSymbol”, genNRZ。SamplesPerSymbol,...“SampleRate”, genNRZ。SamplingFrequency,“SampleOffset”, genNRZ。SamplesPerSymbol / 2,...“EnableMeasurements”,真的,“这个”“2D颜色直方图”...“OversamplingMethod”“输入插值”“ColorScale”“对数”“YLimits”[-1.2 - 1.2]);

为了计算上升和下降时间,从眼水平和眼振幅测量中确定上升和下降阈值。绘制眼图来计算这些参数。

ed (y)

再通过眼图对象传递信号来测量上升和下降的次数。

ed (y)藏(ed)

控件显示数据测量方法。

Eyestats =测量值;riseTime = eyestats。R是eTime fallTime = eyestats.FallTime
riseTime = 0.0030 fallTime = 0.0030

测量值符合3ms规格。

测量

全部展开

要打开测量面板,请单击眼睛测量按钮或从工具栏菜单中选择Tools > Measurements > Eye Measurements。

眼水平是用来表示数据位的幅度水平。对于显示的NRZ信号,电平为-1 V和+ 1v。眼水平是通过平均眼水平边界内的二维直方图来计算的。

眼振幅是V中两个眼位的平均值之间的距离。

眼高是眼与眼之间的距离μ - 3σ眼睛上方的高度μ + 3σ眼睛下方的位置。μ为眼位平均值,σ为标准差。

垂直开口是对应于误码率阈值的两点之间的距离。例如,误码率阈值为10-12年,这些点对应到每个眼位的7σ距离。

眼信噪比是眼水位差与每个眼水位差对应的垂直标准差之差之比:

信噪比 l 1 l 0 σ 1 σ 0

在哪里l1l0表示上下眼位和σ的均值1和σ0表示它们的标准差。

Q因子的计算公式与Eye信噪比相同。然而,垂直直方图的标准差被用双狄拉克分析计算的标准差所取代。

交叉水平是眼交叉发生时的振幅水平。

交叉时间是交叉发生的时间。时间被计算为水平(抖动)直方图的平均值。

眼延迟是两个交叉时间之间的中点。

眼宽是两眼之间的水平距离μ + 3σ剩下的穿越时间和μ - 3σ正确的穿越时间。μ是抖动直方图的平均值,σ是标准差。

水平开口是与误码率阈值相对应的两点之间的距离。例如,对于一个10-12年这两个点对应于每次穿越时间的7σ距离。

上升时间是眼图中定义的低阈值和高阈值之间的平均时间。默认阈值是眼振幅的10%和90%。

下降时间是眼图中定义的高阈值和低阈值之间的平均时间。默认阈值是眼振幅的10%和90%。

确定性抖动(DJ)是双狄拉克直方图的两个峰值之间的距离。DJ的概率密度函数(PDF)由两个δ函数组成。

随机抖动(RJ)是高斯无界抖动分量。抖动的随机分量被建模为具有指定标准偏差的零均值高斯随机变量,σ。随机抖动计算为:

RJ l + R σ

在哪里

2 误差补函数 1 2 B E R ρ

误码率为指定的误码率阈值。ρ是左右狄拉克函数的振幅,由抖动直方图的bin计数决定。

总抖动(TJ)是确定性抖动和随机抖动之和,使得Tj = DJ + rj

总抖动PDF是DJ PDF和RJ PDF的卷积。

RMS抖动是在决策边界的水平(抖动)直方图中计算的抖动的标准差。

峰间抖动是每一次交叉时间的水平直方图中左右非零值之间的最大水平距离。

可编程配置

可以使用回调或在脚本中使用范围配置对象以编程方式配置范围属性,如程序化控制作用域(万博1manbetx模型)。

参考文献

[1]斯蒂芬斯,兰森。抖动分析:双狄拉克模型、RJ/DJ和Q-Scale。安捷伦科技白皮书。2004年12月。

扩展功能

另请参阅

系统对象

功能

在R2016b中引入

这个话题有帮助吗?