眼图Matlab初学者代码
clear;
RBaud = 1e7;
data_point = 10e2;
signal2 = randi([0 3],data_point,1); %随机产生PAM4信号
noise = 32; %加噪声,信噪比32dB
noisig_1 = awgn(signal2,noise,‘measured’);
timeaix = 1:150;
figure();
stem(timeaix(1:50),signal2(1:50)); %表中信号范围
title(‘PAM4信号码’);
sample= reshape(cat(2,noisig_1,noisig_1,noisig_1,noisig_1,noisig_1,noisig_1,noisig_1,noisig_1,noisig_1,noisig_1,noisig_1,noisig_1,noisig_1,noisig_1,noisig_1,noisig_1).’,[],1);%16倍采样
P= 10*log10(abs(fftshift(fft(sample(1:2e3)))));%功率谱
figure;
f1=((0:1999)-1000)8RBaud/2000/1e5;
plot(f1, P);
title(‘16倍采样功率谱’);
xlabel(‘频率/MHz’)
len=length(sample);
FFT=fft(sample);
% 滤波1,只保留主瓣
ff=[ones(len/16,1);zeros(len7/8,1);ones(len/16,1)];
y=FFT.ff;
figure;
title(‘滤波1,只保留主瓣’);
plot(20log10(abs(fftshift(y))))
Y=fft(y);
eye1=eyediagram(Y,216,16,16/2);
% 滤波2,频域正负各保留到一个旁瓣处
ff=[ones(len2/16,1);zeros(len6/8,1);ones(len2/16,1)];
y=FFT.ff;
figure;
title(‘滤波2’);
plot(20log10(abs(fftshift(y))))
Y=fft(y);
eye2=eyediagram(Y,216,16,16/2);