树形结构滤波器组设计.docx
- 文档编号:4189062
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:26
- 大小:168.95KB
树形结构滤波器组设计.docx
《树形结构滤波器组设计.docx》由会员分享,可在线阅读,更多相关《树形结构滤波器组设计.docx(26页珍藏版)》请在冰豆网上搜索。
树形结构滤波器组设计
题目树形结构滤波器组设计
主要内容、基本要求、主要参考资料等:
主要内容:
滤波器组在语音、图像的子带编码和压缩中都有着广泛的应用,非均匀滤波器组还构成了Mallat多分辨分析的算法基础,在小波变换中占有重要的地位。
本设计主要内容是研究树形滤波器组的原理,并设计一个树形滤波器组,实现语音信号的分解与重构。
基本要求:
(1)滤波器组的基本原理;
(2)树形结构滤波器组的原理及设计方法;(3)设计一个8通道的树形结构滤波器组:
均匀滤波器组和非均匀滤波器组;给出设计思路及结果;(4)用设计的滤波器组对某信号进行多通道分解,验证滤波器组的性能,对结果进行分析;(5)提交课程设计报告。
主要参考资料:
1.胡广书.现代信号处理教程,数字信号处理.清华大学出版社.2005.06
2.高西全.数字信号处理.西安电子科技大学出版社.2009.01
3.matlab信号处理相关书籍,多采样率信号处理的书籍、资料。
4.相关网络资源
主要内容摘要……………………………………
一、设计方案………………………………
二、设计原理………………………………
三、设计框图…………………………
四、设计程序………………………………
五、结果图……………………………
六、结果图分析………………………………
七、结论及心得………………………………
八、参考资料………………………………
附录代码……………………………………
内容摘要:
树形结构滤波器组设计,将信源输入信息编码频带分段,便于在有限带宽信道中传输并且提高传输速率,在信宿端将信号解码恢复原始信号。
有一定的失真。
语音数据的有效编码可以提高通信系统的有效性,大大减少存储设备的容量。
子带编码是一种常用语音编码技术,子带编码中的子带分解和合成是子带编码中的重要组成部分。
使用树形结构滤波器组实现语音信号的子带分解和合并,常用的平行结构滤波器虽然也可以实现自带的分解,实现对高频成分的压缩,但不如树形结构灵活,树形结构QMFB可以实现多分辨率的信号分解与压缩,同时重建信号失真度很低。
一.设计方案
本次课程设计,分别用对称结构和非对称结构滤波器组设计,实现语音信号或别的信号3级分解8通道传输。
我组用的matlab编程实现方法。
一个语音处理系统主要包括语音信号的采集,预处理,语音信号的压缩编码,语音信号的解码,语音信号的增强,最后通过音频输出设备输出。
为了能够使采集到的语音信号能够完全恢复出来,一般信号的采样频率都是很高的,例如44100HZ,但是人耳能够识别的声音信号的频率范围在300~3400HZ,高于3400HZ的频率基本对人耳无效,因此可以滤除不予编码,同时在300~3400的频率段也有部分频率段占用很少一部分能量,可以子带分解后用较短的码长编码,以此来降低码率,而对低频部分可以通过抽取,来减少传输和处理的数据量。
在接收端可以通过插值恢复出低频信号。
本系统主要实现的关键步骤是针对语音信号的频谱设计与之相适应的树形滤波器组,在信源段首先对音频信号进行预处理滤除多余的频段,然后就是设计信源端得分析滤波器组和信宿段综合滤波器组的设计。
以以语音信号为例,这里只分析对称滤波器组的设计(非对称的自然就明白了):
将信号经过2通道正交镜像滤波器组和2-抽取器,完成信号的第一次高低分频和抽取,然后分别将分解出来的低频高频信号再次通过2通道正交镜像滤波器组和2-抽取器,实现对第一次分解出来的低频高频信号的高低分频和抽取,将分解出来的4个频段成分在经过2通道正交镜像滤波器组和2-抽取器,实现8通道,就是音频信号的需要传输或者处理的有用信号,然后对分解出来的有用信号的高低频信号分别进行插值再对应两两合并,得到4个信号再次插值,合并,得到2个信号,再次插值,合并,得到信宿端信号。
这就是信源的分解滤波器组,将音频信号分解成8通道信号,进行存储或传输等一系列处理。
期间用到的滤波器等:
1.预滤波时用到带通滤波器300~3400hz。
椭圆型带通滤波器
functiony1_yu=pre_process(y1)
Fs=8000;
fpl=300;
fpu=3400;
fsl=200;
fsu=3600;
wp=[2*fpl/Fs,2*fpu/Fs];
ws=[2*fsl/Fs,2*fsu/Fs];
rp=1;
rs=40;
[N,wpo]=ellipord(wp,ws,rp,rs);
[B,A]=ellip(N,rp,rs,wpo);
[H,w]=freqz(B,A);
y1_yu=filter(B,A,y1);
2.正交镜像滤波器组含高通和低通滤波(1/2)用于分解信号为2个一个高频一个低频、,抽取用到2级抽取downsample函数
function[y1,y2]=fenjie(x)
fs=44100;
t2=0:
1/fs:
(length(x)-1)/fs;
a1=fir1(100,1/2);窗函数长度100.3db截止频率为1/2
a2=qmf(a1);
w1=filter(a1,1,x);%低通滤波
w2=filter(a2,1,x);%高通滤波
%抽取
y1=downsample(w1,2);%抽取2
y2=downsample(w2,2);%抽取2
其中参数值子程序
求H0(Z)和G0(Z)的值
(1)H0(Z)
a1=fir1(100,1/2);
a2=qmf(a1);
figure(19)
x=0:
1:
100;
subplot(2,1,1)
stem(x,a1,'.');
subplot(2,1,2)
stem(x,a2,'.');
(2)G0(Z)
a1=fir1(100,1/2);
a2=qmf(-a1);
figure(19)
x=0:
1:
100;
subplot(2,1,1)
stem(x,a1,'.');
subplot(2,1,2)
stem(x,a2,'.');
3.插值2级用到interp函数、合并时用到求长度保持一致后相加
functiony=hebing(y1,y2,n1,n2)
%信号的零插值和低通滤波
y1=interp(y1,2);
y2=interp1(y2);
n=min(length(y1),length(y2));
y1=y1(1:
n);
y2=y2(1:
n);
%信号的合并
y=y1+y2;
其中子程序functionf=interp1(x)
%实现信号的零插值
f=interp(x,2);
fori=1:
length(x)
f(2*i)=0;
end
a1=fir1(200,1/2,'high');
f=filter(a1,1,f);
非对称滤波器组设计原理类似的(略)
二.设计原理
1、抽取和内插的基本原理
信号的M-抽取是对原始信号每隔M-1个点取一个点,组成新的采样序列。
抽取后的信号频谱发生了变化,输入信号x(n)与M—抽取后的输出信号y(n)在频域上的关系式如下:
Y(e^jw)=(打印后自己手写)
从上式可以知道,Y(ejw)是将X(ejw)扩展了M倍,幅度变为原来的1/M,在分别以2pi、4pi、6pi,···,2kpi移位叠加得到的;抽取后可能造成频谱混叠,为了避免抽取后的频谱混叠,信号X(n)的带宽必须限制在【-pi/M,pi/M】。
通常情况下可以再抽取器前进行抗混叠滤波,所谓的抗混叠滤波就是在抽取前对信号进行低通滤波,把信号的频带限制在【-pi/M,pi/M】。
信号的内插是信号抽取的逆过程,是在已知信号相邻抽样点之间插入若干个抽样值的点。
实际中的做法是在已知抽样序列之间插入若干零值,然后通过低通滤波器,几个实现内插。
其实就相当于线性插值。
L-内插输入信号x(n)与输出信号的频域关系式:
Y(ejw)=X(ejwL)
从上式我们知道,对信号的L-内插相当于对输入信号频谱的L倍压缩,内插后信号的采样周期变为原来的1/L倍。
内插不会造成频谱混叠,不会造成信号信息量的丢失,但会使整个数字信号频率轴插入L-1个原始信号的频谱,称为镜像。
因此在插值后我们可以通过一个低通滤波器,来消除内插带来的镜像,恢复出原始信号。
2、滤波器组的基本原理
滤波器组是一组拥有共同输入信号或共同输出信号的一组带通滤波器。
(系统框图如下)
M通道滤波器组的系统结构
(手绘)
信号的子带分解是通过树形结构滤波器组来实现。
本系统中有一个分析滤波器组实现对输入信号的子带分解,一个综合滤波器组完成信号的重建。
一个给定的信号经过分解滤波器组分解,然后编码、传输再通过综合滤波器组实现信号的恢复和重建。
但是恢复和重建后的信号并不能与原始信号完全相同,两者之间会产生一定的误差,主要包括:
(1)混叠失真:
由抽取和内插产生的混叠和镜像带来的误差所造成的。
(2)幅度失真:
由滤波器组幅频特性波纹产生的误差所造成的。
(3)相位失真:
由滤波器组的相频特性的非线性产生的误差所造成的。
(4)子带量化误差:
由编解码产生的误差,与量化噪声相似。
这是一种无法完全消除的误差。
完全重建滤波器组:
无混叠失真的滤波器组,同时既无幅度失真,又无相位失真。
本系统所设计的树形结构滤波器组,是由两通道的正交镜像滤波器组通过级联或并联组建而成的。
3.正交镜像滤波器组
两通道正交镜像滤波器组的系统框图如下
(手绘)
上图中可以设
H0(z)=H(z)(1.1)
H1(z)=H(-z)(1.2)
G0(z)=H(z)(1.3)
G1(z)=-H(-z)(1.4)
上式说明如果H0(z)是低通滤波器,那么H1(在)则是高通滤波器。
同时H0(ejw)与H1(ejw)关于pi/2成镜像对称,所以称这种滤波器成为正交镜像滤波器组,简称QMFB。
满足1.1式~1.4式的滤波器组称为标准QMF滤波器组,它是一种无混叠失真的滤波器组。
树形结构的滤波器组:
将两通道滤波器组的级联来实现多通道滤波器组。
具体做法就是将各通道的输出作为下一个滤波器组的输入。
这种实现方式的优点是:
可根据两通道滤波器组的特性来推断它的特性(是否能够完全重建等),通过非对称来实现多抽样率的子带分割。
两通道QMFB非对称的分析滤波器框图
(手绘)
三.设计框图
(手绘)
四.设计程序
(1)对称树形结构滤波器组设计程序(见附页)
(2)非对称树形滤波器组设计程序(见附页)
五.设计结果图
1.对称结构
原始信号和预滤波后信号的时域波形对比
原始信号和预滤波后的信号的频域对比
三次分解后高频信号和低频信号的频谱(8个)
三次分解后高频信号和低频信号的时域波形(8个)
预滤波信号与信宿端恢复出来的信号的时域对比
预滤波信号与信宿端恢复出来的信号的频域对比
正交镜像滤波器组的高频低频输出值参数
2.非对称结构
原始信号和预滤波后信号的时域波形对比
原始信号和预滤波后的信号的频域对比
预滤波信号与信宿端恢复出来的信号的时域对比
预滤波信号与信宿端恢复出来的信号的频域对比
七级非对称分解后8通道信号的频谱及时域波形
六.设计结果图分析
本系统首先对输入的信号进行预滤波,滤除频段(300~3400)以外的信号,本系统设计了一个椭圆形带通滤波器,从实验图看出,本系统设计的预滤波器完全满足系统的滤波要求,滤除了低于300HZ和高于3400HZ的频率分量,同时也没有带来相位失真。
对于非对称结构:
然后将预滤波后的信号进行3级非对称分解,得到低频信号和高频信号,从图可以看出进行三级分解后的低频信号和高频信号均扩展到整个数字频率轴,且高频信号的能量已经占到很大比重,此时已经把有用信号的频率分量已经分离出来。
从图可以看出,8通道信号能量由低频到高频,呈现由高到低完全符合声音信号的能量分布,分解效果很好。
在接受端进行信号的综合,从图可以看出综合后的高频信号频谱和低频信号频谱,通过对比可以看出,信源端分解前的信号频谱,分解后再综合信号的频谱相似度很高,符合设计的要求。
重建后信号与原始信号的时域和频域对比图,可以看出,恢复出来的信号与原始信号仅在能量上存在一定的线性失真,可以通过放大器予以恢复和重建。
最后将恢复出来的信号写入文件,在播放器上进行播放,与原始信号相比,听不出来差别,本系统完全满足设计要求。
七.设计心得
在本次课程设计中学会了好多matlab函数的使用,各种滤波器的设计,了解了正交镜像滤波器工作原理,抽样,插值的意义,用数形结构滤波器组更方便信号的传输高效性,了解了利用树形结构滤波器的工作原理,更加深了信号在信道中传输的过程。
学会了好多数字信号及matlab应用方面的知识,起初用simlink设计时对参数的设计我们遇到了瓶颈改用matlab编程设计,大大加深了matlab的广泛应用性。
期间查阅了许多资料,从网上下载了一个程序,一点也看不懂,后经过图书馆借书查,询问同学老师,解决了不少问题。
并通过对程序的更改及自己的理解,将程序改为8通道的树形结构滤波器。
本次设计做了两个结构滤波器,其实掌握了对称的结构原理,非对称的就很容易了。
另外,了解了语音信号的读取及回放用matlab实现。
了解了语音信号的3级分解抽取后经过传输后插值3级合并过程的意义。
只要用心去做多动脑子多查资料多问,其实课程设计没有起初自己想的那么难。
感谢老师给我了这次学习的机会,让我获益匪浅。
八.参考资料
1.胡广书.现代信号处理教程,数字信号处理.清华大学出版社.2005.06
2.高西全.数字信号处理.西安电子科技大学出版社.2009.01
3.Matlab7辅助信号处理技术与应用.电子工业大学出版社
4.网络
附页
程序
(1)对称结构
程序
clearall;
N=4096*8;%采集点数
[y,fs,bits]=wavread('1.wav',[20000,20000+N-1]);%读取音频信息
y1=y(:
1);
%y2=y(:
2);
t=0:
1/fs:
(N-1)/fs;%time
figure
(1);
subplot(2,2,1);
plot(t,y1);%1通道信号
title('原始信号');xlabel('t'),ylabel('幅度')
y1_yu=pre_process(y1);%语音信号预处理人耳可识别范围(300~3400),因此多于此频率的信号可以滤掉而不用传输
subplot(2,2,2);
plot(t,y1_yu);%滤波后的信号时域波形
title('预滤波后的信号波形');xlabel('t'),ylabel('幅度')
subplot(2,2,3);
y11=fft(y1,fs);
plot(abs(y11));
title('原信号的频谱');xlabel('f'),ylabel('幅度')
axis([0,44100,0,500])
subplot(2,2,4);
y1_yu1=fft(y1_yu);
plot(abs(y1_yu1));
title('预滤波后信号频谱');xlabel('f'),ylabel('幅度')
axis([0,44100,0,500])
[f1,f2]=fenjie(y1_yu,1);%1次分解
[f1_1,f1_2]=fenjie(f1,1,10);%21次分解
[f2_1,f2_2]=fenjie(f2,1,10);%22次分解
[f1_1_1,f1_1_2]=fenjie(f1_1,1,10);%31,32分解
[f1_2_1,f1_2_2]=fenjie(f1_2,1,10);%33,34分解
[f2_1_1,f2_1_2]=fenjie(f2_1,1,10);%35,36分解
[f2_2_1,f2_2_2]=fenjie(f2_2,1,10);%37,38次分解
figure
(2)
subplot(4,2,1)
n=length(f1_1_1)
t=0:
8/fs:
8.*(n-1)/fs
plot(t,f1_1_1)
title('3级第1个分解并抽取后部分');xlabel('t'),ylabel('幅度')
subplot(4,2,2)
n=length(f1_1_2)
plot(t,f1_1_2);
title('3级第2个分解并抽取后部分');xlabel('t'),ylabel('幅度')
subplot(4,2,3)
n=length(f1_2_1)
plot(t,f1_2_1)
title('3级第3个分解并抽取后部分');xlabel('t'),ylabel('幅度')
subplot(4,2,4)
n=length(f1_2_2)
plot(t,f1_2_2);
title('3级第4个分解并抽取后部分');xlabel('t'),ylabel('幅度')
subplot(4,2,5)
n=length(f2_1_1)
plot(t,f2_1_1)
title('3级第5个分解并抽取后部分');xlabel('t'),ylabel('幅度')
subplot(4,2,6)
n=length(f2_1_2)
plot(t,f2_1_2);
title('3级第6个分解并抽取后部分');xlabel('t'),ylabel('幅度')
subplot(4,2,7)
n=length(f2_2_1)
plot(t,f2_2_1)
title('3级第7个分解并抽取后部分');xlabel('t'),ylabel('幅度')
subplot(4,2,8)
n=length(f2_2_2)
plot(t,f2_2_2);
title('3级第8个分解并抽取后部分');xlabel('t'),ylabel('幅度')
figure(3)
f1111=fft(f1_1_1,fs);
subplot(4,2,1)
plot(abs(f1111))
title('3级第1个分解并抽取后部分频谱');xlabel('f'),ylabel('幅度')
f1112=fft(f1_1_2,fs);
subplot(4,2,2)
plot(abs(f1112))
title('3级第2个分解并抽取后部分频谱');xlabel('f'),ylabel('幅度')
f1113=fft(f1_2_1,fs);
subplot(4,2,3)
plot(abs(f1113))
title('3级第3个分解并抽取后部分频谱');xlabel('f'),ylabel('幅度')
f1114=fft(f1_2_2,fs);
subplot(4,2,4)
plot(abs(f1114))
title('3级第4个分解并抽取后部分频谱');xlabel('f'),ylabel('幅度')
f1115=fft(f2_1_1,fs);
subplot(4,2,5)
plot(abs(f1115))
title('3级第5个分解并抽取后部分频谱');xlabel('f'),ylabel('幅度')
f1116=fft(f2_1_2,fs);
subplot(4,2,6)
plot(abs(f1116))
title('3级第6个分解并抽取后部分频谱');xlabel('f'),ylabel('幅度')
f1117=fft(f2_2_1,fs);
subplot(4,2,7)
plot(abs(f1117))
title('3级第7个分解并抽取后部分频谱');xlabel('f'),ylabel('幅度')
f1118=fft(f2_2_2,fs);
subplot(4,2,8)
plot(abs(f1118))
title('3级第8个分解并抽取后部分频谱');xlabel('f'),ylabel('幅度')
yo=hebing8(f1_1_1,f1_1_2,f1_2_1,f1_2_2,f2_1_1,f2_1_2,f2_2_1,f2_2_2);
figure(4);%合成后的信号与原来预滤波后的信号对比
subplot(4,1,1);t=0:
1/fs:
(N-1)/fs;
plot(t,y1_yu);
title('预滤波后的信号');xlabel('t'),ylabel('幅度')
subplot(4,1,3);n=length(yo);t=0:
1/fs:
(n-1)/fs;
plot(t,yo);
title('信宿端恢复信号');xlabel('t'),ylabel('幅度')
subplot(4,1,4)
yo1=fft(yo,fs)
plot(abs(yo1));
title('信宿恢复信号频谱');xlabel('f'),ylabel('幅度')
subplot(4,1,2)
y1_yu1=fft(y1_yu);
plot(abs(y1_yu1));
title('预滤波后信号频谱');xlabel('f'),ylabel('幅度')
wavwrite(yo,fs,'3.wav');
子程序
%树形结构分解子程序(完成信号的2通道分解以及降采样率)
function[y1,y2]=fenjie(x,n1,n2,fp)
fs=44100;
t2=0:
1/fs:
(length(x)-1)/fs;
a1=fir1(100,1/2);
a2=qmf(a1);
w1=filter(a1,1,x);%低通滤波
w2=filter(a2,1,x);%高通滤波
%抽取
y1=downsample(w1,2);%抽取2
y2=downsample(w2,2);%抽取2
functionf=hebing8(y1_1_1,y1_1_2,y1_2_1,y1_2_2,y2_1_1,y2_1_2,y2_2_1,y2_2_2)
%信号的3次合并
y1_1=hebing(y1_1_1,y1_1_2,1,10);
y1_2=hebing(y1_2_1,y1_2_2,1,10);
y2_1=hebing(y2_1_1,y2_1_2,1,10);
y2_2=hebing(y2_2_1,y2_2_2,1,10);
%信号的2次合并
y1=hebing(y1_1,y1_2,1,10);
y2=hebing(y2_1,y2_2,1,10);
%信号的1次合并
f=hebing(y1,y2,1,10);
%树形结构综合子程序(完成2通道信号的综合)
functiony=hebing(y1,y2,n1,n2)
%信号的零插值和低通滤波
y1=interp(y1,2);
y2=interp1(y2);
n=min(length(y1),length(y2));
y1=y1(1:
n);
y2=y2(1:
n);
%信号的合并
y=y1+y2;
%信号插值子程序(完成信号的零插值和高通滤波)
functionf=interp1(x)
%实现信号的零插值
f=interp(x,2);
fori=1:
length(x)
f(2*i)=0;
end
a1=fir1(200,1/2,'high');
f=filter(a1,1,f);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 树形 结构 滤波器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)