摘要
pade逼近法是常用的使用多项式的形式逼近函数的方法,小波变换中需要对小波函数进行逼近,得到可以用电路实现的传递函数,因此需要用到pade逼近。
正文
1. pade逼近法
1.1 使用pade逼近的全过程
-
第一点
首先,我们有一个时域上的函数法f(t),把他进行拉普拉斯变换(变到频域,传递函数是频域上的嘛,所以先变了再说),然后对他进行泰勒级数展开,此时我们得到一个多项式 -
第二点
然后对系数c进行一顿操作,得到函数的传递函数p,q的系数,如下图,就是pade逼近了 -
第三点
如何进行操作呢,
求解下面两式(已知c求解跑p,q):
2. pade逼近代码
function [f1,f2] = Pade(y,n,x0)
syms t;
A = zeros(n,n);
q = zeros(n,1);
p = zeros(n+1,1);
b = zeros(n,1);
yy = 0;
a(1:2*n) = 0.0;
for(i=1:2*n)
yy = diff(sym(y),findsym(sym(y)),n);
a(i) = subs(sym(yy), findsym(sym(yy)), 0.0)/factorial(i);
end;
for(i=1:n)
for(j=1:n)
A(i,j)=a(i+j-1);
end;
b(i,1) = -a(n+i);
end;
q = A\b;
p(1) = subs(sym(y),findsym(sym(y)),0.0);
for(i=1:n)
p(i+1) = a(n)+q(i)*subs(sym(y),findsym(sym(y)),0.0);
for(j=2:i-1)
p(i+1)=p(i+1)+q(j)*a(i-j);
end
end
f_1 = 0;
f_2 = 1;
for(i=1:n+1)
f_1 = f_1 + p(i)*(t^(i-1));
end
for(i=1:n)
f_2 = f_2 + q(i)*(t^i);
end
if(nargin == 3)
f = f_1/f_2;
f = subs(f,'t',x0);
else
f = f_1/f_2;
f = vpa(f,6);
end
f1=f_1;
f2=f_2;
其实这个我也不会运行,我只是纯理论(别打我,就放出来做一下参考),这个代码在网上找的(真的没有更多信息了,说的还没我多呢),也许可以实现的,只是不知道方法而已,啦啦啦
总结
没有总结
来源:CSDN
作者:alier_chen
链接:https://blog.csdn.net/alier_chen/article/details/103483355