找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 3038|回复: 7
打印 上一主题 下一主题

[仿真讨论] 请教关于MATLAB读入外部数据进行眼图分析的过程的问题

[复制链接]

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
跳转到指定楼层
1#
发表于 2012-7-4 18:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
请教关于MATLAB读入外部数据进行眼图分析的过程的问题
! A/ @0 d, s' j5 ^7 I: _  Q2 F/ m+ Y
使用的是MATLAB2012A的环境; C& ]: h: U! F0 X! T; C5 _
$ L: |2 }) N7 I% |/ C2 g( y
5 B/ R+ ^8 Q' {% g
现在有2组数据,clk与data# r7 b( b- l  C* r4 J
时钟的频率是400MHz(周期是5ns,脉宽是2.5ns),取样频率5ps,此时采集时间为500ns,共有数据点10万个
: _/ b' ]: l+ i, @时钟沿在每个码元的中间进行触发,时序关系是间隔2.5ns
. F- s9 X) @. i: K9 i
$ W# v. g) ~1 J. {" \但是使用“commscope.eyediagram”进行测量时提示错误:
5 _& \( K/ [2 l+ M, {
& U2 K; J9 [3 n- ^  BWarning: The eye diagram does not have enough data. Analysis results may not be, e# [3 E5 }: s/ H3 q2 }4 G8 [. v
accurate. To improve accuracy, enter more data using the UPDATE method.   m0 o5 I! i  M6 S1 c
> In commscope.eyemeasurements.analyze at 707 i5 n3 L% _* b: B4 s
  In commscope.eyediagram.analyze at 85) w1 F/ k5 r5 W" K+ W
  In Untitled at 24 ( _! d. N' x: ^
Error using calcEyeCrossingTime (line 67)+ u' S% d. n8 v* A
The ANALYZE method cannot determine crossing times. Check measurement setup values in& T9 O. k2 J' y$ U+ I6 k8 U
the MeasurementsSetup property. Also, the collected data may not be valid. See
: U* A+ |% r( S. O& ]# L" Xdocumentation for description of valid eye diagrams.
) Y) e  X9 t5 |6 R1 N9 S  G" v) D" z6 j0 ^! W
Error in commscope.eyemeasurements/analyze (line 85)
. A9 @( i3 e8 r. ]calcEyeCrossingTime(this,...& \; H* ]( @4 ^1 ^4 x5 K, z. \
" z# @. Y: ]. N- A( H9 }
Error in commscope.eyediagram/analyze (line 85)# g( E8 b4 g4 F, x( h8 ]
    this.Measurements.analyze(this);
: W: q. T- G0 X- Z7 y
& b4 F2 M; V: `2 @0 \Error in Untitled (line 24)2 B' F& f3 e* d; j% j7 B
analyze(eyeObj);  D% z" r  d  F- G$ T1 ^) l) D

! D7 ?& s% E* n+ {4 T
8 j' f: |. ?( i; I9 c怎么理解“The eye diagram does not have enough data”,按照时钟数据,波形有100个,为何还不够?8 {+ e# b' }* G6 E, y/ N5 [

+ I7 z; T0 j0 l; s& a/ H/ M; V而且读入clk后显示的眼图感觉也不太对4 E6 Y: `/ \+ Z- {" b9 u

% r- Y* f3 U3 u请熟悉眼图的朋友帮分析一下错误的地方在哪里% `% f/ ~( U* x( V0 I- G/ N+ W

$ D0 `8 b9 q' R' M简单的代码如下:
) g  H; O/ p' t, N0 g! Rclear  n6 a9 a6 I6 z! u$ l) \1 z# b
close all- x) ^7 r7 d" y/ N! S
2 ^5 N- g1 L4 W  [
%filename ='F:\clk.txt';
& ~: t5 T8 x& O! P+ gfilename ='F:\data.txt';
6 ~! u6 L, Y" A5 S# rfid=fopen(filename,'r');  I. ~4 T" R( f9 j$ K& l0 i1 [
[code,count]=fscanf(fid,'%f',100000);( }: d9 P+ m' R
plot(code);
, S! e* F* `1 H0 B4 g# F8 R  m: S2 ], V7 a' I$ }
% Create an eye diagram and display properties6 K' }" Z3 f7 E9 c7 W
eyeObj = commscope.eyediagram(...
! ^: {( `: e8 ^3 k    'SamplingFrequency', 200000000000, ...8 `6 L) ]/ H8 w- G# C
    'SamplesPerSymbol', 500, ...# {* @! I4 e; e0 z% x
    'SymbolsPerTrace',2,...
% |* i+ g+ K" r: M    'MinimumAmplitude', 0.4, ...3 `2 r9 f' [+ K8 }2 M
    'MaximumAmplitude', 1.4, ...
  `  E, q4 M9 j. T# m    'PlotTimeOffse',0,...
3 ~) u  A+ ?+ |7 \    'PlotType','2D Colo',...6 t1 ]! n* K" d5 i9 z7 r
    'ColorScale', 'log') %#ok
& c& z7 B7 W0 h& J
* q/ X$ C& Z/ }  n
. u# S. k+ f  j8 p+ U+ Kupdate(eyeObj, code);5 ?: J7 h& s; g- O& z
title('Noisy NRZ signal');xlabel('Time (sec)');ylabel('Amplitude');grid on;
0 c" Q# V9 n% \$ J! zanalyze(eyeObj);: e- q* l  _! a' g# j' f
eyeObj.Measurements& D' N: f. Z& u5 |6 g

1 g! y/ f6 f0 _' g1 b" T* i/ Q; O! v
# f' w" y9 }/ i/ n4 @6 Y - F, L+ E7 s$ |. u5 K. K" x0 |2 ^3 n
clk.rar (239.37 KB, 下载次数: 12) 5 C4 N- S- L, l3 D1 e# J" g/ b
data.rar (232.47 KB, 下载次数: 11)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

2

主题

157

帖子

999

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
999
2#
发表于 2012-7-5 15:18 | 只看该作者
楼主,有问题:
! G' G9 ?0 p( }6 T6 y5 {9 \3 z$ p5 k! v7 l1,400MHz 的时钟是差分信号吗?9 D" n6 c/ r9 f# T
2,你的数据中UI才100个, 确实短了。
8 B- P  r. h% S3 @# A) Y( G3,主要问题出在 commscope.eyediagram,而这个函数你未提供。分析该函数,就应该能找到问题的根源。
我做SI有两年了, 刚刚入门呀, 希望和大家多多谈论。

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
3#
 楼主| 发表于 2012-7-5 18:07 | 只看该作者
yejialu 发表于 2012-7-5 15:18
. {" m" f8 e: s2 |1 M4 v楼主,有问题:
' I- Q% H. D; w# [+ G* Q% Z1,400MHz 的时钟是差分信号吗?
0 R& r+ V( O8 t" P/ P$ s3 B2,你的数据中UI才100个, 确实短了。
5 ?: Q; m! s- J! P1 k
commscope.eyediagram
8 z, Z! s3 N( P& }, Z是在2012版本才有的 ,旧版本估计没有这个函数
* Q1 u3 N  V) H" Y% J" o! S9 T; y" n$ e& W: o

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
4#
 楼主| 发表于 2012-7-5 18:55 | 只看该作者
不太情况是哪里的设置问题,首先我用MATLAB自带的函数产生了一个码元数据,然后丢给眼图分析函数5 [# w2 E% Q7 ^' k. v! g; G

8 Z, A% o% z" r代码如下:
4 G+ m. ~# l0 w: ^7 P- l///////////////////////////////////////////////////////////////////////////////////////////////
6 n2 x/ M: F# ]7 B' c" B' Tclear3 C' _& N( h7 g3 D, \( P  R3 [# w
close all" g) l/ A% K3 [; x( j
   ( @4 B  ^& q: i; C0 x
% Initialize system parameters" H3 |' E, Y) p' g( o0 M; X3 Z: P
Fs = 10000000000; Rs = 200000000; nSamps = Fs/Rs; rollOff = 0.8; M=4;. V) [+ \! D, r6 @) C
hMod = comm.QPSKModulator; % comm.QPSKModulator System object& t3 x/ o9 K4 V
. g* m9 [' g+ u$ d; K3 g
% Square root raised cosine filters
# k! Z6 f% Q1 L4 BfiltSpec = fdesign.pulseshaping(nSamps,'Square root raised cosine',...5 t* l( L8 w: @6 k
    'Nsym,Beta',6,rollOff);/ r: z! F3 B# f6 y! j: J) ]
hTxFlt = design(filtSpec); hTxFlt.PersistentMemory = true;
! p1 E* L" D4 W. k+ b* jhRxFlt = copy(hTxFlt); hTxFlt.Numerator = hTxFlt.Numerator*nSamps;
2 i- I* t8 M# v8 z+ |
* M( N% P( P+ W' m8 d; N6 U% Generate modulated and pulse shaped signal$ P; l: D8 H9 b3 m+ O1 b7 x
frameLen = 1258;; n. }+ \# H( O0 B' n0 J
msgData = randi([0 M-1],frameLen,1);
: ~- E' Q% p5 r( z+ N7 V" ^( `8 [msgSymbols = step(hMod, msgData);
* k! E7 ]. V/ i  n! j) F/ y9 XmsgTx = hTxFlt.filter(upsample(msgSymbols, nSamps));% |7 _" L9 E0 N- o+ F* M7 X# v3 F; y

( O1 \8 [  Z8 l+ |: i8 ^t = 0:1/Fs:100/Rs-1/Fs; idx = round(t*Fs+1);
2 i7 j, }; d. @( e2 ]% O0 ?- \* ]hFig = figure; plot(t, real(msgTx(idx)));$ q' W: a6 n; }; b& W6 `
title('Modulated, filtered in-phase signal');2 F8 r' U& d% e9 T) t$ v) O- V
xlabel('Time (sec)'); ylabel('Amplitude'); grid on;
2 u0 S. s, X3 q6 I2 c2 R6 w7 s8 H" k' H8 H  R6 \2 w3 x
save('pqfile1.txt', 'msgTx','-ASCII')
+ ^+ v1 L' D# O$ P& g& p4 ^. k8 X; H7 @3 H7 j
% Manage the figures+ q8 c7 A: S" `4 w  |
managescattereyefig(hFig);
" w8 F! Y, C# X, a/ V
$ t7 T* d) n, v( E  R6 y; _) L( Y* J+ Q
% Create an eye diagram object% R6 j8 }2 c- \# Q6 B1 d
eyeObj = commscope.eyediagram(...# m% o: p$ j$ a
    'SamplingFrequency', Fs, ...
+ A% l  f- s: Q# l4 O# X$ P    'SamplesPerSymbol', nSamps, ...5 C' Q$ r" H( c, Y( J8 I0 e0 ]
    'MinimumAmplitude', -1.4, ...' X; B* z$ v0 `% ?2 ~2 y0 c
    'MaximumAmplitude', 1.4, ...9 G, v9 R7 L+ D
    'SamplingFrequency', Fs, ...
# U& O$ Z; R8 {4 x1 ^5 }/ {1 l    'SamplesPerSymbol', nSamps, ...
5 Y* H& G) ]% p2 d0 a' I5 D    'OperationMode', 'Complex Signal')  R/ c+ ~; Y& `1 E2 U( a6 a' i0 A

% u, C& _$ i& W% W1 X  ~% Update the eye diagram object with the transmitted signal
- i9 h, R! d: u: m0 Q3 neyeObj.update(msgTx);" _: S- c9 Q4 A- T8 }, _
; ~( h9 p+ N* Z) g: I- ]
% Manage the figures) d3 o- Y; Q5 G6 m# {: f% A8 B
3 i# E9 K3 a% |$ j# ?; m$ Z
analyze(eyeObj);
; @3 c; H5 ~" }* g( b+ FeyeObj.Measurements7 d% q2 X& G4 H6 r" K# W1 o
///////////////////////////////////////////////////////////////////////////////////////////////
! M* Q+ \9 M# @& ^
, G7 o; L) E1 ^; C. a然后读入pqfile1.txt文件,代码如下:9 W6 V9 p% ?/ H, h0 h
//////////////////////////////////////////////////////////////////////////////////////////////' P# V/ f1 j6 v- Y
clear
- u$ L8 o1 N  Z) X8 D" `# |close all1 Q7 x1 n3 X% h  X
& t$ l. R) {! Q* K' Y
Fs = 10000000000; Rs = 200000000; nSamps = Fs/Rs;
+ M  N6 o. @) c0 C+ R4 y& G
5 |: M2 Y( \* I. Wfilename ='pqfile1.txt';4 f+ z7 I8 W) \+ C2 I8 r- [* z
fid=fopen(filename,'r');; }4 y' h5 A9 s9 H1 q/ i- U
[code,count]=fscanf(fid,'%f',62900);% j4 }9 a$ |5 t& R' g4 Z
. c* D0 @  A! L3 G6 i; X" R# B7 A
% Create an eye diagram and display properties
5 ?! K  P4 C2 G0 X, V$ u; W8 TeyeObj = commscope.eyediagram(...7 s4 `' n( h: \7 V& ]; ~+ D% z
    'SamplingFrequency', Fs, ...* q- X* Q% s5 Z( |0 e0 w
    'SamplesPerSymbol', nSamps, ...; y& M* A  t# c5 q# W1 A" q
    'SymbolsPerTrace',2,...0 f* `) |/ e/ Y1 |" q6 S% R; q
    'MinimumAmplitude', -1.4, ...
