语音学习笔记3------matlab实现傅里叶反变换ifft()函数


上一篇博客我们了解到,可以将一个语音信号傅里叶变换,那么,我们能不能逆向推回去呢,用已经存在的数据进行傅里叶逆变换?答案是肯定的。下面就讲讲如何实现傅里叶的反变换。

[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()用法的还有;fft2;fftwifft2ifftnifftshift



不懂的可以加我的QQ群:522869126(语音信号处理) 欢迎你的



到来哦,看了博文给点脚印呗,谢谢啦~~



你可能感兴趣的:(深度学习--语音识别)