7.7 符号积分变换
在数学中,为了把较复杂的运算转换为比较简单的运算,经常采用一种变换手段。例如数量的乘积或商可以变换成对数的和或差,然后再取反对数即可求得原来数量的乘积或商。这一变换方法的目的就是把比较复杂的乘除运算通过对数变换转换为简单的加减运算。
所谓积分变换,就是通过积分运算,把一类函数A变换成另一类函数B,函数B一般是含有参量α的积分:。这一变换的目的就是把某函数类A中的函数f(t)通过积分运算变成另一类函数B中的函数F(α)。这里K(t,α)是一个确定的二元函数,叫作积分变换的核。当选取不同的积分区间与变换核时,就成为不同的积分变换。f(t)叫作原函数,F(α)叫作象函数。在一定条件下,原函数与象函数两者一一对应,成为一个积分变换对。变换是可逆的,由原函数求象函数叫作正变换,反之则是逆变换。
积分变换的理论与方法,在自然科学与工程技术的各个领域中都有着极其广泛的应用,成为不可缺少的运算工具。变换的使用会极大地简化计算,有的变换则为开创新的学科奠定了基础。
7.7.1 傅里叶变换及其反变换
时域中的f(t)与它在频域中的Fourier变换F(ω)之间存在如下关系:
由计算机完成这种变换的途径有两条:一是直接调用指令fourier和ifourier进行;二是根据上面的定义,利用积分指令int实现。下面只介绍fourier和ifourier指令的使用及相关注意事项,至于如何根据定义求变换,请读者自己完成。
● Fw=fourier(ft,t,w):求时域函数ft的Fourier变换Fw,ft是以t为自变量的时域函数,Fw是以圆频率w为自变量的频域函数。
● ft=ifourier(Fw,w,t):求频域函数Fw的Fourier反变换ft,ft是以t为自变量的时域函数,Fw是以圆频率w为自变量的频域函数。
例7-30:傅里叶变换示例。
在命令行窗口中输入:
syms t w real; f = sym(cos(t) * sin(t)) fourier(f, t, w)
输出结果:
f = cos(t)*sin(t) ans = -(pi*(dirac(w - 2) - dirac(w + 2))*1i)/2
在命令行窗口中输入:
ifourier(ans, w, t)
输出结果:
ans = (exp(-t*2i)*1i)/4 - (exp(t*2i)*1i)/4
在命令行窗口中输入:
simplify(ans)
输出结果:
ans = sin(2*t)/2
7.7.2 拉普拉斯变换及其反变换
Laplace变换及其反变换的定义为:
与Fourier变换相似,Laplace变换与反变换的实现也有两条途径:直接调用指令laplace和ilaplace;或者根据上面的定义,利用积分指令int实现。相较而言,直接使用laplace和ilaplace指令实现变换较为简洁。具体的调用格式如下。
● Fs=laplace(ft,t,s):求时域函数ft的Laplace变换Fs,ft是以t为自变量的时域函数,Fs是以复频率s为自变量的频域函数。
● ft=ilaplace(Fs,s,t):求频域函数Fs的Laplace反变换ft,ft是以t为自变量的时域函数,Fs是以复频率s为自变量的频域函数。
例7-31:拉普拉斯变换示例。
在命令行窗口中输入:
syms s t; syms a positive; f = sym(exp(2 * t) + 5 * dirac(a - t)) laplace(f, t, s)
输出结果:
f = exp(2*t) + 5*dirac(a - t) ans = 5*exp(-a*s) + 1/(s - 2)
在命令行窗口中输入:
ilaplace(ans, s, t)
输出结果:
ans = exp(2*t) + 5*dirac(a - t)
7.7.3 Z变换及其反变换
一个离散因果序列的Z变换及其反变换定义为:
涉及Z反变换具体计算的常见方法有3种,分别是幂级数展开法、部分分式展开法和围线积分法。MATLAB的符号数学工具箱中采用围线积分法设计求Z反变换的iztrans指令,相应的数学表达式是:
具体的调用格式如下。
● FZ=ztrans(fn):求时域函数fn的Z变换FZ,默认fn是变量n的函数,生成的Z变换是以复频率z为变量的函数。
● FZ=ztrans(fn,w):求时域函数fn的Z变换FZ,默认fn是变量n的函数,生成的Z变换是以变量w来代替复频率z的函数。
● FZ=ztrans(fn,n,z):求时域函数fn的Z变换FZ,fn是以n为自变量的时域序列,FZ是以复频率z为自变量的频域函数。
● fn=iztrans(FZ,z,n):求频域函数FZ的Z反变换fn,fn是以n为自变量的时域序列,FZ是以复频率z为自变量的频域函数。
例7-32:Z变换示例。
在命令行窗口中输入:
syms n; f = sym(n^3 + n^2 + n + 1) ztrans(f)
输出结果:
f = n^3 + n^2 + n + 1 ans = z/(z - 1) + z/(z - 1)^2 + (z*(z^2 + 4*z + 1))/(z - 1)^4 + (z*(z + 1))/(z - 1)^3
在命令行窗口中输入:
clear syms a b n w; f = sym(sin(a * n) + cos(b * n)) ztrans(f, w)
输出结果:
f = cos(b*n) + sin(a*n) ans = (w*(w - cos(b)))/(w^2 - 2*cos(b)*w + 1) + (w*sin(a))/(w^2 - 2*cos(a)*w + 1)
在命令行窗口中输入:
ztrans(f, a, w)
输出结果:
ans = (w*cos(b*n))/(w - 1) + (w*sin(n))/(w^2 - 2*cos(n)*w + 1)
在命令行窗口中输入:
iztrans(ans, w, n)
输出结果:
ans = sin(n^2) - cos(b*n)*(kroneckerDelta(n, 0) - 1) + cos(b*n)*kroneckerDelta(n, 0)