! o2 w& e, }; y( |    'MaximumAmplitude', 1.4, ...3 G' K  D2 V" a6 ^8 v3 I5 h3 i
    'PlotTimeOffse',0,.../ V+ o" F6 n3 m) h; J( a7 g5 g, n
    'PlotType','2D Colo',...
( o+ j+ h' |& d* I+ v  L$ E, V    'ColorScale', 'log') %#ok
' k9 B* j7 ^: q: V. f
/ w- P2 ~* a1 T$ D, L# z$ S' t! z* U, ~9 a+ P' h
update(eyeObj, code);# f5 o* x$ ]1 V" ]* T/ z! k( P* I
title('Noisy NRZ signal');xlabel('Time (sec)');ylabel('Amplitude');grid on;# f% i5 }" ]! L' r
analyze(eyeObj);
# Z. T! m/ r& T8 H& ZeyeObj.Measurements
* C' a. e& |9 x( e- D//////////////////////////////////////////////////////////////////////////////////////////////8 i2 g3 o% z) k( C! N) a/ t6 U( E
测量结果是:
2 u2 x) ^. n- p% W, x+ U) V                     Type: 'Eye Diagram Measurements'
4 I5 _* P) V. J) c              DisplayMode: 'Optimized for Real Signal'
2 O' G6 b, z$ O4 b) W$ t& V) v$ g0 h          EyeCrossingTime: [2.4972e-09 7.5006e-09]: r4 z) p, j3 ^/ \
     EyeCrossingAmplitude: [-0.0109 -0.0117]7 G, B# V. m. y, r1 c# p- q: D, W
                 EyeDelay: 4.9989e-09
) p, n4 g6 u- b1 b                 EyeLevel: [-0.8496 0.8484]/ E, F8 U/ y+ N$ i. p
             EyeAmplitude: 1.6980/ W8 G. h3 t! P' F
                EyeHeight: 1.0287
