数字信号综合实验八

  • 格式:doc
  • 大小:217.50 KB
  • 文档页数:14

数字信号处理实验 题 目 数字音频信号的分析与处理 班 级 电子111班 姓 名 陈述创 学 号 1107400113 日 期 2014.06.13-2013.06.20 一、实验目的 1.复习巩固数字信号处理的基本理论; 2.利用所学知识研究并设计工程应用方案。

二、实验原理 数字信号处理技术在音频信号处理中的应用日益增多,其灵活方便的优点得到体现。分频器即为其中一种音频工程中常用的设备。 人耳能听到的声音频率范围为20Hz~20000Hz,但由于技术所限,扬声器难以做到在此频率范围内都有很好的特性,因此一般采用两个以上的扬声器来组成一个系统,不同的扬声器播放不同频带的声音,将声音分成不同频带的设备就是分频器。下图是一个二分频的示例。

图8.1 二分频示意图 高通滤波器和低通滤波器可以是FIR或IIR类型,其中FIR易做到线性相位,但阶数太高, 不仅需要耗费较多资源,且会带来较长的延时;IIR阶数低,但易出现相位失真及稳定性问题。 对分频器的特性,考虑最多的还是两个滤波器合成的幅度特性,希望其是平坦的,如图8.2所示:

图8.2 分频器幅度特性

分频器 低频放大器 高频放大器

声音 输入

High-pass

Low-pass 由于IIR的延时短,因此目前工程中大量应用的还是Butterworth、Bessel、Linkwitz-Riley三种IIR滤波器。其幅频特性如图8.3所示:

图8.3 三种常用IIR分频器的幅度特性 巴特沃斯、切比雪夫、椭圆等类型的数字滤波器系数可通过调用MATLAB函数很方便的计算得到,但Bessel、Linkwitz-Riley数字滤波器均无现成的Matlab函数。 并联系统的系统函数为

级联系统的系统函数为 宁可瑞滤波器(Linkwitz-Riley),由两个巴特沃斯滤波器级联而成。 N阶巴特沃夫滤波器等效宁可瑞滤波器的设计

lhhllh

()()()()()()()()()()()()()()()B=conv(B,A)+conv(B,A)A=conv(A,A)lhlhlhlhhllhBzBzHzHzHzAzAzBzAzBzAzBzAzAzAz





1212

12

l212

()()()()()()()()()B=conv(B,B)A=conv(A,A)BzBzBz

HzHzHzAzAzAz



 为了使设计的IIR滤波器方便在DSP上实现,常将滤波器转换为二阶节级联的形式。 设计好分频器后,为验证分频后的信号是否正确,可用白噪声信号作为输入信号,然后对分频后的信号进行频谱分析。

三、仪器设备 1.硬件:计算机一台,耳机。 2.软件:MATLAB R2010b

四、实验步骤 任意选择两种类型的IIR数字滤波器,设计一个二分频的数字分频器,已知系统的采样率为48000Hz。 (1)分频点为2000Hz; (2)要求给出类似图8.3的幅频特性图,分频器的幅频响应平坦,在分频点处最多不能超过3dB的偏差; (3)滤波器必须是二阶节形式; (4)给出相位特性图; (5)用频谱分析的方法验证设计好的分频器; (6)对选用的两种类型的滤波器效果进行对比。 滤波器设计的基本步骤:

五、数据记录 我选择要设计的合成滤波器为ButterWorth IIR滤波器和Linkwitz-Riley IIR滤波器。

B(z)/A(z) (N/2阶) B(z)/A(z)

(N/2阶)

x(n) y(n)

