用matlab如何实现fft变换

2024-11-27 11:06:24
推荐回答(1个)
回答1:

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