9 \  ^) h/ y# H0 x, v9 N    EyeCrossingPercentage: 49.3703! n  f$ _" G3 u4 N2 h1 O
       EyeOpeningVertical: 0.6723
7 d1 X/ K0 M8 a0 B. g                   EyeSNR: 7.6107
; G- }6 M3 e- r+ ]: |2 C            QualityFactor: 13.1948. Q( e. u5 w, C) x! a: x* Y8 X5 d
                 EyeWidth: 4.3069e-09
' k3 F0 \5 u% \' M; u     EyeOpeningHorizontal: 4.8000e-09# d$ N: w0 y" t! q
             JitterRandom: 0
/ S, @8 B% V* s+ j$ ~4 ^/ W      JitterDeterministic: 2.0000e-10
3 r0 P7 Z8 E1 h9 U6 A              JitterTotal: 2.0000e-10  p7 T* V5 @: ^1 k8 ?4 B
                JitterRMS: 1.0180e-10- \1 u& s  _* A/ E
         JitterPeakToPeak: 2.4000e-09
) m/ L" B" _/ f  k, G              EyeRiseTime: 2.1848e-09
' I1 O; Q- A1 K% }# i8 z              EyeFallTime: 2.1804e-09

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
5#
 楼主| 发表于 2012-7-5 18:57 | 只看该作者
