广义S变换MatlAB程序中窗函数的编码问题

广义S变换MatlAB程序中窗函数的编码问题,第1张

n即f的离散采用意义。W是窗函数w,它的傅里叶变换fft(W),直接和输入信号的傅里叶变换形式H进行了离散卷积,然后逆傅里叶变换得到对信号h的广义S变换。

w0(n,:)=exp(-n.^(2*p)*k.^2/(2*N.^2))*(n.^p)/(N*sqrt(2*pi))是窗函数,k是t的离散取样意义。公式的话就是简单的在S变换里把f变成了f^p(f的p次方)

这里p是要赋值的,它是给定的一个数值。如果p=1那就是原S变换,如果p>1则窗函数随f变化呈指数增长,一般这个效果不值得应用。反而是0<p<1时,则窗函数不对称性和窗宽随f呈对数变化,f小时窗变化剧烈,f大时窗变化反而很小,会比较有用的。

拉普拉斯(Laplace)变换是求解微分方程的一个有力的工具,是将微积分运算转变为乘除运算,大大提供运算效率。

用matlab的实现拉普拉斯变换的函数是Laplace(),其逆变换是iLaplace()。

例1:求函数 y=sin2t 的 Laplace 变换。

syms t f F

f=sin(2*t )%原函数

F=laplace(f)%象函数

F =

2/(s^2 + 4)

例2:求函数 1/(s(s²+5)) 的 Laplace 逆变换。

syms s f F

F=1/(s*(s^2+5)) %象函数

f=ilaplace(F)%原函数

f =

1/5 - cos(5^(1/2)*t)/5

例3:求方程y"+2y'-3y=exp(-t),满足初始条件y(0)=0,y'(0)=1的解。

解:对方程的两边取拉氏变换,并考虑到初始条件,则得

s²Y(s)-1+2sY(s)-3Y(s)=1/(s+1)

以下用matlab求解。

Ys=solve('s^2*Y-1+2*s*Y-3*Y=1/(s+1)','Y');

simplify(ilaplace(Ys))

ans =

(3*exp(t))/8 - exp(-3*t)/8 - exp(-t)/4

求解得微分方程的解

y(t)=(3*exp(t))/8 - exp(-3*t)/8 - exp(-t)/4

matalb求得结果与手动计算得结果是等价的。

1. 手动计算得结果

f1 = x0*cos(8*t)*exp(-6*t) + sin(8*t)*exp(-6*t)*(v0+6*x0)/8

f1 = expand(f1, 'ArithmeticOnly', true)

2. matalb求得结果

f2 = x0*exp(-6*t)*(cos(8*t) + sin(8*t)*((v0 + 12*x0)/(8*x0) - 3/4))

f2 = expand(f2, 'ArithmeticOnly', true)

3.

simplify(f1-f2)

ans = 0


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7805943.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存