学习pade法逼近小波

摘要

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;

其实这个我也不会运行,我只是纯理论(别打我,就放出来做一下参考),这个代码在网上找的(真的没有更多信息了,说的还没我多呢),也许可以实现的,只是不知道方法而已,啦啦啦

总结

没有总结

你可能感兴趣的:(学习pade法逼近小波)