yejialu 发表于 2012-7-5 15:18 % u# A- j5 C! e8 d3 W
楼主,有问题:
0 j3 O; }) M3 F# H1,400MHz 的时钟是差分信号吗?
- z7 S/ k6 H3 e% S2,你的数据中UI才100个, 确实短了。
' j0 u8 D+ S2 W3 ]9 K2 u& l
例如在ansoft designer 里面3 K2 G' b: ?! e$ c* \. B
  Q& J! i% n% ]( f7 m2 c+ O
数据码元用的是 V_PRBS_JITTER" {" I0 ?) D* Z3 `9 N
TR=TF=5E-11
/ b) I4 h$ s2 v. lBITWIDTH=2.5E-9
7 ^; V9 r( Z9 ~9 A) p4 \, ~& f. A, j' W( C; v# R" T- m# ]& f! h1 A
仿真时间长度5us% _/ l- a# }0 Y$ O
$ }; N. G! s# Y: z1 J0 J/ e/ E
导出数据的时候选择的step=100ps1 _, {& f6 u( s
# x  @3 j! g6 j
是否这里的采样频率就可以理解为 Fs=100ps?
0 X; E% L+ e  F' t6 ]9 j0 b0 _& O因为DQS的时钟周期长度是5ns,每个码元的时间是2.5ns,所以每个码元的采样点数为2500/100=25个) `* _! O. c* e2 Q% c
& Y+ j) n0 a: v3 x
目前这样的数据导出再导入到matlab里面无法计算

