ifft的问题
对一音频信号做过1024点的fft,怎么样才能用ifft还原回原来的时域信号比如:
x1=wavread('shiyan.wav');
y1=fft(x1,1024);
再用ifft怎么样才能由y1得到x1呢
望有人帮忙解决,表示感谢 real(ifft(y1)) 谢谢,OK 不过还是不对啊,x1是126799*1,而real(ifft(y1))为1024*1 y1=fft(x1,1024);
表示你只用信号的前1024个点fft
显然ifft后还是1024 这是你前面的问题造成的,如suffer所说
改为y1=fft(x1); 如果数据太长,也可分段作FFT和IFFT。 原帖由 songzy41 于 2007-6-25 06:39 发表 http://www.chinavib.com/forum/images/common/back.gif
如果数据太长,也可分段作FFT和IFFT。
可以分段作fft ? 原帖由 yimao 于 2007-6-25 15:25 发表 http://www.chinavib.com/forum/images/common/back.gif
可以分段作fft ?
可以分段做。这里给一个简单的例子,仅分二段来做(用二段只是为了说明问题,实际可分任意多的段),可以看到把二段分别做后再拼接,一样可满足要求。
N=10000;
n=1:N;
x=sin(2*pi*0.005*(n-1));
y=zeros(1,N);
for i=1 : 2
y1=x(1024*(i-1)+1:1024*i);
Y1=fft(y1);
y2=real(ifft(Y1));
y(1024*(i-1)+1:1024*i)=y2;
end
subplot 211; plot(x(1:2048)); grid;
xlabel('原始信号');
axis();
subplot 212; plot(y(1:2048)); grid;
axis();
xlabel('分段fft和ifft后拼接成的信号'); 这种分段FFT 只对简单的余弦信号有用吧?? 原帖由 zhj0231984 于 2008-7-4 20:58 发表 http://www.chinavib.com/forum/images/common/back.gif
这种分段FFT 只对简单的余弦信号有用吧??
不受余弦信号的限制,任何信号都可以,这是因为FFT的可逆性。
回复 11楼 的帖子
呵呵,fft和ifft的叠加性;但是有啥用呢?
请问楼主
你正变换后,再逆变换回去后,信号能复原吗?我关心的是幅值能变换回原来的幅值吗?
页:
[1]