数字信号处理综合报告数字音频信号的分析与处理.docx
《数字信号处理综合报告数字音频信号的分析与处理.docx》由会员分享,可在线阅读,更多相关《数字信号处理综合报告数字音频信号的分析与处理.docx(17页珍藏版)》请在冰豆网上搜索。
数字信号处理综合报告数字音频信号的分析与处理
数字信号处理综合报告--数字音频信号的分析与处理
级联系统的系统函数为
宁可瑞滤波器(Linkwitz-Riley),由两个巴特沃斯滤波器级联而成。
N阶巴特沃夫滤波器等效宁可瑞滤波器的设计
为了使设计的IIR滤波器方便在DSP上实现,常将滤波器转换为二阶节级联的形式。
设计好分频器后,为验证分频后的信号是否正确,可用白噪声信号作为输入信号,然后对分频后的信号进行频谱分析。
三、仪器设备
1.硬件:
计算机一台,耳机。
2.软件:
MATLABR2010b
四、实验步骤
任意选择两种类型的IIR数字滤波器,设计一个二分频的数字分频器,已知系统的采样率为48000Hz。
(1)分频点为2000Hz;
(2)要求给出类似图8.3的幅频特性图,分频器的幅频响应平坦,在分频点处最多不能超过3dB的偏差;
(3)滤波器必须是二阶节形式;
(4)给出相位特性图;
(5)用频谱分析的方法验证设计好的分频器;
(6)对选用的两种类型的滤波器效果进行对比。
滤波器设计的基本步骤:
五、数据记录
我选择要设计的合成滤波器为ButterWorthIIR滤波器和Linkwitz-RileyIIR滤波器。
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');
holdon;
[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');
holdon;
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([10020000-4010]);
holdon
gridon
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%分析巴特沃斯滤波器及其设计的分频器的幅频特性、零极点分布
%巴特沃斯低通
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('宁可瑞低通滤波器的零极点分布')
[HL1,wL1]=freqz(BL1,AL1);
subplot(2,2,2);plot(wL1/pi,abs(HL1));
title('宁可瑞低通滤波器的幅度特性')
xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');
subplot(2,2,4);plot(wL1/pi,angle(HL));
xlabel('\omega/\pi');ylabel('\phi(\omega)');
title('宁可瑞低通滤波器的相频特性')
%宁可瑞高通
subplot(2,2,1);zplane(BH1,AH1);
title('宁可瑞高通滤波器的零极点分布')
[HH1,wH1]=freqz(BH1,AH1);
subplot(2,2,2);plot(wH1/pi,abs(HH1));
title('宁可瑞高通滤波器的幅度特性')
xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');
subplot(2,2,4);plot(wH1/pi,angle(HH1));
xlabel('\omega/\pi');ylabel('\phi(\omega)');
title('宁可瑞高通滤波器的相频特性')
%设计的分频器
subplot(2,2,1);zplane(B1,A1);
title('分频器的零极点分布')
[H1,w1]=freqz(B1,A1);
subplot(2,2,2);plot(w1/pi,abs(H1));
xlabel('\omega/\pi');ylabel('|H(e^j^\omega)|');
title('分频器的幅度特性')
subplot(2,2,4);plot(w1/pi,angle(H));
xlabel('\omega/\pi');ylabel('\phi(\omega)');
title('分频器的相频特性')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%滤波效果验证
%巴特沃斯设计的分频器滤波效果
[hB,g]=tf2sos(B,A)%调用函数tf2sos,将巴特沃斯滤波器设计的分频器转换成二阶节形式
[xB,fs,bits]=wavread('E:
\white.wav');
X=fft(xB,1024);
fori=1:
size(hB)
xB=filter(hB(i,1:
3),hB(i,4:
6),xB);%二阶节级联形式对白噪声进行滤波处理
end
wavwrite(xB,fs,bits,'e:
\巴特沃斯设计的分频器滤波后信号.wav')%将滤波后的噪声保存
YB=fft(xB,1024);
k=0:
1023;
N=1024;
wk=2*k/N;
subplot(211);plot(wk,abs(X));xlabel('\omega/\pi');title('原始白噪声信号频谱')
subplot(212);plot(wk,abs(YB));xlabel('\omega/\pi');title('巴特沃斯设计的分频器滤波后信号频谱')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[hL,gL=tf2sos(B1,A1)%调用函数tf2sos,将宁可瑞滤波器设计的分频器转换成二阶节形式
[xL,fs,bits]=wavread('E:
\white.wav');
X=fft(xL,1024);
fori=1:
size(hL)
xL=filter(hL(i,1:
3),hL(i,4:
6),xL);%二阶节级联形式对白噪声进行滤波处理
end
wavwrite(xL,fs,bits,'e:
\宁可瑞设计的分频器滤波后信号.wav')%将滤波后的噪声保存
YL=fft(xL,1024);
k=0:
1023;
N=1024;
wk=2*k/N;
subplot(211);plot(wk,abs(X));xlabel('\omega/\pi');t