当前位置:
文档之家› 实验三MATLAB求Fourier变换及逆变换
实验三MATLAB求Fourier变换及逆变换
Fourier 变换
解 syms t w; ut=sym('Heaviside(t)'); % 定义 0 时刻起跳的单位阶跃函数 UT=fourier(ut) % 实施 Fourier 变换,给出与理论一致的结果 UT = pi*Dirac(w)-i/w
2、simple 指令 matlab中simple函数的用法
注释:
(1)sym的意思是symbol,就是后面括号里面是个 代数式,要进行符号运算,不加意思就完全变了 (2)Dirac-----δ函数
(3)Heaviside----一般表示为阶跃函数 function f=heaviside(t) f=(t>0);小于0的都为0;大于0的为1;就是阶跃函数.
simple(‘s’),s是字符, 如果是对某个字符函数,如
y=(2+x)/x 化简,直接用simple(y)就得到2/x+1; 有
时表达式比较复杂,一次化简结果不太理想,就再
次化简,可以用simple(simple(y)) simplify和simple是Matlab符号数学工具箱提供 的两个简化函数,区别如下: simplify的调用格 式为:simplify(S);对表达式S进行化简。Simple 是通过对表达式尝试多种不同的方法(包括simplify) 进行化简,以寻求符号表达式S的最简形式
例6 写出下列【Matlab源程序】的结果
syms t w; syms beta positive;%定义符号参量beta
g=sym('Heaviside(t)');
f=t*exp(-beta*t)*g;
F=fourier(f) %结果为: F=
1/(beta+i*w)^2
例7 求 FW We 3wuw 的Fourier逆变换.
4、fourier 的缺省调用格式的使用
例2 求
的 Fourier 变换.
演示: fourier 的缺省调用格式的使用要十分谨慎.
syms t x w;ft=exp(-(t-x))*sym('Heaviside(t-x)');
F1=simple(fourier(ft,t,w))
% 给出以 w 为频率变量的正确结果
解: 【Matlab源程序】 syms t u w ifourier(w*exp(-3*w)*sym('Heaviside(w)')) %结果为: ans =1/2/(-3+i*x)^2/pi
例8 矩形脉冲信号的傅氏变换
编写信号 M=8; tend=1; T=10; N=2^M; dt=T/N; n=0:N-1; t=n*dt; w=zeros(size(t,2),1); Tow=find((tend-t)>0); w(Tow,1)=ones(length(Tow),1);
F2=simple(fourier(ft)) % 误把 x 当作时间变量
F3=simple(fourier(ft,t))
% 误把 x 当作时间变量,又误把 t 当作频率变量
F1 = 1/exp(i*x*w)/(1+i*w)
F2 =i*exp(-i*t*w)/(i+w)
F3 =i*exp(-t*(2+i*t))/(i+t)
例5 求函数 f cosat, g sinat的Fourier 变换
解:【Matlab源程序】 syms t w a; syms a positive;%定义符号参量a f=cos(a*t); g=sin(a*t); F=simple(fourier(f)) G=simple(fourier(g)) F= %结果为: pi*(dirac(-w+a)+dirac(w+a)) G= i*pi*(-dirac(-w+a)+dirac(w+a))
对上述例1 求 Fourier 变换 syms t w;ut=sym('Heaviside(t)'); % 定义 0 时刻起跳的单位阶跃函数 <1> UT=fourier(ut) % 实施 Fourier 变换,给出与理论一致的结果 UTC=maple('convert',UT,'piecewise','w') % 计算结果起指示作用 <3> UTS=simple(UT) % 在此是 5.3 版的运算结果,简化导致漏项! UT = pi*Dirac(w)-i/w UTC = PIECEWISE([undefined, w = 0],[0, otherwise]) UTS = pi*Dirac(w)-i/w
3、ifourier(Yw,w,t)逆变换命令的使用
对上述例1 求 Fourier 逆变换进行验算 解 syms t w; UT = pi*Dirac(w)-i/w; Ut=ifourier(UT,w,t) % 结果与原函数相等 Ut =heaviside(t)
或解1 syms t w; Yw = pi*Dirac(w)-i/w; ifourier(Yw,w,t) ans =heaviside(t)
plot(t,w,'b','LineWidth',2.5); title('矩形脉冲信号');xlabel('t --->'); 在命令窗口输入cftbyfft(w,t);得到该信号的傅氏变换频谱图 或者在命令窗口输入exp8_2_;得到该信号的傅氏变换频谱图与理论
解:【Matlab源程序】 syms x w; syms b positive ;%定义符号参量b f=exp(-b^2*x^2); F=simple(fourier(f)) %结果为: F =1/b*pi^(1/2)*exp(-1/4*w^2/b^2)
求多个函数的Fourier 变换【Matlab源程序】
实验三 MATLAB求Fourier变换及逆变换
(一) 实验类型:综合性 (二) 实验类别:基础实验 (三) 实验学时数:2学时
.
基本命令
1、fourier 指令的使用 F = fourier(f,u,v) 其中f是需要变换的表达式;u是变量; v是算子 就是最后的表达式是z或者v的函数
例1 求
例3 求函数f t 1的Fourier变换
t
【Matlab源程序】 syms t W
fourier(1/t) %结果为:
ans = i*pi*(1-2*heaviside(w))
求Fourier变换还可用方法:fourier, simple 指令 的配合使用
例4 求函数f eb2x2 (b 0)的Fourier变换