資源簡介
基于我上一篇關于fft的講解,現(xiàn)在更加深入解析ifft和fft的組合應用和參數(shù)特性,讓你將信號在時域頻域之間輕松自由地快速正確變換,同時根據(jù)需要調整變換的結果。

代碼片段和文件信息
%這個程序用于初步測試ifft的正確性
clear?all;
clc;
Fs?=?1e3;???%這是原始時域信號x的采樣頻率
multiple=0;?%x進行fft前的補零倍數(shù),可以增加頻率分辨率,也會影響信號頻域值
time=10;
t?=?0:1/Fs:time-1/Fs;??%這個會影響x的采樣點數(shù),當然點數(shù)越多,頻域越精確越平滑
%x?=?1.5*cos(2*pi*100*t)+3*sin(2*pi*202.5*t)+2*sin(2*pi*1450*t);
x?=?1.5*cos(2*pi*100*t)+3*sin(2*pi*200*t);
%x?=?1.5*cos(2*pi*100*t)+3*sin(2*pi*200*t)+2*cos(2*pi*0.1*t);
%頻率最小分辨率————————————————
x=[xzeros(1length(x)*multiple)];??
freqres?=?Fs/length(x);?
%變換運算獲得正確頻譜圖——————————————
xdft?=?fft(x);?
xdft2?=?xdft(1:length(x)/2+1);
xdft2?=?1/length(x).*xdft2;
xdft2(2:end-1)?=?(1+multiple)*2*xdft2(2:end-1);
freq?=?0:Fs/length(x):Fs/2;
plot(freqabs(xdft2));
%利用頻譜圖恢復原來的fft圖———————————
xdft3=xdft2;
xdft3(2:end-1)=xdft2(2:end-1)./2;
xdft3=xdft3.*length(x);
for?j=length(x)/2+2:length(x)
xdft3(j)=conj(xdft3(length(x)-j+2));
end
error2=xdft3-xdft;?%原來的fft圖與恢復后的fft圖的誤差
subplot(411);plot(real(xdft));title(‘最初的fft圖實部‘);
subplot(412);plot(real(xdft3));title(‘恢復后的fft圖實部‘);
subplot(413);plot(imag(xdft));title(‘最初的fft圖虛部‘);
subplot(414);plot(imag(xdft3));title(‘恢復后的fft圖虛部‘);
%現(xiàn)在利用恢復的fft圖進行ifft反變換————————
back=ifft(xdft3);
error=x-back;??%測量恢復的時域信號與原來的時域信號的誤差
min(error) ?
max(error) ?%輸出誤差的最大值
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????47083??2015-05-23?10:45??ifft和fft組合應用\MATLAB中ifft函數(shù)用法、性質、特性,以及與fft的組合應用全面深入解析(含程序).docx
?????文件????????1454??2015-05-25?15:06??ifft和fft組合應用\ifft_example1.m
?????文件????????2154??2015-05-25?15:06??ifft和fft組合應用\ifft_example2.m
?????目錄???????????0??2015-05-25?15:07??ifft和fft組合應用\
評論
共有 條評論