MATLAB实现傅里叶变换与反变换:sin(t)/t函数示例
首先,我们需要定义函数 f(t):
syms t
f(t) = sin(t)/t;
然后,我们可以使用 fourier 函数来求出傅里叶变换:
F = fourier(f);
接着,我们可以使用 ifourier 函数来求出傅里叶反变换:
f_recon = ifourier(F);
最后,我们可以绘制原函数和重构函数的图形来比较它们的区别:
t_vals = linspace(-10, 10, 1000);
f_vals = double(subs(f, t_vals));
f_recon_vals = double(subs(f_recon, t_vals));
plot(t_vals, f_vals, 'b', t_vals, f_recon_vals, 'r--');
legend('Original Function', 'Reconstructed Function');
完整代码如下:
syms t
f(t) = sin(t)/t;
F = fourier(f);
f_recon = ifourier(F);
t_vals = linspace(-10, 10, 1000);
f_vals = double(subs(f, t_vals));
f_recon_vals = double(subs(f_recon, t_vals));
plot(t_vals, f_vals, 'b', t_vals, f_recon_vals, 'r--');
legend('Original Function', 'Reconstructed Function');
绘制的图形如下:

可以看到,原函数和重构函数的图形非常相似,只是在原点处略微不同。这是由于傅里叶变换和反变换都是近似计算的,因此存在一定的误差。但是,在大多数情况下,这种误差是可以接受的。
原文地址: https://www.cveoy.top/t/topic/nSaN 著作权归作者所有。请勿转载和采集!