根据分频点要求初始化参数(截止频率、滤波器阶数N) 调用MATLAB函数设计滤波器(如[B,A] = butter(N,wc)) 评估滤波器性能([magH,w]=freqz(B,A)) 1.设计程序 设计程序如下:(以4阶巴特沃斯滤波器、宁可瑞滤波器设计的分频器程序为例(分频器阶数为8阶)) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%设计分频器 clear;clc; fs = 48000;%采样频率为48000Hz fc = 2000;%分频点为2000Hz wc = 2 * fc / fs; N = 4; %滤波器阶数,分频器阶数为2*N [BL,AL] = butter(N,wc); %计算巴特沃思低通滤波器系统函数B,A系数 [BH,AH] = butter(N,wc,'high'); %计算巴特沃思高通滤波器系统函数B,A系数 [magHH,w]=freqz(BH,AH);%计算巴特沃思高通滤波器幅频特性 magHH=20*log10(abs(magHH)); f=w*fs/(2*pi);%把数字频率w转换为模拟频率f [BL1,AL1] = butter(N/2,wc); [BH1,AH1] = butter(N/2,wc,'high'); BL1=conv(BL1,BL1); %计算宁可瑞低通滤波器系统函数B,A系数 AL1 = conv(AL1,AL1); BH1=conv(BH1,BH1);%计算宁可瑞高通滤波器系统函数B,A系数 AH1 = conv(AH1,AH1); [magHH1,w1]=freqz(BH1,AH1);%计算宁可瑞高通滤波器幅频特性 magHH1=20*log10(abs(magHH1)); f1=w1*fs/(2*pi); semilogx(f,magHH,'-.r',f1,magHH1,'b'); hold on; [magHL,w]=freqz(BL,AL);%计算巴特沃思低通滤波器幅频特性 magHL=20*log10(abs(magHL)); f=w*fs/(2*pi); [magHL1,w1]=freqz(BL1,AL1);%计算宁可瑞低通滤波器幅频特性 magHL1=20*log10(abs(magHL1)); f1=w1*fs/(2*pi); semilogx(f,magHL,'-.r',f1,magHL1,'b'); hold on; B=conv(BL,AH)+conv(BH,AL); %计算巴特沃思滤波器并联系统的系统函数 A=conv(AL,AH); [magH,w]=freqz(B,A); %计算巴特沃思滤波器并联系统幅频特性 magH=20*log10(abs(magH)); f=w*fs/(2*pi); B1=conv(BL1,AH1)+conv(BH1,AL1); %计算宁可瑞滤波器并联系统的系统函数 A1=conv(AL1,AH1); [magH1,w1]=freqz(B1,A1); %计算宁可瑞滤波器并联系统幅频特性 magH1=20*log10(abs(magH1)); f1=w1*fs/(2*pi); semilogx(f,magH,'-.r',f1,magH1,'b'); legend('巴特沃斯滤波器','宁可瑞滤波器'); title('IIR分频器的幅度特性'); axis([100 20000 -40 10]); hold on grid on %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %分析巴特沃斯滤波器及其设计的分频器的幅频特性、零极点分布 %巴特沃斯低通 subplot(2,2,1);zplane(BL,AL); title('巴特沃斯低通滤波器的零极点分布') [HL,wL]=freqz(BL,AL); subplot(2,2,2);plot(wL/pi,abs(HL)); title('巴特沃斯低通滤波器的幅度特性') xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|'); subplot(2,2,4);plot(wL/pi,angle(HL)); xlabel('\omega/\pi');ylabel('\phi(\omega)'); title('巴特沃斯低通滤波器的相频特性') %巴特沃斯高通 subplot(2,2,1);zplane(BH,AH); title('巴特沃斯高通滤波器的零极点分布') [HH,wH]=freqz(BH,AH); subplot(2,2,2);plot(wH/pi,abs(HH)); title('巴特沃斯高通滤波器的幅度特性') xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|'); subplot(2,2,4);plot(wH/pi,angle(HH)); xlabel('\omega/\pi');ylabel('\phi(\omega)'); title('巴特沃斯高通滤波器的相频特性') %设计的分频器 subplot(2,2,1);zplane(B,A); title('分频器的零极点分布') [H,w]=freqz(B,A); subplot(2,2,2);plot(w/pi,abs(H)); xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|'); title('分频器的幅度特性') subplot(2,2,4);plot(w/pi,angle(H)); xlabel('\omega/\pi');ylabel('\phi(\omega)'); title('分频器的相频特性') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %分析宁可瑞滤波器及其设计的分频器的幅频特性、零极点分布 %宁可瑞低通 subplot(2,2,1);zplane(BL1,AL1); title('宁可瑞低通滤波器的零极点分布')