2

主题

157

帖子

999

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
999
6#
发表于 2012-7-6 09:23 | 只看该作者
导出数据的时候选择的step=100ps3 U9 k- S. Z1 m2 g  _# l6 N
是否这里的采样频率就可以理解为 Fs=100ps?
- z2 f) L) c, T' b, H8 |# Y6 Nstep是采样的步长吧。采样频率应该是步长的倒数。
" W' T" k7 f0 y0 i5 Z2 O! N; F0 B
我做SI有两年了, 刚刚入门呀, 希望和大家多多谈论。

2

主题

157

帖子

999

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
999
7#
发表于 2012-7-6 09:33 | 只看该作者
估计牵涉的函数也有好几个。 这样吧,你看提示错误在哪个函数, 去查代码。
# u& r0 G" g, K2 h0 o3 rError using calcEyeCrossingTime (line 67)
) ?8 o+ X. f4 ^% h; w" J3 \Error in commscope.eyemeasurements/analyze (line 85)7 P4 c/ I- f( W
Error in commscope.eyediagram/analyze (line 85)% |5 }8 k0 C% ^! z  R7 o  w7 e
Error in Untitled (line 24)。
; `/ h; d, S& L$ _& RThe ANALYZE method cannot determine crossing times. Check measurement setup values in the MeasurementsSetup property. Also, the collected data may not be valid. See8 q6 q! s; n6 H5 I% r
documentation for description of valid eye diagrams.+ c% j- ]- [  M* L
从这句话分析,我认为触发信号由于一个UI中的采样点过少,或者说采样频率过低。造成差分触发的P和N的交点无法判断, 也就 无法确定触发时间,无法去切割数据信号的UI,所以报错了。以上分析仅供参考。
我做SI有两年了, 刚刚入门呀, 希望和大家多多谈论。

2

主题

157

帖子

999

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
999
8#
发表于 2012-7-13 16:30 | 只看该作者
楼主人丢了吗?
我做SI有两年了, 刚刚入门呀, 希望和大家多多谈论。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-4-15 18:29 , Processed in 0.064557 second(s), 34 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表