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

博主在MATLAB中对加窗信号进行FFT变换后,尝试通过IFFT回到时域,但发现无法完全恢复原始信号。经过幅值处理后,使用fftshift和ifft进行反变换,得到的波形与原始信号仍有差异。问题可能在于IFFT前后的处理或横坐标设置。博主寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值