|
不太情况是哪里的设置问题,首先我用MATLAB自带的函数产生了一个码元数据,然后丢给眼图分析函数8 u/ U5 u3 X! e7 B2 S, i; G
" s- Q6 A- a! i$ [2 c0 A
代码如下:
7 q. x6 N6 m7 a# ~///////////////////////////////////////////////////////////////////////////////////////////////1 J$ Z1 M& p7 ]6 u! c8 j/ n
clear$ l; ?0 e* k$ g" }
close all1 O5 l1 |! c8 \1 e" l
6 [& X% i/ r, Q% Initialize system parameters/ G% U1 w6 J5 Y8 z; D1 X- S- U# M
Fs = 10000000000; Rs = 200000000; nSamps = Fs/Rs; rollOff = 0.8; M=4;5 C4 {- v* |' x2 T( w1 J% _& n0 h
hMod = comm.QPSKModulator; % comm.QPSKModulator System object
9 I D* ?5 d# c2 l) g/ p
& _5 \# t# A2 G$ u3 x( E( Z% Square root raised cosine filters6 ]6 }9 ]1 ?- `8 c3 a1 X8 ^
filtSpec = fdesign.pulseshaping(nSamps,'Square root raised cosine',...) F: T: a i/ l- c; y: G2 c
'Nsym,Beta',6,rollOff);
0 |" X# h7 G; v9 u1 }hTxFlt = design(filtSpec); hTxFlt.PersistentMemory = true;
V4 g/ I# l7 u, Q ^1 {* B1 Z- ohRxFlt = copy(hTxFlt); hTxFlt.Numerator = hTxFlt.Numerator*nSamps;
; \4 k( t5 V) W
1 @1 K7 U8 n5 U4 Q% Generate modulated and pulse shaped signal5 Y* l$ Z; y, O6 Y T) B+ v
frameLen = 1258;+ ^4 F# m1 U1 i, |/ Z
msgData = randi([0 M-1],frameLen,1);
) }. U- j1 ^2 MmsgSymbols = step(hMod, msgData);, h9 _( _5 L' T. x5 r
msgTx = hTxFlt.filter(upsample(msgSymbols, nSamps));
) |" c( \" W9 I( e3 l( o% P ?2 i" v5 H
t = 0:1/Fs:100/Rs-1/Fs; idx = round(t*Fs+1);+ t a6 X! s& T
hFig = figure; plot(t, real(msgTx(idx)));" }9 }" Z/ O ^8 u3 F9 v9 _5 L
title('Modulated, filtered in-phase signal');5 T/ ^! V8 w' p1 ~+ B/ M
xlabel('Time (sec)'); ylabel('Amplitude'); grid on;
, d2 E# g% Z" I, `6 V0 ^ f8 P4 V( @: l3 S$ j( \7 m' O
save('pqfile1.txt', 'msgTx','-ASCII')1 c& h# D: D; m/ c
* q% ?4 ~ y4 X2 L. i6 v% Manage the figures
" h7 L, T) n0 z% a) U6 `managescattereyefig(hFig);
0 Q- D9 K/ i O6 g' B: ^2 c; D- e: {9 q8 B( Q" {. D2 D o* z* I
2 N& |+ T7 n0 u) ^) {* U% w% Create an eye diagram object
& w( H. f+ s5 w; O3 m7 zeyeObj = commscope.eyediagram(.... B) h, i( s& X" v5 o% @1 @' ]
'SamplingFrequency', Fs, ...
+ w6 J9 z9 r S6 a4 C 'SamplesPerSymbol', nSamps, ...
( T; k. O+ n$ N5 q" l1 J) T 'MinimumAmplitude', -1.4, ...
9 b! D7 j5 V+ y' K) | 'MaximumAmplitude', 1.4, ...
6 W& `7 a. ^( u# k2 w3 ` 'SamplingFrequency', Fs, ...3 {/ S& D* I1 p1 f
'SamplesPerSymbol', nSamps, ...
8 u& L. k4 k+ c 'OperationMode', 'Complex Signal')5 R A8 C+ |5 L, j; ^8 u7 @
! s- V: L4 K/ J3 \# Q
% Update the eye diagram object with the transmitted signal( v4 d& ^6 J; Y/ {! j: b
eyeObj.update(msgTx);
/ u+ m1 x/ Q- E t0 ^- A4 G
6 y/ b V# `6 _0 e' \% Manage the figures$ ]% U/ z: Q2 G1 h. F5 f2 V0 \- n
$ q6 x5 G# u& n' F2 b# E
analyze(eyeObj);
' c% t# ]6 x) V% k9 ReyeObj.Measurements
. d: G: k5 @ ~3 s+ F* o///////////////////////////////////////////////////////////////////////////////////////////////7 F& F5 }. h- L7 j2 N7 O% d2 Z w
$ J t/ R2 J( i, k) w3 n然后读入pqfile1.txt文件,代码如下:, {+ P9 l: ^' W" {
//////////////////////////////////////////////////////////////////////////////////////////////- @; k4 p$ A3 v# _: f. Q; [
clear
& _" ]$ f, [, }' C6 u8 xclose all
% e0 `- z4 u/ _" {# z" c6 t, @/ K: j( P2 x
Fs = 10000000000; Rs = 200000000; nSamps = Fs/Rs;
, U# q2 |$ k6 h* ^5 @* q) Y6 @" l' p: [3 r4 \
filename ='pqfile1.txt';
8 e0 e/ J6 {+ P: w/ ^fid=fopen(filename,'r');0 Y; {7 f7 b c0 P# i# V- z
[code,count]=fscanf(fid,'%f',62900);8 U3 Z# @/ ]7 J- }
- X$ `/ P* s" c: i, {% L; Y% Create an eye diagram and display properties0 }9 d9 Q- y' Y9 R
eyeObj = commscope.eyediagram(...
7 }2 |) ^5 H& v8 i# F9 p0 ]8 w 'SamplingFrequency', Fs, .... n4 L# m2 \/ n
'SamplesPerSymbol', nSamps, ... o6 A$ H. W, @+ g; v b
'SymbolsPerTrace',2,...
* z& v3 F1 Z+ N 'MinimumAmplitude', -1.4, ...4 e5 A) O- O8 U. D3 B+ V( v) H8 S
'MaximumAmplitude', 1.4, ...1 R% g% F; [# v5 u0 i3 ?1 }. U* q
'PlotTimeOffse',0,...
- g. O/ U. E' I( R+ L6 u1 I, g 'PlotType','2D Colo',...2 Z5 D2 V& m+ i; |7 I* ]
'ColorScale', 'log') %#ok8 Q7 O* F- g# V% _0 L
" Y/ k2 M1 i" h$ ?0 j& }1 G
9 Q5 Z G1 H9 ?7 U& f( Eupdate(eyeObj, code);% i7 a5 N- [9 F+ P8 u
title('Noisy NRZ signal');xlabel('Time (sec)');ylabel('Amplitude');grid on;
, x* z. t* b$ B3 J$ O+ manalyze(eyeObj);
; a" u4 N3 ?! [4 }eyeObj.Measurements
" a, X7 r- O, V% C//////////////////////////////////////////////////////////////////////////////////////////////9 O, S) l4 @3 V& u/ b
测量结果是:2 k6 ~, f7 \4 Y" h/ ] g. I
Type: 'Eye Diagram Measurements'5 r- t0 o, H0 J. ]4 z
DisplayMode: 'Optimized for Real Signal'( W- N0 ~$ f+ ^; S C
EyeCrossingTime: [2.4972e-09 7.5006e-09]
& L* x9 c% P5 Z3 s7 p EyeCrossingAmplitude: [-0.0109 -0.0117]5 X: |/ v1 ?& @0 i5 N5 c0 N% S
EyeDelay: 4.9989e-094 p+ _* C! B$ H. U
EyeLevel: [-0.8496 0.8484]
, h5 X! ^- X3 N5 \, j* z EyeAmplitude: 1.6980
, Q. a& p- u8 H9 i EyeHeight: 1.02878 j. W. p8 g5 V1 c1 u, T* o4 J
EyeCrossingPercentage: 49.3703
* x$ p' {, o# G0 s! g8 } EyeOpeningVertical: 0.6723
; k s& ]* a: e8 y EyeSNR: 7.6107" p+ `2 S0 D) n1 Q* \" t/ ]5 P
QualityFactor: 13.1948
" Y4 F4 r& t7 U, ?9 B; k$ [7 f EyeWidth: 4.3069e-09
" L1 X6 `) T3 g6 D+ A EyeOpeningHorizontal: 4.8000e-09# P! h" ~6 d! j0 m
JitterRandom: 0* L6 W6 R I3 t3 }5 D3 L
JitterDeterministic: 2.0000e-102 J$ \$ q% r$ k7 E
JitterTotal: 2.0000e-10& ^, U! m0 Q: Z) P
JitterRMS: 1.0180e-10
' X3 Z$ D4 I. u' _, e% I JitterPeakToPeak: 2.4000e-09
7 v5 ]# p' U& k6 V7 W/ P( M/ D. L EyeRiseTime: 2.1848e-09
8 P j7 c4 c4 n$ ^ EyeFallTime: 2.1804e-09 |
|