stgsummer 发表于 2009-3-4 11:16

小波变换的滤波器实现

小弟刚学习小波,这几天看了论坛里的一些帖子,获益非浅,但还是有不少问题。下面这个问题一直搞不明白。
对一个离散信号的多分辨率分解是怎样通过滤波器实现的?
从概念上,我能理解“分层分解”的过程和结果,但具体实现上不清楚。
例如有这样一个信号:
t=1:512;
t=t*1/2560;
z=1+0.2*sin(2*pi*7.5*t);
x=5*cos(2*pi*30*t)
y=sin(2*pi*120*t);
f1=x+y+z;
s=x+0.5*randn(1,512);% x信号+噪声
要用db4滤波器进行分解。
先得到滤波器系数:
= wfilters('db4');
结果是:Lo_D =
Columns 1 through 4
       -0.0105974017849973      0.0328830116669829         0.030841381835987      -0.187034811718881
Columns 5 through 8
       -0.0279837694169838          0.63088076792959         0.714846570552542         0.230377813308855

Hi_D =
Columns 1 through 4
      -0.230377813308855         0.714846570552542         -0.63088076792959       -0.0279837694169838
Columns 5 through 8
         0.187034811718881         0.030841381835987       -0.0328830116669829       -0.0105974017849973

Lo_R =
Columns 1 through 4
         0.230377813308855         0.714846570552542          0.63088076792959       -0.0279837694169838
Columns 5 through 8
      -0.187034811718881         0.030841381835987      0.0328830116669829       -0.0105974017849973

Hi_R =
Columns 1 through 4
       -0.0105974017849973       -0.0328830116669829         0.030841381835987         0.187034811718881
Columns 5 through 8
       -0.0279837694169838         -0.63088076792959         0.714846570552542      -0.230377813308855
>>
问题:
信号长度为512,滤波器长度为8,怎么用滤波器系数实现分解和重构?是不是二进分解?分解过程是不是跟滤波器长度有关?mallat算法的最初系数怎么确定?

请指点迷津!谢谢!

寂寞的部落 发表于 2013-10-16 12:13

{:{39}:}

补充内容 (2013-10-18 13:05):
其实分解和重构过程就原始信号与滤波器系数进行卷积过程,再二抽取或插值,得到的系数值的长度该等于(信号长度+滤波器系数长度-1),但是滤波器系数是怎么确定的实在搞不懂?
页: [1]
查看完整版本: 小波变换的滤波器实现