通信信号吧 关注:41贴子:47
  • 0回复贴,共1

为什么cpfsk仿真信号中会出现平台?

只看楼主收藏回复


这是matlab代码
clc,clear,close all
N=512*1;
Ts=1/300;
n=0:N-1;
t=n*Ts;
T1=(N-1)*Ts;
fs=1/Ts;
f0=1/fs;
f=n*f0;
mt=[1 -1 1 1 -1 -1 1 1];
Lmt=length(mt);
N0=N/Lmt;
mt0=[];
for i=1:Lmt
mt0=[mt0 mt(i)*ones(1,N0)];
end
Tb=N0*Ts;
fc=15;
h=3.2;
fd=h/(2*Tb);
b0=0.2;
fsk=cos(2*pi*fc.*t+mt0.*h*pi.*t/Tb+b0);
FSK=fftshift(abs((2/N)*fft(fsk,N)));
cpfsk=[];
for i=1:Lmt
t0=t(1:N0);
if mt(i)==1
cpfsk=[cpfsk cos(2*pi*(fc-fd)*t0+b0)];
b0=2*pi*(fc-fd)*t0(N0)+b0;
else
cpfsk=[cpfsk cos(2*pi*(fc+fd)*t0+b0)];
b0=2*pi*(fc+fd)*t0(N0)+b0;
end
end
CPFSK=fftshift(abs((2/N)*fft(cpfsk,N)));
figure,plot(t,cpfsk,t,mt0,'r.');
legend('CPFSK波形','消息信号',1)
axis([0 max(t) -2 2])
title('时域CPFSK波形')
figure,
subplot(2,2,1),plot(t,fsk);
axis([0 max(t) -2 2])
legend('2FSK信号',1)
title('时域2FSK波形')
subplot(2,2,3),plot(f-fs/2,FSK)
legend('2FSK幅谱','信号2幅谱',1)
axis([-fs/2 fs/2 0 0.6])
title('频域2FSK幅度谱')
subplot(2,2,2),plot(t,cpfsk);
legend('CPFSK波形','消息信号',1)
axis([0 max(t) -2 2])
title('时域CPFSK波形')
subplot(2,2,4),plot(f-fs/2,CPFSK)
legend('CPFSK幅谱',1)
axis([-fs/2 fs/2 0 0.6])
title('频域CPFSK幅度谱')


1楼2024-01-01 08:36回复