Bootstrap

idft重建图像 matlab_matlab fft变换后无法用ifft恢复原信号

对原信号进行了FFT变换,取得是单边傅里叶变换,且需要对其幅值处理,其中一段代码如下图,在进行处理后需要回到时域,代码直接进行了IFFT变换,参考了网上的一种代码方式,虽然波形靠谱了点,但还是不对,下图波形,图一是原始加窗信号,图二是IFFT波形,本人是matlab新手,想着我是不是需要在IFFT之前对信号进行处理,或者是IFFT变换之后,信号的横坐标写的有问题,自己查阅了很多资料,没有找到合适的解决办法,所以想请教下各位可不可以指点一二。     代码:

Ts = 50e-6;

Fs = 1 / Ts;

f0 = 50;

duraT = 1;

dt = 1 / Fs;

tAxis = dt:dt:(duraT - dt);

y = 2*sin(2*pi*10*tAxis);

y = y';

L = length(y)

nfft = 2^nextpow2(L);

y_HannWind = y.*hann(L);

Ydft_HannWnd = fft(y_HannWind,nfft)/L;

mYdft = abs(Ydft_HannWnd);

mYdft = mYdft(1:nfft/2+1);

mYdft(2:end-1) = 2*mYdft(2:end -1);

mYdft = 2*mYdft;

f = Fs/2*linspace(0,1,nfft/2+1);

;