楼主人丢了吗? ![]() |
估计牵涉的函数也有好几个。 这样吧,你看提示错误在哪个函数, 去查代码。+ a: F5 p' {! H: P9 q Error using calcEyeCrossingTime (line 67)! j) t+ R6 a& @) n7 U Error in commscope.eyemeasurements/analyze (line 85)2 X5 D5 k' D5 {0 ^% { Error in commscope.eyediagram/analyze (line 85) Error in Untitled (line 24)。% l0 S2 H+ n$ b; ]3 [- R The ANALYZE method cannot determine crossing times. Check measurement setup values in the MeasurementsSetup property. Also, the collected data may not be valid. See documentation for description of valid eye diagrams. 从这句话分析,我认为触发信号由于一个UI中的采样点过少,或者说采样频率过低。造成差分触发的P和N的交点无法判断, 也就 无法确定触发时间,无法去切割数据信号的UI,所以报错了。以上分析仅供参考。 |
![]() 是否这里的采样频率就可以理解为 Fs=100ps? step是采样的步长吧。采样频率应该是步长的倒数。 |
* f0 ]* P* e4 k) g7 j) C. ~5 x 例如在ansoft designer 里面" b, Z2 k9 v( @3 o / `" g0 J7 O# G& r9 c3 u, L 数据码元用的是 V_PRBS_JITTER* f5 `6 L) s5 k7 C7 ? TR=TF=5E-11 BITWIDTH=2.5E-9 仿真时间长度5us q: J! b1 W0 \6 h) d! w2 W& b 导出数据的时候选择的step=100ps 是否这里的采样频率就可以理解为 Fs=100ps? 因为DQS的时钟周期长度是5ns,每个码元的时间是2.5ns,所以每个码元的采样点数为2500/100=25个 1 ^+ p; A) r4 U2 T' H. n6 H1 V0 @ 目前这样的数据导出再导入到matlab里面无法计算 |
不太情况是哪里的设置问题,首先我用MATLAB自带的函数产生了一个码元数据,然后丢给眼图分析函数8 g- Y! {' q/ t# W( e ' p4 H; _& M2 E! H& f% _ 代码如下:, z) n# S; `" K6 U' x4 w /////////////////////////////////////////////////////////////////////////////////////////////// clear( j: S* y" j3 v& e5 l; j0 ` close all6 M/ Z) M2 D2 P' }( O % Initialize system parameters Fs = 10000000000; Rs = 200000000; nSamps = Fs/Rs; rollOff = 0.8; M=4; hMod = comm.QPSKModulator; % comm.QPSKModulator System object7 q- A- v8 p: ]4 F! G4 B0 b 6 s9 Z7 H- Y8 S( B! ]: o) K % Square root raised cosine filters filtSpec = fdesign.pulseshaping(nSamps,'Square root raised cosine',... 'Nsym,Beta',6,rollOff); hTxFlt = design(filtSpec); hTxFlt.PersistentMemory = true; hRxFlt = copy(hTxFlt); hTxFlt.Numerator = hTxFlt.Numerator*nSamps;: w& U3 {! r9 U) {+ q+ Q ! M- j' C7 K) g. }0 x2 m+ U' H2 n % Generate modulated and pulse shaped signal frameLen = 1258;4 U# p x1 c9 U" i msgData = randi([0 M-1],frameLen,1); msgSymbols = step(hMod, msgData); msgTx = hTxFlt.filter(upsample(msgSymbols, nSamps)); t = 0:1/Fs:100/Rs-1/Fs; idx = round(t*Fs+1);" {2 r2 \2 W# j: p hFig = figure; plot(t, real(msgTx(idx)));1 R3 v- |0 M) ^$ r ? title('Modulated, filtered in-phase signal'); xlabel('Time (sec)'); ylabel('Amplitude'); grid on;6 b1 _ B: \# u I# x$ C% ^+ z save('pqfile1.txt', 'msgTx','-ASCII') % Q/ q4 I; I+ l % Manage the figures managescattereyefig(hFig); ! h* \$ }' [5 M: X+ d" t 8 k& X2 G; a+ E9 _, V2 x$ U % Create an eye diagram object eyeObj = commscope.eyediagram(...: R+ v t2 K7 b% V; Y; b* _% i 'SamplingFrequency', Fs, ...! P# U3 t* D5 V( s J6 X7 ?: P8 w3 @ 'SamplesPerSymbol', nSamps, ... 'MinimumAmplitude', -1.4, ...: v' [2 }' k/ g5 M3 Q7 |( ] 'MaximumAmplitude', 1.4, ... 'SamplingFrequency', Fs, ...; \8 T/ t7 \' v0 U 'SamplesPerSymbol', nSamps, ... 'OperationMode', 'Complex Signal')$ p+ w, Y z7 W* O9 z: ^! C * t, |7 O2 V& l; ? % Update the eye diagram object with the transmitted signal' |+ R; N8 \+ d9 R1 n* Y eyeObj.update(msgTx);8 N/ E* o$ n, H9 { O % Manage the figures7 V- r& R+ c. V2 C l s% p5 k$ O5 { analyze(eyeObj); eyeObj.Measurements! }0 z7 r( T; w) ], H6 N! ? ///////////////////////////////////////////////////////////////////////////////////////////////5 h" ^2 m% g# K1 R" M3 ` 然后读入pqfile1.txt文件,代码如下: ////////////////////////////////////////////////////////////////////////////////////////////// clear6 i b% l6 v. w9 u$ p: _6 r' R7 G close all+ j: A# Q2 O3 R% h Fs = 10000000000; Rs = 200000000; nSamps = Fs/Rs;4 A/ K( }+ K# v5 ?' e2 \* n, w filename ='pqfile1.txt'; fid=fopen(filename,'r');* z% l, P2 S0 }$ _! b. D' m# k" Z [code,count]=fscanf(fid,'%f',62900);3 }5 x+ Q( x, a5 l, c1 { ; ~/ M+ Z, @1 h; M2 D" k" a8 z9 i: l % Create an eye diagram and display properties# c2 q1 {& L( A9 e0 ^: G' Y, Q eyeObj = commscope.eyediagram(... 'SamplingFrequency', Fs, ... 'SamplesPerSymbol', nSamps, ...2 L: ?7 u6 G; |+ p! X3 M 'SymbolsPerTrace',2,...2 s v, d7 T, q 'MinimumAmplitude', -1.4, ... 'MaximumAmplitude', 1.4, ...) z: Z$ h$ X1 ~2 { g 'PlotTimeOffse',0,... 'PlotType','2D Colo',...8 ^& v& l4 y3 |. u 'ColorScale', 'log') %#ok1 M- A" e8 \& S6 [- I* |. N/ W 1 N; c: E( m8 L/ a update(eyeObj, code);, P8 ]9 B- i4 A# u1 u8 l1 |9 i title('Noisy NRZ signal');xlabel('Time (sec)');ylabel('Amplitude');grid on; analyze(eyeObj); eyeObj.Measurements //////////////////////////////////////////////////////////////////////////////////////////////: Y/ N2 @* B) n% h( I6 E; K 测量结果是:$ b0 f1 b- K) ]* @. ] W, I6 | Type: 'Eye Diagram Measurements' DisplayMode: 'Optimized for Real Signal'9 U( o5 K8 j+ s+ B$ B9 S" E% x& u EyeCrossingTime: [2.4972e-09 7.5006e-09]0 h1 y( I) Y% u2 X' H* C$ m EyeCrossingAmplitude: [-0.0109 -0.0117] EyeDelay: 4.9989e-09 EyeLevel: [-0.8496 0.8484]: S2 M, R- d; ?# H+ V0 ] EyeAmplitude: 1.6980 EyeHeight: 1.02877 `+ J5 C9 ]- s/ V" ?( T/ X1 W3 m EyeCrossingPercentage: 49.3703 EyeOpeningVertical: 0.67237 C/ |2 k. B1 H9 l& T/ R: ~ EyeSNR: 7.61071 @ g7 }3 E% h3 a P QualityFactor: 13.1948 EyeWidth: 4.3069e-09 EyeOpeningHorizontal: 4.8000e-09 JitterRandom: 0 JitterDeterministic: 2.0000e-10- x( r$ [+ [3 r7 t3 s3 \ JitterTotal: 2.0000e-10 JitterRMS: 1.0180e-104 U8 ^, X8 D9 g x- R$ | JitterPeakToPeak: 2.4000e-09 EyeRiseTime: 2.1848e-092 w# \# R* n3 ^7 R3 p8 L9 I& f! A EyeFallTime: 2.1804e-09 |
楼主,有问题: 1,400MHz 的时钟是差分信号吗?& N! `# Z, W/ c. s- m& q) }) w 2,你的数据中UI才100个, 确实短了。 3,主要问题出在 commscope.eyediagram,而这个函数你未提供。分析该函数,就应该能找到问题的根源。 ![]() |
关于我们|手机版|EDA365 ( 粤ICP备18020198号 )
GMT+8, 2025-4-15 19:04 , Processed in 0.061655 second(s), 36 queries , Gzip On.
地址:深圳市南山区科技生态园2栋A座805 电话:19926409050