小波变换的滤波器实现
小弟刚学习小波,这几天看了论坛里的一些帖子,获益非浅,但还是有不少问题。下面这个问题一直搞不明白。对一个离散信号的多分辨率分解是怎样通过滤波器实现的?
从概念上,我能理解“分层分解”的过程和结果,但具体实现上不清楚。
例如有这样一个信号:
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算法的最初系数怎么确定?
请指点迷津!谢谢! {:{39}:}
补充内容 (2013-10-18 13:05):
其实分解和重构过程就原始信号与滤波器系数进行卷积过程,再二抽取或插值,得到的系数值的长度该等于(信号长度+滤波器系数长度-1),但是滤波器系数是怎么确定的实在搞不懂?
页:
[1]