如何用matlab实现fft

如题所述

第1个回答  2020-04-06
matlab中fft有1d和2d的,fft得到的是信号的频谱即t-》f

clear
%编写骆遥
fs=1000
t=0:1/fs:0.6;
f1=100;
f2=300;
x=sin(2*pi*f1*t)+sin(2*pi*f2*t);
subplot(711)
plot(x);
title('f1(100hz)\f2(300hz)的正弦信号,初相0')
xlabel('序列(n)')
grid
on
number=512
y=fft(x,number);
n=0:length(y)-1;
f=fs*n/length(y);
subplot(713)
plot(f,abs(y));
title('f1\f2的正弦信号的fft(512点)')
xlabel('频率hz')
grid
on
x=x+randn(1,length(x));
subplot(715)
plot(x);
title('原f1\f2的正弦信号(含随机噪声)')
xlabel('序列(n)')
grid
on
y=fft(x,number);
n=0:length(y)-1;
f=fs*n/length(y);
subplot(717)
plot(f,abs(y));
title('原f1\f2的正弦信号(含随机噪声)的fft(512点)')
xlabel('频率hz')
grid
on