1、利用脉冲响应不变法设计切比雪夫I型IIR滤波器语音信号滤波去噪脉冲响应不变法设计的并联型切比雪夫I型滤波器学生姓名: 指导教师: 摘 要 本课程设计要紧内容是利用脉冲响应不变法设计的并联型切比雪夫I型IIR滤波器,对一段含噪语音信号进行滤波去噪处置并依照滤波前后的波形和频谱分析滤波性能。本课程设计仿真平台为,开发工具是M语言编程。第一利用录音工具录制一段语音信号,并人为加入一单频噪声,然后对信号进行频谱分析以确信所加噪声频率,并设计滤波器进行滤波去噪处置,最后比较滤波前后的波形和频谱并进行分析。由分析结果可知,滤波器后的语音信号与原始信号大体一致,即设计的切比雪夫I型IIR滤波器能够去除信号中
2、所加单频噪声,达到了设计目的。 关键词 滤波去噪;脉冲响应不变法;切比雪夫I型;IIR滤波器;MATLAB 1 引 言本课程设计要紧解决在含噪情形下对语音信号的滤波去噪处置,处置时采纳的是利用脉冲响应不变法设计的切比雪夫I型IIR滤波器。 课程设计目的(1)熟悉利用MATLAB语言来解决一些简单的课程问题。(2)锻炼动手能力及独立试探并解决问题的能力(3)增加对书本知识的明白得和把握,如:IIR滤波器的工作原理,切比雪夫滤波器的设计,脉冲响应法的应用等等;(4)对录制好的音频行加噪和过滤,比较前后语音转变; 课程设计内容(1)利用录音软件;录制一段语音信号,要求为PCM编码格式 单声道8K 8
3、位 7k/s的语音信号,绘制波形并观看频谱特点;(2)加上噪声并绘制加噪信号波形及观看其频谱特点;(3)设计滤波器,绘制出滤波器的频谱并查验滤波器是不是合格;(4)最后利用设计好的滤波器对噪声信号进项过滤,绘制过滤后的波形及观看滤波前后频谱转变;(5)绘制滤波器的并联型结构图;2 设计原理录制一段语音信号,绘制波形并观看其频谱,给定相应技术指标,用脉冲响应不变法设计的一个知足指标的切比雪夫I 型IIR滤波器,对该语音信号进行滤波去噪处置,比较滤波前后的波形和频谱并进行分析。 IIR滤波器IIR滤波器具有无穷长脉冲响应,一样来讲,所有的模拟滤波器都有无穷长脉冲响应。因此,IIR滤波器设计的大体方
4、式是利用复值映射将大伙儿熟知的模拟滤波器变换为数字滤波器。这种IIR滤波器设计的大体方式存在途径之一2如下:实行滤波器变换SZ实行频带变换 S S设计模拟低通滤波器 期望的IIR滤波器 切比雪夫I型滤波器切比雪夫I型滤波器是电子滤波器的一种。它的特点是在通带具有等波纹响应。其振幅平方函数如2-1式所示: (2-1)式中,N为整数,称为滤波器的阶,是通带波纹因子(它与Rp有关)。其中N阶切比雪夫多项式如2-2式所示: (2-2)其中 切比雪夫滤波器存在两种可能的幅度平方响应的形状,当N别离为基数和偶数时如图2-1所示:图2-2 切比雪夫I型滤波器的幅度特性 脉冲响应不变法脉冲响应不变法是一种将模
5、拟滤波器转化为数字滤波器的大体方式。它通过对模拟滤波器的单位冲激响应h(t)等距离抽样来获取对应数字滤波器的单位脉冲响应hk,即hk=h(t)|t=kT =h(kT),其中T是等距离抽样。不失一样性地,假定持续时刻滤波器的系统函数为: (2-3)所对应的时域脉冲响应是: (2-4)对Tdhc(t)采样取得的离散时刻滤波器的脉冲响应是: (2-5)离散时刻滤波器的系统函数为: (2-6)3 设计步骤语音信号滤波去噪利用脉冲响应不变法设计的并联型切比雪夫IIR滤波器,设计流程如以下图:图3-1 步骤图 录制语音信号利用录音软件(如以下图3-2)录制PCM编码格式 单声道8K 8位 7k/s的语音信
6、号,语音内容不限;图3-2 录制语音信号软件界面 绘制语音信号波形图利用MATLAB软件,将语音信号放到MATLAB的工作目录中;利用 x,=wavread()函数读入语音信号;源程序如下:x,fs,bits=wavread(); % 输入参数为文件的全途径和文件名,输出的第一个参数是每一个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样本的编码位数。sound(x,fs,bits); % 按指定的采样率和每样本编码位数回放N=length(x); % 计算信号x的长度t=0:1/fs:(N-1)/fs; % 计算时刻范围,样本数除以采样频率x=x; X=abs(fft(x);
7、 % 对原始信号和加噪信号进行fft变换,取幅度谱X=X(1:N/2); % 截取前半部份deltaf=fs/N; % 计算频谱的谱线距离f=0:deltaf:fs/2-deltaf; % 计算频谱频率范围绘制的波形图如下:图3-3 原始语音信号的频谱图 绘制加噪后信号波形图在原始语音信号上加入单频干扰信号,fn=3000Hz,其源程序如下:x,fs,bits=wavread(); % 输入参数为文件的全途径和文件名,输出的第一个参数是每一个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样本的编码位数。sound(x,fs,bits); % 按指定的采样率和每样本编码位数回放N
8、=length(x); % 计算信号x的长度fn=2000; % 单频噪声频率,此参数可改t=0:1/fs:(N-1)/fs; % 计算时刻范围,样本数除以采样频率x=x; y=x+*sin(fn*2*pi*t); sound(y,fs,bits); % 应该能够明显听出有尖锐的单频啸叫声X=abs(fft(x); Y=abs(fft(y); % 对原始信号加噪信号进行fft变换,取幅度谱X=X(1:N/2); Y=Y(1:N/2); % 截取前半部份deltaf=fs/N; % 计算频谱的谱线距离f=0:deltaf:fs/2-deltaf; % 计算频谱频率范围绘制的频谱波形如以下图3-4
9、:通过频谱图能够直观的看到,在3000Hz处有尖锐的单峰,与干扰频率一直;通过sound(y,fs,bits)回放该录音,能够明显的听到尖锐的单频噪鸣声;图3-4 加入噪声后的频谱对照图 滤波器设计将数字滤波器的设计指标设为通带截止频率fn=3000,fp=fn-200=2800Hz,阻带频率fc=fn-50=2950HZ,通带波纹Rp=1,阻带波纹As=16dB;滤波器设计源程序如下:fs=8000;fn=3000;fp=fn-200;fc=fn-50; %概念通带和阻带截止频率Rp=1;As=16; % 概念通带波纹和阻带衰减 wp=(fp/fs)*2*pi; ws=(fc/fs)*2*p
10、i; %计算对应的数字频率T=1; %概念采样距离OmegaP=wp/T;OmegaS=ws/T; %截止频率线性变换Ripple=10(-Rp/20);Attn=10(-As/20); %转化为绝对形式cs,ds=afd_chb1(OmegaP,OmegaS,Rp,As); %计算滤波器阶数和截止频率b,a=imp_invr(cs,ds,T); % 脉冲响应不变法取得滤波器系统函数分子分母系数db,mag,pha,grd,w=freqz_m(b,a); %验证滤波器是不是达到指定性能delta=1,zeros(1,99); ha=filter(b,a,delta); %计算脉冲响应运行程序取
11、得的滤波器响应图如下:图3-5 滤波器响应图在命令行别离输入wp/pi,ws/pi验证滤波器是不是知足设计标准: wp/pians = ws/pians = 对噪声信号进行滤波,观看前后频谱转变利用设计好的滤波器对噪声信号进行过滤,其源程序如下:y_fil=filter(b,a,y); % IIR滤波器对信号y进行滤波处置,其中b,a为上面设计好的滤波器参数。Y_fil=abs(fft(y_fil); % 对fft变换,取幅度谱Y_fil=Y_fil(1:N/2); % 截取前半部份 sound(y_fil,fs,bits);程序运行结果如以下图:图3-6 语音信号频谱分析图 由图3-6能够看
12、出频率3000Hz被过滤掉,3000Hz处的单频尖峰噪声幅度明显减弱,利用sound(y_fil,fs,bits)函数播放过滤后的语音,能够听出过滤前后的语音转变,说明滤波器设计大体符合性能要求。 绘制滤波器的并联型结构图设计完成滤波器后在窗体命令行输入C,B,A=dir2par(b,a)能够得出并联型结构的系数C B A,如以下图所示:图3-7 并联型结构系数图依照并联型结构系数和滤波器阶数能够画出滤波器的结构图如下:图3-8 滤波器并联型结构图4 异样处置(1)录制语音信号的时候不了解音频的编码方式的区别,因此最初录制的语音信号不能知足课设要求,后来利用步骤中的录音软件解决了问题。(2)由
13、于对MATLAB利用能力有限,在语音信号加噪时出了错,频谱图中没有显现单频噪声尖峰;然后通过网上搜索资料,并在同窗的帮忙下成功的显示了正确的频谱图;(3)在利用脉冲响应不变法设计切比雪夫滤波器时得不到理想的滤波器,把通带截止频率与阻带截止频率之间的差值设置的过小或太大,通过适当的调整参数,绘制出来的图像成效比较明显,大体符合设计指标。通过不断调整As,最后取As=16dB,如此通过MATLAB运算出来的滤波器的阻带波纹达到要求;(4)在设计切比雪夫I型IIR滤波器进程中,程序运行报错:Undefined command/afd_chb1,刚开始不明白怎么回事儿,后来教师告知我此错误的缘故在于没
14、有将自编挪用函数放进MATLAB的函数挪用库中,将挪用函数afd_chb1编写放入MATLAB的work文件夹后,问题就解决了;5 终止语课程设计的尘嚣渐渐远去,怀着些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的迷恋,怀着通过这次课程设计积存的信心与斗志,我开始写下了这份终止语,为自己的足迹留下哪怕是微乎其微可是对自己弥足宝贵的痕迹并期望与大伙儿共勉。这次课程设计给我留下了太多经历深刻的东西,学到了很多讲义上学不到的知识。第一,我能够运用MATLAB,数字信号处置教程等学科所学的知识,并结合网络,图书馆搜集到的各类各样的材料,进行分析,比较,取舍,对讲义知识有了一个深切的了解,这对我的
15、学业生涯是大有裨益的。第二,这次课程设计使我有了一次通过理论联系实际,来解决实际问题的经历,它培育了自己分析问题,解决问题的能力,和上网检索信息的能力;而且在和同窗或教师的交流中我体会到了团队的意义,和探讨未知学问的乐趣。其实学到的知识实际上是次要的,重要的是咱们探讨知识的进程,那个进程即是一个人自主学习能力的表现,它将阻碍着我尔后的进展。最后,这次的课程设计也激发了我对通行工程本专业的爱好。曾经我对咱们通信工程专业是一片迷茫,可是通过这次课程设计,通过亲自体验语音信号的加噪过滤进程,我似乎隐约了解了一些咱们同形词专业的以后的进展方向。这种感悟,这种爱好的来源只靠平常上课教师的说教是确信不可能
16、领会到的。参考文献1 程佩青.数字信号处置教程M北京:清华大学出版社,20212 (美)维纳K英格尔 ,(美)约翰G普罗克斯(著).刘树棠(译).数字信号处置(MATLAB版).第2版.西安:西安交通大学出版社,20203 张威. MATLAB基础与编程入门M.西安:西安电子科技大学出版社 2020附录1:语音信号滤波去噪设计源程序清单% 程序名称:% 程序功能:语音信号去噪利用脉冲响应不变法设计并联型切比雪夫I型滤波器% 程序作者:% 最后修改日期:x,fs,bits=wavread(); % 输入参数为文件的全途径和文件名,输出的第一个参数是每一个样本的值,fs是生成该波形文件时的采样率,
17、bits是波形文件每样本的编码位数。sound(x,fs,bits); % 按指定的采样率和每样本编码位数回放N=length(x); % 计算信号x的长度fn=2000; % 单频噪声频率,此参数可改t=0:1/fs:(N-1)/fs; % 计算时刻范围,样本数除以采样频率x=x; y=x+*sin(fn*2*pi*t); sound(y,fs,bits); % 应该能够明显听出有尖锐的单频啸叫声X=abs(fft(x); Y=abs(fft(y); % 对原始信号和加噪信号进行fft变换,取幅度谱X=X(1:N/2); Y=Y(1:N/2); % 截取前半部份deltaf=fs/N; %
18、计算频谱的谱线距离f=0:deltaf:fs/2-deltaf; % 计算频谱频率范围subplot(2,2,1);plot(t,x);title(原始信号);xlabel(时刻/s);ylabel(幅度);axis(0,-1,1);grid onsubplot(2,2,2);plot(f,X);title(语音信号幅度谱);xlabel(频率,单位/Hz);ylabel(幅度谱);grid onsubplot(2,2,3);plot(t,y);title(加入一个单频信号的语音信号);xlabel(时刻,单位/s);ylabel(幅度);axis(0,);grid onsubplot(2,2
19、,4);plot(f,Y);title(加入一个单频信号的语音信号幅度谱);xlabel(频率,单位/Hz);ylabel(幅度谱);axis(0,4000,0,800);grid onfs=8000;fn=3000;fp=fn-200;fc=fn-50; %概念通带和阻带截止频率Rp=1;As=16; % 概念通带波纹和阻带衰减wp=fp/fs*2*pi;ws=fc/fs*2*pi; %计算对应的数字频率 T=1; %概念采样距离OmegaP=wp/T; OmegaS=ws/T; %截止频率线性变换Ripple=10(-Rp/20);Attn=10(-As/20); %转化为绝对形式cs,d
20、s=afd_chb1(OmegaP,OmegaS,Rp,As); %计算滤波器阶数和截止频率b,a=imp_invr(cs,ds,T);% 脉冲响应不变法取得数字滤波器系统函数分子分母系数db,mag,pha,grd,w=freqz_m(b,a); %验证滤波器是不是达到指定性能delta=1,zeros(1,99);ha=filter(b,a,delta);%计算脉冲响应Subplot(221);plot(w/pi,db)%画出滤波器的幅度响应图xlabel(w/pi);ylabel(dB);title(滤波器幅度响应图)Subplot(222);plot(w/pi,mag)%画出滤波器幅度
21、响应图xlabel(w/pi);ylabel(幅度mag);title(滤波器幅度响应)Subplot(223);plot(w/pi,pha)%画出滤波器的相位响应图xlabel(w/pi);ylabel(相位pha);title(滤波器相位响应)Subplot(224);plot(ha)%画出滤波器的脉冲响应图xlabel(n);ylabel(h(n);title(滤波器脉冲响应) y_fil=filter(b,a,y); % IIR滤波器对信号y进行滤波处置,其中b,a为上面设计好的滤波器参数。Y_fil=abs(fft(y_fil); % 对fft变换,取幅度谱Y_fil=Y_fil(1
22、:N/2); % 截取前半部份 figure;subplot(3,2,1);plot(t,x);xlabel(时刻t);ylabel(幅度); title(原始语音信号);axis(0,-1,1);grid on;subplot(3,2,2);plot(f,X);xlabel(频率f);ylabel(幅度);title(原始语音信号幅度谱);axis(0,4000,0,300);grid on;subplot(3,2,3);plot(t,y);xlabel(时刻t);ylabel(幅度);title(加干扰后的语音信号);axis(0,-1,1);grid on;subplot(3,2,4);
23、plot(f,Y);xlabel(频率f);ylabel(幅度);title(加干扰后的语音信号幅度谱);axis(0,4000,0,300);grid on;subplot(3,2,5);plot(t,y_fil);xlabel(时刻t);ylabel(幅度); title(滤波后语音信号时刻y);axis(0,-1,1);grid on;subplot(3,2,6);plot(f,Y_fil);xlabel(频率f);ylabel(幅度);title(滤波后语音信号幅度谱Y);axis(0,4000,0,300);grid on;sound(y_fil,fs,bits);C,B,A=dir2par(b,a)
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2