語音學習筆記3------matlab實現傅立葉反變換ifft()函式

塵封的記憶0發表於2016-12-22


上一篇部落格我們瞭解到,可以將一個語音訊號傅立葉變換,那麼,我們能不能逆向推回去呢,用已經存在的資料進行傅立葉逆變換?答案是肯定的。下面就講講如何實現傅立葉的反變換。

[y,Fs]=audioread('C:\Users\wxq\Desktop\66666.wav')
Nsamps = length(y);
t = (1/Fs)*(1:Nsamps)          %Prepare time data for plot
%Do Fourier Transform
y_fft = abs(fft(y));            %Retain Magnitude%y_fft = fft(y); 
y1=ifft(y_fft);
figure;
plot(t ,y1);


傅立葉變換的函式是ifft();但是ifft()有很多引用的引數語法講究。

y = ifft(X)


y = ifft(X,n)


y = ifft(X,[],dim)


y = ifft(X,n,dim)


y = ifft(..., 'symmetric')


y = ifft(..., 'nonsymmetric')


Y = IFFT(x)的逆離散傅立葉變換的回報(DFT)向量X,用快速傅立葉變換(FFT)算


法計算。如果x是一個矩陣,IFFT返回每個列的矩陣的逆DFT。


IFFT測試X是否沿活動尺寸X向量的共軛對稱。如果是這樣的話,計算速度快,輸出是真


實的。一個n元向


量x是共軛對稱如果x(i)=連詞(x(MOD(n i + 1,n)+ 1))為X的每個元素


如果x是一個多維陣列,IFFT操作上的第一個非單維度。


Y = IFFT(x,n)返回向量X的N點DFT逆


Y = IFFT(x,[ ],DIM)和Y = IFFT(x,n,DIM)返回x在維暗淡的逆DFT。


Y = IFFT(…,“對稱”)導致治療X共軛IFFT沿活動維對稱。當X是不完全對稱共軛的


選項是有用的,只


是由於舍入誤差。


Y = IFFT(…,“非對稱”)是叫IFFT相同(…)沒有引數“非對稱”。


對任意的x,IFFT變換(FFT(X))等於x的舍入誤差。




總結:


IFFT演算法(x)為FFT演算法相同(X),除了改變符號,N =長度比例因子(X)。由於


FFT、IFFT執行時間取決於變換長度。這是最快的兩個權力。這是幾乎一樣快,只有小素


數的長度。它通常是幾倍的速度的長度是總理或具有大素數因子。


注意:


你可以增加使用效用函式FFTW IFFT的速度,它控制著®MATLAB軟體優化計算一個特定的


大小和尺寸的FFT演算法。


類似於ifft()用法的還有;fft2fftwifft2ifftnifftshift



不懂的可以加我的QQ群:522869126(語音訊號處理) 歡迎你的



到來哦,看了博文給點腳印唄,謝謝啦~~



相關文章