用matlab造一个带有500ms延迟的波形信号,信号长度2s,其中信号脉宽10ms,带宽8-14kHz的上调频信号,采样率200kHz,信噪比10dbclc;
close all;
clear all;
%%
fs=2e6;
T=1e-2;
t=0:0.001:2;
SNR=10;
f0=8e3;
k=600;
y=exp(1i*(2*pi*f0*2 pi*k*t*2));
pause(0.5);
subplot(211)
plot(t,real(y));
title('lfm信号时域波形');
xlabel('时间');
ylabel('幅度');
subplot(212);
N=200;
Y=fft(y);
f=fs*(0:N/2-1)/N;
plot(f,abs(Y));
title('lfm信号频谱');
xlabel('频率/Hz');
ylabel('幅度');
题主的问题出在f和Y的数据长度不一致。
可以通过修改t和N值,就可以正常出图。即下列两处
T=1e-2;
N=400; 增加
t=linspace(0,2,N/2);%t=0:0.001:2;
。。。
subplot(212);
%N=200;
修改后运行,可以得到如下结果