最新基于IIR数字滤波器的有噪语音信号的处理课程设计论文.docx
- 文档编号:24384147
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:24
- 大小:108.67KB
最新基于IIR数字滤波器的有噪语音信号的处理课程设计论文.docx
《最新基于IIR数字滤波器的有噪语音信号的处理课程设计论文.docx》由会员分享,可在线阅读,更多相关《最新基于IIR数字滤波器的有噪语音信号的处理课程设计论文.docx(24页珍藏版)》请在冰豆网上搜索。
最新基于IIR数字滤波器的有噪语音信号的处理课程设计论文
I=I-2
ifa 性别L1用.T.表示男生,.F.表示女生 __________ 51.插入一条记录到“选课”表中,学号、课程号和成绩分别是“********”、“103”和80,正确的SQL语句是________。 max2=c *如下为主程序main.prg C.USE<数据库名>D.USEDATABASE<数据库名> 【答案】AVG(工资),GROUPBY职称 36.网络安全面临的威胁主要有哪些。 (6分) 课程设计(论文) 题目基于IIR数字滤波器的有噪语音信号的处理 课程设计(论文)任务书 学院: 电气工程学院 题目: 基于IIR数字滤波器的有噪语音信号的处理 起止时间: 2016年10月25日至16年11月20日 学生姓名: 专业班级: 指导教师: 教研室主任: 院长: 2016年11月20日 论文(设计)内容及要求: 一、课程设计(论文)原始依据 在信号传输过程中,由于实验条件或各种其他主观或客观条件的原因,不可避免的会引进一些噪声信号,因此‘除噪’成了研究信号传输过程中必不可少的一环。 基于MATLAB的有噪语音信号处理,通过MATLAB强大的数据运算能力,可以极大程度上消弱噪声影响,还原出真实的语音信号。 二、课程设计(论文)主要内容 课程设计内容如下: 三、课程设计(论文)基本要求 (1)技术要求: 编制Matlab程序,完成以下功能,产生系统输入信号;根据系统差分方程求解单位脉冲响应序列;根据输入信号求解输出响应;用实验方法检查系统是否稳定;绘制相关信号的波形。 (2)工作要求: ●简述离散系统时域分析和判断系统稳定性方法; ●完成所给设计实验,并对结果进行分析和解释; ●打印程序清单和要求画出的信号波形; ●写出本次课程设计的收获和体会; ●列出参考文献。 四、课程设计(论文)进度安排 课程设计进度(时间)安排如下: 1.2016年10月25日—2016年10月31日理解课程设计题目的设计要求,查阅相关资料; 2.2016年11月1日—2016年11月8日完成各部分程序代码及系统调试; 3.2016年11月9日—2016年12月11日完成课程设计初稿; 4.2016年11月12日—2016年11月24日完成完整的课程设计报告; 5.2016年11月20日上交课程设计作品并答辩。 五、主要参考文献 [1].高西全,丁玉美.数字信号处理[M].北京: 西安电子科技大学出版社,2008 [2].刘泉,阙大顺.数字信号处理原理与实现[M].北京: 电子工业出版社,2005 [3].张磊,毕靖,郭莲英.MATLAB实用教程[M].北京: 人民邮电出版社,2008 [4].张威.MATLAB基础与编程入门[M].西安: 西安电子科技大学出版社,2006 [5].周利清,苏菲.数字信号处理基础[M].北京: 北京邮电大学出版社,2005 指导老师: (签名) 年月日 摘要: 滤波器设计在数字信号处理中占有极其重要的地位,IIR滤波器是滤波器设计的重要组成部分。 课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域,频域分析和滤波。 通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现。 在设计实现的过程中,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB作为辅助工具完成设计中的计算与图形的绘制。 通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具处理工具箱可以有效快捷地设计IIR数字滤波器,结果的各项性能指标均达到指定要求。 关键词: MATLAB;IIR滤波器;有噪音语音信号 Abstract: filterdesignplaysanimportantroleindigitalsignalprocessing,IIRfilterisanimportantpartofthefilterdesign.ResearchbasedonMATLABdesignandimplementationofthenoiseprocessingofspeechsignal,thetheoryofknowledgeof theintegrateduseofdigitalsignalprocessingintimedomainofspeechsignalplusnoise,frequencydomainanalysisandfiltering.ThroughtheoreticalderivationcorrespondingconclusionusingMATLABasaprogrammingtoolforcomputerimplementation.Inthedesignprocess,withButterworth,ChebyshevandbilinearmethodofIIRdigitalfilterdesign,anduseMATLABasatoolCompletethedrawingcalculationandgraphicdesign.Throughthesimulationandfrequencycharacteristicanalysisonthedesignoffilter,MATLABsignalprocessingtoolsprocessingtoolboxcaneffectivelyandquicklydesignIIRdigitalfilterbasedontheresultsoftheperformanceindicatorstomeetthespecifiedrequirements. Keywords: MATLAB;IIRfilter;noisyspeechsignal 1.绪论 数字滤波器,是数字信号处理中及其重要的一部分。 随着信息时代和数字技术的发展,受到人们越来越多的重视。 数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。 IIR滤波器采用递归型结构,即结构上带有反馈环路。 IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。 同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。 本设计研究的主要内容中是先进行语音信号的采集,然后对语音信号进行频谱分析,再利用IIR两种滤波器对语音信号进行过滤和频谱分析,画出滤波之后的频谱图与时域波形,并对信号滤波前后进行分析比较,分析信号的变化,得出滤波性能。 2.基于滤波器的语音信号的处理 选择一个语音信号作为分析的对象,或录制一段语音信号,对其进行频谱分析;利用MATLAB中的随机函数产生噪声加入到语音信号中,模仿语音信号被污染,并对其进行频谱分析;设计IIR数字滤波器,并对被噪声污染的语音信号进行滤波,分析滤波后信号的时域和频域特征,最后回放语音信号。 2.1语音信号的采样理论依据 2.1.1采样频率 采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。 采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。 采样频率与声音频率之间有一定的关系,根据奎斯特理论,只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。 这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。 2.1.2采样位数 采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。 采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。 采样位数和采样率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。 无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。 每增加一个采样位数相当于力度范围增加了6dB。 采样位数越多则捕捉到的信号越精确。 对于采样率来说你可以想象它类似于一个照相机,44.1kHz意味着音频流进入计算机时计算机每秒会对其拍照达441000次。 显然采样率越高,计算机摄取的图片越多,对于原始音频的还原也越加精确。 2.1.3采样定理 在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中,最高频率fmax的2倍时,即: fs.max>=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。 1924年奈奎斯特(Nyquist)就推导出在理想低通信道的最高大码元传输速率的公式: 理想低通信道的最高大码元传输速率=2W*log2N(其中W是理想低通信道的带宽,N是电平强度) 2.2语音信号的采集 利用WINDOWS操作系统可以进行数字信号的采集。 将话筒输入计算机的语音输入插口上,启动录音机。 按下录音按钮,接着对话筒说话“语音信号处理”,说完后停止录音,屏幕左侧将显示所录声音的长度。 点击放音按钮,可以实现所录音的重现。 以文件名“speech”保存入g: \MATLAB\work中。 可以看到,文件存储器的后缀默认为.wav,这是WINDOWS操作系统规定的声音文件存的标准。 3.滤波器的设计 3.1数字滤波器概述 数字滤波器的实现有两个关键步骤: 一个从数字域到模拟域间的变换,这个变换实现了数字滤波器技术指标到模拟滤波器技术指标的转换,同样也实现了模拟滤波器系统函数到数字滤波器系统函数的转换;另一个是从模拟滤波器技术指标到满足该指标的模拟滤波器的设计。 3.2模拟滤波器概述 用模拟—数字变换法设计IIR数字滤波器,首先必须设计一个模拟滤波器,它有许多不同的类型,主要有以下两种类型: 巴特沃思(Botterworth简写BW)滤波器。 BW滤波器是根据幅频特性在通带内具有最拼图特性而定义的滤波器,对一个N阶低通滤波器来说,所谓最平坦特性就是模拟函数的前(2N-1)阶导数在 处都为零。 BW滤波器的另一个特性是在通带和阻带内的幅频特性始终是频率的单调下降函数,且其模拟函数随阶次N的增大而更接近于理想低通滤波器。 切比雪夫(Chbyshev简写为CB)滤波器。 CB低通滤波器的模拟函数由切比雪夫多项式定义,且在通带内的幅频响应是波动的,在阻带则单调变化。 3.3IIR滤波器概述 IIR(InfiniteImpulseResponse)数字滤波器,又名“无限脉冲响应数字滤波器”,或“递归滤波器”。 递归滤波器,也就是IIR数字滤波器,顾名思义,具有反馈,一般认为具有无限的脉冲响应。 IIR滤波器有以下几个特点: (1)封闭函数: IIR数字滤波器的系统函数可以写成封闭函数的形式。 (2)IIR数字滤波器采用递归型结构: IIR数字滤波器采用递归型结构,即结构上带有反馈环路。 IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。 由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。 (3)借助成熟的模拟滤波器的成果: IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。 在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,再通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。 (4)需加相位校准网络: IIR数字滤波器的相位特性不好控制,对相位要求较高时,需加相位校准网络。 3.4IIR滤波器设计 无论是数字滤波器还是模拟滤波器,他们技术指标的建立都是以所谓的“固有衰减”参数为参照。 以数字滤波器为例,固有衰减参数定义为 A(w)=-20lg|H(ejw)|-20lg|H(ej0)| 目前IIR数字滤波器设计的最通用的方法是借助于模拟滤波器的设计方法。 模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表供查询,因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大方便。 IIR数字滤波器的设计步骤是: 按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标; 根据转换后的技术指标设计模拟低通滤波器 ; 再按一定规则将G(s)转换成H(z)。 若设计的数字滤波器是低通的,那么上述设计工作可以结束,若所设计的是高通,带通或带阻滤波器,那么还有步骤 ; 将高通、带通、或带阻数字l不去的技术指标先转化为低通模拟滤波器的技术指标,然后按照上述步骤 设计出低通 ,再将 转换为所需的H(z)。 下面我们总结一下利用模拟滤波器设计IIR数字低通滤波器的步骤: (1)确定数字低通滤波器的技术指标: 通带边界频率、通带最大衰减,阻带截止频率、阻带最小衰减。 (2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。 (3)按照模拟低通滤波器的技术指标设计及过渡模拟低通滤波器。 (4)用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。 接下来,我们根据语音信号的特点给出有关滤波器的技术指标: 低通滤波器的性能指标: fp=1000Hz,fc=1200Hz,As=100db,Ap=1dB 在Matlab中,利用函数butter,cheby1和ellip设计IIR滤波器,利用Matlab中的函数freqz画出各步步器的频率响应。 MATLAB信号处理工具箱函数buttpbuttorbutter是巴特沃斯滤波器设计函数,其有5种调用格式,本课程设计中用到的是[N,wc]=butter(N,wc,Rp,As,’s’),该格式用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率wc。 MATLAB信号处理工具箱函数cheblap,cheblord和cheeby1是切比雪夫I型滤波器设计函数。 我们用到的是cheeby1函数,其调用格式如下: [B,A]=cheby1(N,Rp,wpo,’ftypr’) 函数butter,cheby1和ellip设计IIR滤波器时都是默认的双线性变换法,所以在设计滤波器时只需要代入相应的实现函数即可。 下面我们以IIR低通滤波器的设计为例: Ft=8000; Fp=1000; Fs=1200; wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; fp=2*Ft*tan(wp/2); fs=2*Fs*tan(wp/2); [n11,wn11]=buttord(wp,ws,1,50,’s’); [b11,a11]=butter(n11,wn11,’s’); [num11,den11]=bilinear(b11,a11,0.5); [h,w]=freqz(num11,den11); figure; plot(w*8000*0.5/pi,abs(h)); legend(‘IIR低通滤波器’,’Location’,’NorthWest’); grid; 程序结果如下图: 图3.4IIR低通滤波器 3.5用滤波器对加噪语音信号进行滤波 用设计的各滤波器分别对加噪的语音信号进行滤波,在Matlab中,IIR滤波器利用函数filter对信号进行滤波。 函数fftfilt用的是重叠相加法实现线性卷积的计算。 调用格式为: y=fftfilter(h,x,M)。 其中,h是系统单位冲击响应向量;x是输入序列向量;y是系统的输出序列向量;M是有用户选择的输入序列的分段长度,缺省时,默认的输入向量的重长度M=512。 函数filter的调用格式: yn=filter(B,A.xn),它是按照直线型结构实现对xn的滤波。 其中xn是输入信号向量,yn输出信号向量。 4.仿真及结果分析 4.1语音信号的时频分析 利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。 再对其进行采样,记住采样频率和采样点数。 下面介绍Wavread函数几种调用格式。 (1)y=wavread(file) 功能说明: 读取file所规定的wav文件,返回采样值放在向量y中。 (2)[y,fs,nbits]=wavread(file) 功能说明: 采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。 (3)y=wavread(file,N) 功能说明: 读取钱N点的采样值放在向量y中。 (4)y=wavread(file,[N1,N2]) 功能说明: 读取从N1到N2点的采样值放在向量y中。 接下来,对语音信号OriSound.wav进行采样。 其程序如下: >>[y,fs,nbits]=wavered(‘OriSound’);%把语音信号加载入Matlab仿真软件平台中 然后,画出语音信号的时域波形,再对语音信号进行频谱分析。 MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下: Xk=fft(xn,N) 参数xn为被变换的时域序列向量,N是DFT变换区间长度,当N大于xn的长度时,fft函数自动在xn后面补零,当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。 在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。 程序如下: [y,fs,nbits]=wavread(‘OriSound’);%语音信号的采集 sound(y,fs,nbits);%语音信号的播放 n=length(y); Y=fft(y,n);%快速傅里叶变换 figure; subplot(2,1,1); plot(y); title(‘原始信号波形’,’fontweight’,’bold’); axis([7800080000-11]); grid; subplot(2,1,2); plot(abs(Y)); title(‘原始信号频谱’,’fontweight’,’bold’); axis([015000004000]); grid; 程序结果如下图: 图4.1原始信号波形及频谱 4.2加噪后的语音信号及其频谱分析 利用MATLAB中的随机函数(rand或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。 Randn函数有两种基本调用格式: Randn(n)和Randn(m,n),前者产生n×n服从标准高斯分布的随机数矩阵,后者产生m×n的随机数矩阵。 在这里,我们选用Randn(m,n)函数。 加噪程序如下所示: [y,fs,nbits]=wavread('OriSound'); sound(y,fs,nbits); n=length(y); Noise=0.2*randn(n,2); s=y+Noise; sound(s); figure; subplot(2,1,1); plot(s); title('加噪语音信号的时域波形','fontweight','bold'); axis([7800080000-11]); grid; S=fft(s); subplot(2,1,2); plot(abs(S)); title('加噪语音信号的频域波形','fontweight','bold'); axis([015000004000]); grid; 图4.2加噪语音信号时域及频域波形 4.3验证所设计的滤波器 为了验证滤波器的可使用性,我们用常用的sin函数来进行验证。 其具体程序及运行结果如下: t=[0: 1/1023: 1]; s=sin(2*pi*t); N=length(s); y=s+0.5*rand(1,N); subplot(2,1,1); plot(y); title('加噪语音信号的时域波形','fontweight','bold'); S=fft(y); subplot(2,1,2); plot(abs(S)); title('加噪语音信号的频域波形','fontweight','bold'); Ft=8000; Fp=1000; Fs=1200; wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; [n11,wn11]=buttord(wp,ws,1,50,'s');%求低通滤波器的阶数和截止频率 [b11,a11]=butter(n11,wn11,'s');%求S域的频率响应的参数 [num11,den11]=bilinear(b11,a11,0.5);%利用双线性变换实现频率响应S域到Z域的变换 z11=filter(num11,den11,s); sound(z11); m11=fft(z11);%求滤波后的信号 figure; subplot(2,2,1); plot(abs(S),'g'); title('滤波前信号的频谱','fontweight','bold'); grid; subplot(2,2,2); plot(abs(m11),'r'); title('滤波后信号的频谱','fontweight','bold'); grid; subplot(2,2,3); plot(y); title('滤波前信号的波形','fontweight','bold'); grid; subplot(2,2,4); plot(z11); title('滤波后的信号波形','fontweight','bold'); grid; 图4.3验证所设计的滤波器 4.4比较滤波前后语音信号的波形及频谱 用自己设计的各滤波器分别对加噪的语音信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。 函数fftfilt用的是重叠相加法实现线性卷积的计算。 调用: y=fftfilter(h,x,M)。 其中,h是系统单位冲击响应向量;x是输入序列向量;y是系统的输出序列向量;M是有用户选择的输入序列的分段长度,缺省时,默认的输入向量的重长度M=512。 函数filter的调用格式: yn=filter(B,A.xn),它是按照直线型结构实现对xn的滤波。 其中xn是输入信号向量,yn输出信号向量。 [y,fs,nbits]=wavread(‘OriSound’);%IIR低通 n=length(y);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 基于 IIR 数字滤波器 语音 信号 处理 课程设计 论文