?? fftorifft.m
字號:
% 對信號x(t)=sin(2*pi*40*t)+sin(2*pi*15*t)進行FFT,對其結(jié)果進行逆FFT,
% 將結(jié)果與原信號進行比較。采樣頻率為100Hz,采樣點數(shù)為128.
clf
fs=100;
N=128; %采樣頻率和數(shù)據(jù)個數(shù)
n=0:N-1; %時間序列
t=n/fs;
x=sin(2*pi*40*t)+sin(2*pi*15*t); %時間域信號
subplot(2,2,1),plot(t,x);
xlabel('Time/s');
ylabel('x');
title('原始信號');
grid on;
y=fft(x,N); %Fourier變換
mag=abs(y); %得到振幅譜
f=n*fs/N; %頻率序列
subplot(2,2,2),
plot(f(1:N/2),mag(1:N/2)*N/2); %繪制Nyquist頻率前的振幅
xlabel('頻率/Hz');
ylabel('振幅');
title('原始信號的快速Fourier變換');
grid on;
xifft=ifft(y); %進行Fourier逆變換
realx=real(xifft); %求取Fourier逆變換的實部
ti=[0:length(xifft)-1]/fs; %Fourier逆變換的時間序列
subplot(2,2,3),plot(ti,realx);
xlabel('時間/s');
ylabel('x');
title('運用Fourier逆變換得到的信號');
grid on;
yif=fft(xifft,N); %將Fourier逆變換得到的時間域信號進行Fourier變換
mag=abs(yif);
f=[0:length(y)-1]'*fs/length(y); %頻率序列
subplot(2,2,4),plot(f(1:N/2),mag(1:N/2)*2/N); %繪制Nyquist頻率前的振幅
xlabel('頻率/Hz');
ylabel('振幅');
title('運用IFFT得到信號的快速Fourier變換');
grid on;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -