找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

[复制链接]

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

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

EDA365欢迎您!

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

x
请教关于MATLAB读入外部数据进行眼图分析的过程的问题
8 S4 n. U: r( C# Z+ E4 M7 o& }
6 r" N' i% S: U+ G5 C5 q使用的是MATLAB2012A的环境" J! @6 I/ s" T- G, y7 Q
  a" j2 B& ^* B2 T% ^! j

! Y$ o: y; a& s, Q/ t6 I9 M现在有2组数据,clk与data- V6 {; Q! v2 ?9 e3 |
时钟的频率是400MHz(周期是5ns,脉宽是2.5ns),取样频率5ps,此时采集时间为500ns,共有数据点10万个+ S, D( Q4 |0 G* z8 z( h" T
时钟沿在每个码元的中间进行触发,时序关系是间隔2.5ns
8 s2 l1 k- [: `7 K2 \1 I/ M
6 `7 ]2 i2 Q" Z7 Z) y* B, z& K但是使用“commscope.eyediagram”进行测量时提示错误:6 j5 g% C( j! ^% d6 N: T# a

; {" |3 I. m8 B* \- H0 K# dWarning: The eye diagram does not have enough data. Analysis results may not be# m# V& p9 i: H, t5 G
accurate. To improve accuracy, enter more data using the UPDATE method.
, D" G; a; I; z- x> In commscope.eyemeasurements.analyze at 709 T! L) x$ I9 f1 `8 E3 a- W
  In commscope.eyediagram.analyze at 85
' Z- [" E  y5 r  \  In Untitled at 24
& s( C* _% ]) v6 l$ @- i4 |Error using calcEyeCrossingTime (line 67)3 m0 v1 k& p5 W& h5 G
The ANALYZE method cannot determine crossing times. Check measurement setup values in
3 I  c5 J' N0 @7 S9 uthe MeasurementsSetup property. Also, the collected data may not be valid. See
* t* d2 ~9 ~. t9 d: H2 Vdocumentation for description of valid eye diagrams./ u+ d( q' O* \. V& M- K. N, \: F: B

1 g$ i: M! [, Y3 @, tError in commscope.eyemeasurements/analyze (line 85)
9 T# \& e% i: b* e  M. B* h7 mcalcEyeCrossingTime(this,...4 r7 @5 `$ V0 S/ y1 f! G

) R. ?2 d6 U4 C. b' M; QError in commscope.eyediagram/analyze (line 85)/ a. U  l4 j% t3 F. v! y. u
    this.Measurements.analyze(this);8 w$ j& ~2 u6 E2 @) @  S5 U0 m) {, m

, C8 O! N: a# _' HError in Untitled (line 24)
7 j( u8 F% P( T9 Q; Y5 m# Sanalyze(eyeObj);- ?: y. R& @. b0 L% Y2 m
& `+ a* @, ~# {' U( |: {* V
* R( b0 M# n7 F. j% x
怎么理解“The eye diagram does not have enough data”,按照时钟数据,波形有100个,为何还不够?
* W4 D# s2 ^# J( U; D5 h0 J& w5 Z% H! h
而且读入clk后显示的眼图感觉也不太对
3 m8 X# |% N& B& W. \. `7 E! t% o+ ?& a
请熟悉眼图的朋友帮分析一下错误的地方在哪里; M2 z9 P. n0 z5 i9 I
8 U. l8 ]7 A7 B( t* a) k
简单的代码如下:/ F" D$ B8 x# h( b) k" f' O
clear
5 \+ M  T* @6 Q4 Y0 sclose all0 p. j2 I4 }) P3 D/ T- [

+ K4 A- F% h/ S2 M' S8 q6 [2 b%filename ='F:\clk.txt';
# g+ N% H9 E* N) R) wfilename ='F:\data.txt';
) K3 M% b5 W' C, }" w- @" ifid=fopen(filename,'r');
4 |( G! Z' i3 l, \[code,count]=fscanf(fid,'%f',100000);
3 Z* X. O. [) `% A7 S/ yplot(code);
/ I  U, s. H" J" B" @- b# l, `
7 L/ w, F# T' G( W  t0 @% Create an eye diagram and display properties
, w% K1 L6 V4 j4 Y5 teyeObj = commscope.eyediagram(...$ d+ v, A5 E6 `( Y% p& J, h
    'SamplingFrequency', 200000000000, ...
, [3 X0 _8 J. L3 ^2 n    'SamplesPerSymbol', 500, ...# g; {+ H" P' [( u! q
    'SymbolsPerTrace',2,...0 X6 S* q& |% r. v; X3 S2 B
    'MinimumAmplitude', 0.4, .../ t6 y. v7 F4 c6 R7 T
    'MaximumAmplitude', 1.4, ...& u+ B/ ]5 K/ Q* v) I2 U
    'PlotTimeOffse',0,...
' ]8 t9 n, C: b: H: \% a    'PlotType','2D Colo',...
' s& Y# p" E' N, x: h+ z- x    'ColorScale', 'log') %#ok
! `1 V) x3 o) ?- G! Z5 e1 T, B1 I# e: o7 Q0 g! `% @

, T; F' l/ v; D8 y1 z* n' u* B* wupdate(eyeObj, code);
( n. e( K* ?9 U/ g6 Ztitle('Noisy NRZ signal');xlabel('Time (sec)');ylabel('Amplitude');grid on;" B& q% L- Y: Q: c: @* M9 a8 N9 y
analyze(eyeObj);* D+ d' i- B# H- B
eyeObj.Measurements
! w& \) R) C9 Y6 t1 J( t% s" T2 Q) t+ ]* c
) F+ e4 [* X3 P6 G5 F

3 E9 X& Z9 Y& m& B* j clk.rar (239.37 KB, 下载次数: 12)
! f+ Z# N; G6 a+ B0 H 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 | 只看该作者
楼主,有问题:
* t/ H* [) \1 g0 D; ^8 w; |7 N1,400MHz 的时钟是差分信号吗?
4 L( z1 T" C! h+ X1 P4 ]/ O/ ?) n2,你的数据中UI才100个, 确实短了。
/ x# X( v: c/ j, c( o! U) q+ Q3,主要问题出在 commscope.eyediagram,而这个函数你未提供。分析该函数,就应该能找到问题的根源。
我做SI有两年了, 刚刚入门呀, 希望和大家多多谈论。

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
3#
 楼主| 发表于 2012-7-5 18:07 | 只看该作者
yejialu 发表于 2012-7-5 15:18 0 b" w3 H# S+ m
楼主,有问题:9 s9 S! Y. Y8 I! c6 G9 E
1,400MHz 的时钟是差分信号吗?
0 _% k) V! ^3 M9 t$ G2,你的数据中UI才100个, 确实短了。

* w( n% Q3 N* d! J) F+ v/ ?commscope.eyediagram
$ [3 L0 h+ ~( D/ g$ F0 S3 g, o' z是在2012版本才有的 ,旧版本估计没有这个函数
6 z+ E9 t7 b! X/ |
" F/ |) N4 b: L

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
4#
 楼主| 发表于 2012-7-5 18:55 | 只看该作者
不太情况是哪里的设置问题,首先我用MATLAB自带的函数产生了一个码元数据,然后丢给眼图分析函数
* \3 h* c0 E, h$ |* U! P+ g7 \
, G, B4 @! K( |. r代码如下:+ P  O9 N! r0 U' ^: i! b% m
///////////////////////////////////////////////////////////////////////////////////////////////) a1 m$ R5 V8 ?
clear
- `) Q! [8 K: [- Y% X; r" V0 |+ xclose all8 \8 |% S3 i, N" d
   
3 L$ y/ Y9 g6 V1 }; E3 l% Initialize system parameters
/ X# [; l1 B; B. J8 B; g/ U4 q* h( kFs = 10000000000; Rs = 200000000; nSamps = Fs/Rs; rollOff = 0.8; M=4;& q$ Z& s( `7 Z' P
hMod = comm.QPSKModulator; % comm.QPSKModulator System object
& |- ?1 ^, y% K+ V& _2 H7 H' ^" }" @, S( K
% Square root raised cosine filters) H0 q( E2 u$ l  K/ T
filtSpec = fdesign.pulseshaping(nSamps,'Square root raised cosine',...
2 y' a  v2 f5 L( V    'Nsym,Beta',6,rollOff);
; N0 m+ h% a9 ~3 ]4 JhTxFlt = design(filtSpec); hTxFlt.PersistentMemory = true;6 H6 c# j, F8 b
hRxFlt = copy(hTxFlt); hTxFlt.Numerator = hTxFlt.Numerator*nSamps;" I3 T, a' v3 P; t1 J8 j
% z% E' ?- ], }
% Generate modulated and pulse shaped signal' _6 A7 N) \1 j- i
frameLen = 1258;) i5 i+ l1 n  B4 c5 c& _
msgData = randi([0 M-1],frameLen,1);, d' T1 Z2 S6 H( Q
msgSymbols = step(hMod, msgData);) e6 y( _8 j5 e* J0 W  C  L
msgTx = hTxFlt.filter(upsample(msgSymbols, nSamps));+ X. K! B6 B, v" c- S8 A4 A
0 y, m  j, S" D4 G3 e/ G# I
t = 0:1/Fs:100/Rs-1/Fs; idx = round(t*Fs+1);1 t: U$ t7 O. o2 o/ F1 m, u* Q3 i  O2 m
hFig = figure; plot(t, real(msgTx(idx)));5 e( ^* {6 y4 H4 o$ H" y
title('Modulated, filtered in-phase signal');9 t% ?1 u% d) w: a5 n, X: \1 {
xlabel('Time (sec)'); ylabel('Amplitude'); grid on;5 r  @  q" R. H% S# |3 m
( Y2 n+ ^! p6 T: w' X8 J' j8 s
save('pqfile1.txt', 'msgTx','-ASCII')1 t# `1 A! G6 |* {5 R

1 e' ?! U9 |$ h/ ^, H$ X0 P3 A% Manage the figures0 h% F, S- F9 p
managescattereyefig(hFig);5 l! e5 K( o5 B8 p5 a

) B' Z6 c8 ]3 x  a  ^' j5 Q5 h  [* D: o( _
% Create an eye diagram object
' x- s2 s5 S) SeyeObj = commscope.eyediagram(...6 g0 Y+ ^2 Q+ l' L
    'SamplingFrequency', Fs, ...5 ^) n; E; `; r% ?
    'SamplesPerSymbol', nSamps, ...* A5 I4 Y3 b2 ]) }0 c
    'MinimumAmplitude', -1.4, ...
2 p9 c) n# z8 A# x8 E0 {; E    'MaximumAmplitude', 1.4, ...: n, G7 n5 n6 m2 q8 k
    'SamplingFrequency', Fs, ...1 t: y5 s! i) a' [! n% C6 I/ O
    'SamplesPerSymbol', nSamps, ...
$ V$ G8 @+ M8 u' g0 ]  Y/ T% U/ R- A    'OperationMode', 'Complex Signal')5 h* G, W+ D' v" N, X  Q

8 Y; O( T1 Q- ?+ U6 ?# ?% ^; C% Update the eye diagram object with the transmitted signal
! H1 X/ O1 G/ i) @$ M7 C" B  FeyeObj.update(msgTx);
, J4 k2 t) E" e5 H* q8 O5 l2 P# [0 H5 s, \0 {( V
% Manage the figures) d4 B3 W& R. C3 A; J! ^% F( h3 G
5 P' e5 f9 r9 ^7 ~3 S
analyze(eyeObj);
! W- |/ [2 ?3 y+ Q8 A6 b0 f/ reyeObj.Measurements
; T6 W/ c" ]" _8 l; A///////////////////////////////////////////////////////////////////////////////////////////////
( m4 Y+ [! Z- K3 g+ F0 ^
) x) _  Q" O1 c5 Z8 r然后读入pqfile1.txt文件,代码如下:
. l$ m* L" D0 P9 a+ y//////////////////////////////////////////////////////////////////////////////////////////////0 H+ {5 z5 }8 k8 m# e1 |
clear
- }' G: C' s1 p  i0 D9 S! b0 wclose all
0 r) f$ w2 S- a4 I
3 m( Q' u, Q. E* |1 XFs = 10000000000; Rs = 200000000; nSamps = Fs/Rs;
, }4 w8 s, [% t8 @" c
; j8 t5 y4 J' @. F  s: Xfilename ='pqfile1.txt';, j! x0 v& z! }: `8 e0 U
fid=fopen(filename,'r');
/ `. L  p5 @# O. F( b. S1 y[code,count]=fscanf(fid,'%f',62900);
$ A2 R6 Q/ h; r# s4 _) Y$ D+ O3 N& p6 L& l! A4 a+ w
% Create an eye diagram and display properties
0 C* ]8 v# I9 |6 J. H0 EeyeObj = commscope.eyediagram(...
7 K) Z6 J$ B, U% f; d; k+ f    'SamplingFrequency', Fs, ...# Z# u- G% A# e4 n; M- B% ~
    'SamplesPerSymbol', nSamps, ...
# M# o$ O4 {. i: J4 S    'SymbolsPerTrace',2,...8 n$ D: F9 o5 C- u7 j, @
    'MinimumAmplitude', -1.4, ...
4 t2 g, C+ R6 v8 X. m    'MaximumAmplitude', 1.4, ...
+ p  {$ Q3 h, Z7 M4 l  @    'PlotTimeOffse',0,...8 V: N$ [/ |5 T
    'PlotType','2D Colo',...
- r" F3 N8 ~, q; [& f( i    'ColorScale', 'log') %#ok
/ b4 A8 Q# b/ ^5 M+ W  }1 V- W$ v6 L- a7 E* S
  W, o3 ]8 R6 \! L
update(eyeObj, code);* h$ [. z) p" t/ L. S% }
title('Noisy NRZ signal');xlabel('Time (sec)');ylabel('Amplitude');grid on;1 N7 p! |  E0 C
analyze(eyeObj);
( ~7 G! A+ i) [% R# `. f5 heyeObj.Measurements" b& v2 ~2 i8 K; e! Z  d
//////////////////////////////////////////////////////////////////////////////////////////////
2 B, ^: k/ I/ E' y5 M/ J6 q测量结果是:
& A% s) b/ \. C. ?% ~2 s- r  B                     Type: 'Eye Diagram Measurements'
1 s+ u: M3 \- J3 d" v7 Z8 s  z4 o              DisplayMode: 'Optimized for Real Signal'3 h! H2 [6 g" N$ j9 l& l
          EyeCrossingTime: [2.4972e-09 7.5006e-09]
6 R; A( h. ]9 p     EyeCrossingAmplitude: [-0.0109 -0.0117]
8 I1 J9 d9 _8 c8 m6 g( D6 H) g- Z" c                 EyeDelay: 4.9989e-09
0 k( j1 k' g2 a6 p8 k6 m                 EyeLevel: [-0.8496 0.8484]
1 o5 q, {' W+ Y6 P6 U( P/ q0 m6 i8 k             EyeAmplitude: 1.6980( k! p* T( V# M5 F
                EyeHeight: 1.0287  l1 ^9 `2 i9 P2 Y
    EyeCrossingPercentage: 49.3703. y. r! I5 C6 \: k+ A: v" W
       EyeOpeningVertical: 0.6723+ L! M! C$ {5 W  s2 e+ H
                   EyeSNR: 7.6107
& O$ c0 j' s7 z1 v0 s            QualityFactor: 13.1948
9 k1 ^) `+ L0 p2 z$ g                 EyeWidth: 4.3069e-098 i' r6 U" ]& e
     EyeOpeningHorizontal: 4.8000e-095 C4 O4 J6 H2 Z, w/ y' v! z
             JitterRandom: 0
; ~+ s3 A; p, K9 Q7 o      JitterDeterministic: 2.0000e-10
, s8 p7 p& }9 z& W' v$ J              JitterTotal: 2.0000e-101 Q! P$ T4 [  m
                JitterRMS: 1.0180e-10
* U: a' [$ n  s" @$ ~0 k         JitterPeakToPeak: 2.4000e-094 ?% k* I9 k1 V9 Z0 i$ a, }
              EyeRiseTime: 2.1848e-09
# n; v% w1 O1 m) J3 P( e0 D              EyeFallTime: 2.1804e-09

604

主题

2859

帖子

1万

积分

EDA365版主(50)

Rank: 5

积分
13638
5#
 楼主| 发表于 2012-7-5 18:57 | 只看该作者
yejialu 发表于 2012-7-5 15:18
6 k  s# {$ M# q! }1 X+ A$ K楼主,有问题:- D; e* m* W/ W" A( }( V1 c
1,400MHz 的时钟是差分信号吗?& q8 i; b; |$ M5 t4 c
2,你的数据中UI才100个, 确实短了。
# K' i( {/ M( \9 K+ B' r4 g/ a
例如在ansoft designer 里面4 W$ A2 W4 s8 q
* f" I. _4 X" R/ u
数据码元用的是 V_PRBS_JITTER4 K7 X0 K+ R0 L& h! v1 A3 e
TR=TF=5E-11
; D: T6 ^! V5 u! _3 J) ^9 W; W) N# pBITWIDTH=2.5E-9
+ C! p/ V5 _) q7 ?# A
- q8 T9 X' Z% P; l6 R仿真时间长度5us* I! G) f0 d, y: @
# b$ Z" ?1 c: j+ e4 k
导出数据的时候选择的step=100ps  g) Z6 C8 b) h- u
. I/ F2 g& b) d' P4 _! y- U: h( L* N
是否这里的采样频率就可以理解为 Fs=100ps?
) N, D# k, P5 g6 b( S因为DQS的时钟周期长度是5ns,每个码元的时间是2.5ns,所以每个码元的采样点数为2500/100=25个
% @" z+ @  j, z  E* m3 L$ ?) c4 E% O: C* O  U& j
目前这样的数据导出再导入到matlab里面无法计算

2

主题

157

帖子

999

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
999
6#
发表于 2012-7-6 09:23 | 只看该作者
导出数据的时候选择的step=100ps
, C. v' ^7 N4 E8 q+ j; ?是否这里的采样频率就可以理解为 Fs=100ps?
2 B8 v4 G. \6 A  k" _step是采样的步长吧。采样频率应该是步长的倒数。+ f1 n0 V6 X% h6 f+ j( }) `' a$ M
我做SI有两年了, 刚刚入门呀, 希望和大家多多谈论。

2

主题

157

帖子

999

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
999
7#
发表于 2012-7-6 09:33 | 只看该作者
估计牵涉的函数也有好几个。 这样吧,你看提示错误在哪个函数, 去查代码。* W8 B  s9 S0 P; x' c
Error using calcEyeCrossingTime (line 67)2 A/ l2 c8 u# ?* @' b$ g& j0 g
Error in commscope.eyemeasurements/analyze (line 85)
7 F. O/ A2 t- o# sError in commscope.eyediagram/analyze (line 85)% T! I/ r! v+ r4 _8 q
Error in Untitled (line 24)。
/ M! c. Z4 ?/ `3 {6 [* uThe ANALYZE method cannot determine crossing times. Check measurement setup values in the MeasurementsSetup property. Also, the collected data may not be valid. See
, e) S( p9 ~( ?9 X1 ndocumentation for description of valid eye diagrams.
- F* ?- Y- P( N+ ^- U# C从这句话分析,我认为触发信号由于一个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-22 13:47 , Processed in 0.065023 second(s), 35 queries , Gzip On.

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

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

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