您的位置:首页 > 编程语言 > MATLAB

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

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

[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;
fftw
ifft2
ifftn
ifftshift


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

到来哦,看了博文给点脚印呗,谢谢啦~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