使用Matlab计算傅里叶正变换和傅里叶逆变换

一、傅里叶变换

傅里叶正变换:

傅里叶逆变换:

式中F(\omega)是f(t)的频谱函数,它一般是复函数,可以写作F(\omega)=|F(\omega)|e^{j \varphi (\omega)} 

二、常用信号的傅里叶变换

信号名称f(t)F(\omega)
单边指数脉冲Ee^{-at}u(t) (a>0)\frac{E}{a+j\omega}
双边指数脉冲Ee^{-a|t|} (a>0)\frac{2aE}{a^{2}+\omega^{2}}
矩形脉冲E[u(t+\frac{\tau}{2}) - u(t-\frac{\tau}{2})]E \tau Sa(\frac{\omega \tau}{2}) = \frac{2E}{\omega}sin(\frac{\omega \tau}{2})
钟形脉冲Ee^{-(\frac{t}{\tau})^{2}}\sqrt{\pi}E \tau e^{-(\frac{\omega \tau}{2})^{2}}
符号函数Esgn(t)\frac{2E}{j\omega}
余弦脉冲Ecos(\frac{\pi t}{\tau})[u(t+\frac{\tau}{2}) - u(t-\frac{\tau}{2}) ]\frac{2E \tau}{\pi} \frac{cos(\frac{\omega \tau}{2})}{[1-(\frac{\omega \tau}{\pi})^{2}]}
冲激函数E\delta(t)E

冲激偶

E\frac{d^{n}\delta(t)}{dt^{n}}E(j\omega)^{n}
阶跃函数Eu(t)\frac{E}{j\omega} + \pi E \delta (\omega)
正弦信号Esin(\omega_{0}t)j\pi E[\delta(\omega+\omega_{0}) - \delta(\omega-\omega_{0})]
余弦信号Ecos(\omega_{0}t)E\pi [\delta(\omega+\omega_{0}) + \delta(\omega-\omega_{0})]
抽样脉冲Sa(\omega_{c}t) = \frac{sin(\omega_{c}t)}{\omega_{c}t}\frac{\pi}{\omega_{c}}[u(\omega + \omega_{c}) - u(\omega - \omega_{c})]

三、傅里叶变换的性质

性质

时域f(t)

频域F(\omega)

时域频域对应关系

1.线性$\sum_{i=1}^{n} a_{i} f_{i} (t)$$\sum_{i=1}^{n} a_{i} F_{i} (\omega)$线性叠加

2.对称性

F(t)2\pi f(-\omega)对称
3.尺度变换f(at)\frac{1}{|a|}F(\frac{\omega}{a})压缩与扩展
f(-t)F(-\omega)反褶
4.时移f(t-t_{0})F(\omega)e^{-j\omega t_{0}}时移与相移
f(at-t_{0})\frac{1}{|a|}F(\frac{\omega}{a}) e^{-j\frac{\omega t_{0}}{a}}
5.频移f(t)e^{j \omega_{0}t}F(\omega - \omega_{0})调制与频移
f(t)cos(\omega_{0}t)\frac{1}{2}[F(\omega + \omega_{0}) + F(\omega - \omega_{0})]
f(t)sin(\omega_{0}t)\frac{j}{2}[F(\omega + \omega_{0}) - F(\omega - \omega_{0})]
6.时域微分\frac{df(t)}{dt}j \omega F(\omega)
\frac{d^{n}f(t)}{dt^{n}}(j\omega)^{n}F(\omega)
7.频域微分-jtf(t)\frac{dF(\omega)}{d\omega}
(-jt)^{n}f(t)\frac{d^{n}F(\omega)}{d\omega^{n}}
8.时域积分\int_{-\infty }^{t}f(\tau )d\tau\frac{1}{j\omega}F(\omega) + \pi F(0)\delta (\omega)
9.时域卷积f_{1}(t) \ast f_{2}(t)F_{1}(\omega) F_{2}(\omega)乘积与卷积
10.频域卷积f_{1}(t)f_{2}(t)\frac{1}{2\pi} F_{1}(\omega) \ast F_{2}(\omega)
11.时域抽样$\sum_{n = -\infty}^{\infty}f(t)\delta(t - nT_{s})$$\frac{1}{T_{s}} \sum_{n = -\infty}^{\infty}F(\omega - \frac{2\pi n}{T_{s}})$抽样与重复
12.频域抽样$\frac{1}{\omega_{s}} \sum_{n = -\infty}^{\infty}f(t - \frac{2\pi n}{\omega_{s}})$$\sum_{n = -\infty}^{\infty}F(\omega)\delta(\omega - n\omega_{s})$
13.相关

