1.主程序:
%一、迫零均衡前的眼图
%1.随机产生双极性序列
n=1500; %取样点数
M=150; %码元数目
A=n/M; %一个码元的取样点数,即过采样率为10
P=0.5; %1码概率
x=2*round(rand(1,M)+P-0.5)-1; %产生一列01码;round进行四舍五入;rand产生由在(0, 1)之间均匀分布的随机数组成的数组
%2.发送信号序列与一个多抽头的滤波器卷积(相当于经过一个多径信道),产生码间串扰
h=[0.02 0.05 0.1 -0.2 1 -0.2 0.1 0.06 0.01];
x1=conv(x,h);
%3.成型滤波
%一种简单的方法生成过采样信号
temp=[1;zeros(A-1,1)]; %代表A*1的矩阵:第一个元素为1 其余为0
x2=temp*x1; %矩阵相乘 temp的列数=x1的行数=1
x2=x2(1:end); %过采样信号
%通过升余弦滤波器,成型滤波
N_T=4; %控制滤波器长度,滤波器的阶数为2*N_T+1。
alpha = 1; % 滚降系数,影响带宽
r=rcosdesign(alpha,N_T,A); % 产生升余弦滤波器系数
x3=conv(r,x2); %fix():向零方向取整
x3=x3(fix(A*N_T)+1:end-fix(A*N_T)); %删去由于卷积产生的拖尾的0
%4.将不同码元周期内的图形平移至一个周期内画出眼图。
figure(1);
for ii=0:(M-3)/2
plot(x3([1:2*A+1]+ii*2*A));
hold on;
end
xlim([0 22]);
title('迫零均衡前的眼图');
%5.用matlab画眼图函数直接画眼图