完全重建QMFB的MATLAB实现
滤波器组的概念
在许多应用中,一个离散时间信号首先被一个分析滤波器组分为多个自带信号,各子带信号经过处理后,经过一个综合滤波器组,形成输出信号。各子带信号由于占用的带宽更小,因此可以对其进行抽样再进行处理(这样相比直接处理更加高效)。我们将具有一个共同输入信号或一个共同输出信号的一组滤波器称为滤波器组(Filter Banks)。1
两通道正交镜像滤波器组(QMFB)
在分析滤波器组一侧,输入信号(设为宽带信号)被分成 k k k个子频带信号(窄带信号),通过抽取可降低采样率;在综合滤波器一侧,通过零值内插和带通滤波可以重建原来的信号。2
![](https://tva1.sinaimg.cn/large/007S8ZIlly1gfbu2owd5zj30gy03kq38.jpg)
两通道QMFB的幅频特性如图所示。
![](https://tva1.sinaimg.cn/large/007S8ZIlly1gfbvtl3y25j30o808edgt.jpg)
由于 H 0 ( e j ω ) H_0({\rm e}^{{\rm j}ω}) H0(ejω)与 H 1 ( e j ω ) H_1({\rm e}^{{\rm j}ω}) H1(ejω)关于 π 2 \dfrac π 2 2π镜像对称,因此这种滤波器组称为正交镜像滤波器组。
若综合滤波器的输出信号
x
^
(
n
T
1
)
\hat x (nT_1)
x^(nT1)与分析滤波器组原来的输入信号
x
(
n
T
1
)
x(nT_1)
x(nT1)满足
x
^
(
n
T
1
)
=
c
x
[
(
n
−
n
0
)
T
1
]
\hat{x}\left(n T_{1}\right)=c x\left[\left(n-n_{0}\right) T_{1}\right]
x^(nT1)=cx[(n−n0)T1]
其中
c
c
c与
n
0
n_0
n0为固定的常数,则称
x
^
(
n
T
1
)
\hat x (nT_1)
x^(nT1)是对
x
(
n
T
1
)
x(nT_1)
x(nT1)的完全重建(Perfect Reconstruction)。但重建信号与原始信号之间存在着以下误差:
- 混叠失真
- 幅度失真
- 相位失真
- 量化失真
令 G 0 ( z ) = H 0 ( z ) G_0(z)=H_0(z) G0(z)=H0(z), G 1 ( z ) = − H 1 ( z ) = − H 0 ( − z ) G_1(z)=-H_1(z)=-H_0(-z) G1(z)=−H1(z)=−H0(−z),则 ∣ H 1 ( e j w ) ∣ = ∣ H 0 ( e j ( π + w ) ) ∣ \left|H_{1}\left(e^{j w}\right)\right|=\left|H_{0}\left(e^{j(\pi+w)}\right)\right| ∣∣H1(ejw)∣∣=∣∣H0(ej(π+w))∣∣。若 H 0 ( z ) H_0(z) H0(z)为低通滤波器,则 H 1 ( z ) , G 0 ( z ) , G 1 ( z ) H_1(z),G_0(z),G_1(z) H1(z),G0(z),G1(z)分别为高通、低通、高通滤波器。
完全重建QMFB的设计与实现
经实验证明,选取阶数 N = 41 N=41 N=41, H 0 H_0 H0的带通截止频率 ω = 0.43 ω=0.43 ω=0.43时可以达到最小的MSE。
代码如下:
N=41;
w=0.43;
[h0,h1,g0,g1]=firpr2chfb(N,w);
[H1z,w]=freqz(h0,1,512);
H1_abs=abs(H1z);H1_db=20*log10(H1_abs);
[H2z,w]=freqz(h1,1,512);
H2_abs=abs(H2z);H2_db=20*log10(H2_abs);
%%%%%%%%%%滤波器h0和h1的幅度响应%%%%%%%%%%
figure(1);
plot(w/pi,H1_db,'-',w/pi,H2_db,'--');
axis([0,1,-100,10]);
grid
xlabel('\omega/\pi');ylabel('幅度,dB');
sum1=H1_abs.*H1_abs+H2_abs.*H2_abs;
d=10*log10(sum1);
%%%%%%%%%%%%幅度响应关系误差%%%%%%%%%%%%%
figure(2)
plot(w/pi,d);grid;
xlabel('\omega/\pi');ylabel('误差,dB');
axis([0,1,-0.04,0.04]);
%%%%%%%%%%%%%x1(n)%%%%%%%%%%%%%%%%%%%%%
x=zeros(1,500);
x(2)=1;x(3)=1;
x(6)=2;x(7)=2;x(8)=2;
x(17)=1.5;x(18)=1.5;x(19)=1.5;
x(24)=1;x(25)=1;
x(33)=3;x(34)=3;x(35)=3;
%%%%%%%%%%%%%%x2(n)%%%%%%%%%%%%%%%%%%%%
x=zeros(1,500);
x(1)=1;x(2)=1;x(3)=1;
x(9)=2;x(10)=2;x(11)=2;
x(16)=3;x(17)=3;x(18)=3;
x(24)=4;x(25)=4;x(26)=4;
x(33)=3;x(34)=3;x(35)=3;
x(41)=2;x(42)=2;x(43)=2;
x(49)=1;x(50)=1;x(51)=1;
%%%%%%%%%%%%%%x3(n)%%%%%%%%%%%%%%%%%%%%
n=1:500;
T=0.2;
x=sin(n*T);
hlp=mfilt.firdecim(2,h0);
hhp=mfilt.firdecim(2,h1);
glp=mfilt.firinterp(2,g0);
ghp=mfilt.firinterp(2,g1);
x0=filter(hlp,x);
x0=filter(glp,x0);
x1=filter(hhp,x);
x1=filter(ghp,x1);
xidle=x0+x1;
xshift=[zeros(1,N) x(1:end-N)];
e=xidle-xshift;
mes=sum(abs(e).^2)/length(e)
fvtool(h0)
%%%%%%%%%%%%输入信号%%%%%%%%%%%%%%%%%%
figure(4);
plot(x);
%%%%%%%%%%理想输出信号与重建输出信号%%%%%%%
figure(5);
axis([0,500,-1,1]);
plot(xshift,'r');hold on;
plot(xidle,'-');
axis([0,600,-1.1,1.1]);
%%%%%%%理想输出信号与重建输出信号的偏差%%%%%%
figure(6);
plot(xshift-xidle);
H 0 ( z ) H_0(z) H0(z)与 H 1 ( z ) H_1(z) H1(z)的幅度响应
![](https://tva1.sinaimg.cn/large/007S8ZIlly1gfbwjcufb1j30r80kf3zs.jpg)
可以看到,两个滤波器关于 π 2 \dfrac π 2 2π镜像对称。
幅度响应关系误差
理论上,
∣
H
1
(
e
j
w
)
∣
2
+
∣
H
0
(
e
j
(
π
+
w
)
)
∣
2
≈
1
10
log
∣
H
1
(
e
j
w
)
∣
2
+
∣
H
0
(
e
j
(
π
+
w
)
)
∣
2
≈
0
\left|H_{1}\left(e^{j w}\right)\right|^{2}+\left|H_{0}\left(e^{j(\pi+w)}\right)\right|^{2} \approx 1\\ 10 \log \left|H_{1}\left(e^{j w}\right)\right|^{2}+\left|H_{0}\left(e^{j(\pi+w)}\right)\right|^{2} \approx 0
∣∣H1(ejw)∣∣2+∣∣∣H0(ej(π+w))∣∣∣2≈110log∣∣H1(ejw)∣∣2+∣∣∣H0(ej(π+w))∣∣∣2≈0
![](https://tva1.sinaimg.cn/large/007S8ZIlly1gfbwo2tcxuj30r80kft9g.jpg)
从仿真结果中看出,误差非常小,接近于0。
输入信号与重建信号的对比
![](https://tva1.sinaimg.cn/large/007S8ZIlly1gfbwrirhuhj30r80kfwg7.jpg)
![](https://tva1.sinaimg.cn/large/007S8ZIlly1gfbwrm1v2rj30r80kfgn4.jpg)
从图形上观察,波形无幅度上的失真,仅有时间上的移位。
理想输出信号与重建输出信号的偏差
![](https://tva1.sinaimg.cn/large/007S8ZIlly1gfbwuddx7pj30r80kfaaq.jpg)
二者偏差较小,仅有 1 0 − 5 10^{-5} 10−5数量级的偏差,且从程序运行结果知,均方误差MSE仅有 4.89 × 1 0 − 11 4.89\times 10^{-11} 4.89×10−11。
H 0 H_0 H0的幅度响应
使用fvtool绘制的 H 0 H_0 H0的幅度响应曲线如图7所示。
![](https://tva1.sinaimg.cn/large/007S8ZIlly1gfbwz8k7izj31q70q5tb8.jpg)