对原信号进行了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);