Download - Labreport Eye Diagram HB
Eye pattern
In telecommunication, an eye pattern, also known as an eye diagram, is an oscilloscope display in which a digital data signal from a receiver is repetitively sampled and applied to the vertical input, while the data rate is used to trigger the horizontal sweep. It is so called because, for several types of coding, the pattern looks like a series of eyes between a pair of rails. It is an experimental tool for the evaluation of the combined effects of channel noise and intersymbol interference on the performance of a baseband pulse-transmission system. It is the synchronised superposition of all possible realisations of the signal of interest viewed within a particular signalling interval.
Several system performance measures can be derived by analyzing the display. If the signals are too long, too short, poorly synchronized with the system clock, too high, too low, too noisy, or too slow to change, or have too much undershoot or overshoot, this can be observed from the eye diagram. An open eye pattern corresponds to minimal signal distortion. Distortion of the signal waveform due to intersymbol interference and noise appears as closure of the eye pattern.
There are many measurements that can be obtained from an Eye Diagram.
Amplitude Measurements
Eye Amplitude Eye Crossing Amplitude Eye Crossing Percentage Eye Height Eye Level Eye SNR Quality Factor Vertical Eye Opening
Time Measurements
Deterministic Jitter Eye Crossing Time Eye Delay Eye Fall Time Eye Rise Time Eye Width Horizontal Eye Opening Peak-to-Peak Jitter Random Jitter RMS Jitter
CRC Jitter
Total Jitter
Measuring Received Performance
A : time interval over which the waveform can be sampled
B : margin over noise
C : distortion of zero crossings
D : slope : sensitivity to timing error
E : Maximum distortion
t* : optimum sampling instant measured with respect to the time origin.
10 points in the final
Matlab code:
clear clcN = 100; % number of symbolsam = 2*(rand(1,N)>0.5)-1 + 1i*(2*(rand(1,N)>0.5)-1); % generating random binary sequencefs = 10; % sampling frequency in Hz
% defining the sinc filtersincNum = sin(pi*[-fs:1/fs:fs]); % numerator of the sinc functionsincDen = (pi*[-fs:1/fs:fs]); % denominator of the sinc functionsincDenZero = find(abs(sincDen) < 10^-10);sincOp = sincNum./sincDen;sincOp(sincDenZero) = 1; % sin(pix/(pix) =1 for x =0 % raised cosine filteralpha = 0.5;cosNum = cos(alpha*pi*[-fs:1/fs:fs]);cosDen = (1-(2*alpha*[-fs:1/fs:fs]).^2)cosDenZero = find(abs(cosDen)<10^-10)cosOp = cosNum./cosDen;cosOp(cosDenZero) = pi/4; gt_alpha5 = sincOp.*cosOp; alpha = 1;cosNum = cos(alpha*pi*[-fs:1/fs:fs]);cosDen = (1-(2*alpha*[-fs:1/fs:fs]).^2);cosDenZero = find(abs(cosDen)<10^-10);cosOp = cosNum./cosDen;cosOp(cosDenZero) = pi/4;gt_alpha1 = sincOp.*cosOp; % upsampling the transmit sequence amUpSampled = [am;zeros(fs-1,length(am))];amU = amUpSampled(:).'; % filtered sequencest_alpha5 = conv(amU,gt_alpha5);st_alpha1 = conv(amU,gt_alpha1); % taking only the first 10000 samples st_alpha5 = st_alpha5([1:1000]);st_alpha1 = st_alpha1([1:1000]); st_alpha5_reshape = reshape(st_alpha5,fs*2,N*fs/20).';st_alpha1_reshape = reshape(st_alpha1,fs*2,N*fs/20).'; close allfigure;stairs(am)title(' signal')xlabel('time')ylabel('amplitude')figure;plot([0:1/fs:1.99],real(st_alpha5_reshape).','b'); title('eye diagram with alpha=0.5');xlabel('time')ylabel('amplitude') axis([0 2 -1.5 1.5])grid on figure;plot([0:1/fs:1.99],real(st_alpha1_reshape).','b'); title('eye diagram with alpha=1')
xlabel('time')ylabel('amplitude') axis([0 2 -1.5 1.5 ])grid on
output:
0 10 20 30 40 50 60 70 80 90 100-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1 signal
time
ampl
itude
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-1.5
-1
-0.5
0
0.5
1
1.5eye diagram with alpha=0.5
time
ampl
itude