A. 離散傅里葉變換DFT 和FFT 輸入的參數是什麼,計算出來的又是什麼
1,簡單的用的話,輸入參數為一系列的數據點,例如在MATLAB中,先定義
t=0:0.01:1;
y=sin(t);
dft(y);
即輸入參數其實是100個數據點值,局彎要求稍微高點的,可以用dft(y,n),n代表采樣頻率,鄭好即采樣點數,桐叢悶按照采樣定理,采樣頻率須大於2倍的樣本的頻率,一般去5倍,根據離散傅里葉的原理,n一般取2的整數立方,可以取256,512,1024等。即便你不取這些數,在系統內部計算時,它也是按照這些數進行采樣計算的。
2.傅里葉變換就是頻譜分析,輸出的是對應不同頻率該函數的幅值是多少。
B. matlab中函數fft的輸入量與輸出量各是什麼
fs=1000;%對連續信號進行量化處理,即對原始信號進行采樣,這里是采樣率,單位Hz
ts=1/fs;%采樣間隔
t=0:ts:1.3;
x=sin(2*pi*50*t)+sin(2*pi*300*t);
%y=@(t) sin(2*pi*50*t)+sin(2*pi*300*t);
f=x+3.5*randn(1,length(t));
subplot(411);plot(t,f);
ylabel('幅值');xlabel('時間');title('原始信號');
nfft= 2^nextpow2(length(f));%找出大於y的個數的最大的2的指數值
y=fft(f,nfft);%對f信號進行鉛源DFT,得到頻率的幅值分布
p=y.*conj(y)/nfft;%conj()函數是求y函數的共軛復數,實數的共軛復數是他本身。
ff=fs*(0:nfft/2-1)/nfft;% F F T 變換後對應的頻率的序列
subplot(412);plot(ff,p(1:nfft/2));
ylabel('功率譜密度');xlabel('頻率');title('信號功率譜');
%------論壇上看到的求FFT的方法
subplot(413);plot(ff,abs(y(1:nfft/2)));%(用這個,先取點數後求模)
ylabel('幅值');xlabel('頻率');title('單邊幅頻譜');
%------matlab例子的求FFT的方法
subplot(414);plot(ff,2*abs(y(1:nfft/2))/length(f));%(用鬧談這個,先取點數後求模)
ylabel('幅值');xlabel('頻率'液激碰);title('單邊幅頻譜');
%振幅的大小與所用DFT采樣點數(nfft)有關,採用不同的DFT采樣點數對同一信號,振幅是有不同的表現值
C. FFT輸入輸出長度的問題。在線急等~
FFT輸入長度應當是 2 的 整數次方。不滿足時,消肆液後面添0,湊足到最近的 2 的 整數次方拿物。
例如,1000 個數,後面添0,湊足到1024 -- 最近的 2 的 整數次方。
輸出 個數 是 1024 (復數)。
matlab y=fft(x,n) 實際上是 DFT, 輸入數,多於 n, 只用 n 個,不足n個,添0到 n 個。輸出 為 n 個 (復數)。matlab 的 y=fft(x) 按幫助文件,它等同 y=fft(x,n),只是 n = size(x)。
至於matlab 如何用 FFT技術,但輸出數據個數不是 2 的雹寬 整數次方個數。是不是做了一次插值
不清楚。