R_{12}(\tau)

R_{21}(\tau)

F_{1}(\omega) F{_{2}}^{*}(\omega)

F{_{1}}^{*}(\omega) F_{2}(\omega)

14.自相关R(\tau)| F(\omega) |^{2}

四、使用Matlab计算傅里叶变换

例1.已知信号求该信号的傅里叶变换

在使用Matlab之前,我们先手工计算一下

由于该信号只在-1到1处有值,所以乘以一个-1到1的矩形脉冲,然后再根据频移的性质即可得到最终结果

代码如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%傅里叶正变换%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%F = fourier(f);      f(x):函数f的自变量为x,其傅里叶变换后的函数F的自变量为w(\omega)
%F = fourier(f,v);    f(x),F(v):函数f的自变量为x,其傅里叶变换后的函数F的自变量为v
%F = fourier(f,u,v);  f(u),F(v):函数f的自变量为u,其傅里叶变换后的函数F的自变量为v

syms t w;%构造符号变量t,w(\omega)
f = cos(0.5*pi*t)*(heaviside(t+1)-heaviside(t-1));
F = fourier(f,t,w);%f(t),F(w)
disp(F);%显示傅里叶变换后的表达式

运行结果如下:

整理一下Matlab计算的结果,得:\frac{cos\omega}{0.5\pi-\omega} + \frac{cos\omega}{0.5\pi+\omega},而我们手工计算的结果为Sa(\omega+0.5\pi) + Sa(\omega-0.5\pi)

虽然这两个结果看起来不太一样,但是实际上是一样的

由抽样函数的定义可知:

Sa(\omega+0.5\pi) + Sa(\omega-0.5\pi) = \frac{sin(\omega+0.5\pi)}{\omega+0.5\pi} + \frac{sin(\omega-0.5\pi)}{\omega-0.5\pi}

再根据诱导公式,可得:

\frac{sin(\omega+0.5\pi)}{\omega+0.5\pi} + \frac{sin(\omega-0.5\pi)}{\omega-0.5\pi} = \frac{cos\omega}{\omega+0.5\pi}-\frac{cos\omega}{\omega-0.5\pi}

\frac{cos\omega}{\omega+0.5\pi}-\frac{cos\omega}{\omega-0.5\pi} = \frac{cos\omega}{0.5\pi+\omega}+\frac{cos\omega}{0.5\pi-\omega}

所以计算结果没有问题

例2.已知信号f(t)的傅里叶变换为F(\omega) = \frac{sin(3\omega+6)}{\omega+2},求f(t)

我们可以先把F(\omega)化为抽样函数的形式,然后根据抽样函数的傅里叶逆变换公式和频移性质得出最终结果

代码如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%傅里叶逆变换%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%f = ifourier(F);       F(w),f(x):函数F的自变量为w(\omega),函数f的自变量为x
%f = ifourier(F,u);     F(w),f(u):函数F的自变量为w(\omega),其傅里叶逆变换后的函数f的自变量为u
%f = ifourier(F,v,u) ;  F(v),f(u):函数F的自变量为v,其傅里叶逆变换后的函数f的自变量为u
syms F w t;%构造符号变量F,t,w(\omega)
F = sin(3*w+6)/(w+2);
f = ifourier(F,w,t);%F(w),f(t)
disp(f);%显示傅里叶逆变换后的表达式

运行结果如下:

整理一下Matlab计算结果,得:\frac{1}{2} [u(t+3)-u(t-3)]e^{-2jt},与我们手工计算的结果一致

五、使用Matlab画出波形图和频谱图(幅度谱)

使用ezplot函数画出例1的波形图和频谱图

syms t w;%构造符号变量t,w(\omega)
f = cos(0.5*pi*t)*(heaviside(t+1)-heaviside(t-1));
F = fourier(f,t,w);%f(t),F(w)
disp(F);%显示傅里叶变换后的表达式
ezplot(f,[-2,2]);%-2<t<2
figure;
ezplot(F,[-10,10]);%-10<w<10

使用ezplot函数画出例2的波形图和频谱图

syms F w t;%构造符号变量F,t,w(\omega)
F = sin(3*w+6)/(w+2);
f = ifourier(F,w,t);%F(w),f(t)
disp(f);%显示傅里叶逆变换后的表达式

ezplot(abs(f),[-4,4]);%由于f(t)含有虚数单位j,要对f(t)取模
figure;
ezplot(F);
axis([-6 6,-3 3]);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值