📄 eyespic.m
字号:
%升余弦滚降系统的传输特性和功率谱及眼图
clear all
close all
clc
echo off
N=2^14; %采样点数
L=32; %每码元采样点数
M=N/L; %码元数
Rb=2; %码速率
Ts=1/Rb; %码元间隔
dt=Ts/L; %时域采样间隔
df=1/(N*dt); %频域采样间隔
T=N*dt; %截短时宽
Bs=N*df/2; %频带宽度
Na=4; %画眼图一次四个码元
t=[-T/2+dt/2:dt:T/2]; %时域坐标
f=[-Bs+df/2:df:Bs]; %频域坐标
alpha=1; %滚降系数
g1=sin(pi*t/Ts)./(pi*t/Ts);
g2=cos(alpha*pi*t/Ts)./(1-(2*alpha*t/Ts).^2);
g=g1.*g2;%升余弦滤波器的冲激响应
%
G=2*t2f(g,dt); %滤波器频谱
Ep=zeros(size(f))+eps;
%预设眼图的位置
figure(2)
set(2,'position',[350,50,300,200]);
hold on
grid
xlabel('t in us');
ylabel('s(t) in v');
title('眼图')
for ii=1:10
%求滤波器后的码元和功率谱
a=sign(randn(1,M))+1;
imp=zeros(1,N);
imp(L/2:L:N)=a/dt;
S=t2f(imp,dt).*G;
s=f2t(S,dt);
s=real(s)+0*randn(1,N);%可加入噪声
P=S.*conj(S)/T;
Ep=(Ep*(ii-1)+P+eps)/ii;
%画眼图
figure(2)
tt=[0:dt:Na*L*dt];
for jj=1:Na*L:N-Na*L
plot(tt,s(jj:jj+Na*L))
end
end
%画时域图
%画功率谱
figure(1)
set(1,'position',[10,50,300,200]);
plot(f,30+10*log10(Ep))
grid
axis([-3,3,-50,50]);
xlabel('f in MHz');
ylabel('Ps(f) in dBm/MHz');
title('功率谱密度')
%画滤波器频域
figure(3)
set(3,'position',[10,350,300,200]);
%plot(f,abs(G))
plot(t,s)
grid
axis([0,10,-0.5,7])
%axis([-2,2,min(abs(G)),max(abs(G))]);
%xlabel('f in MHz');
%ylabel('H(f)');
%title('升余弦滤波器的频率响应')
xlabel('t in us');
ylabel('h(t)');
title('信号的时域响应')
%画滤波器时域
figure(4)
set(4,'position',[350,350,300,200]);
plot(t,g)
grid
axis([-2,2,min(g),max(g)]);
xlabel('t in us');
ylabel('h(t)');
title('升余弦滤波器的冲击响应')
figure(5)
set(5,'position',[700,50,300,200]);
plot(f,S);
grid
axis([-3,3,-0.5,60]);
xlabel('f in MHz');
ylabel('H(f)');
title('信号的频谱')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -