数字信号处理课程设计报告.docx
- 文档编号:17991497
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:24
- 大小:547.19KB
数字信号处理课程设计报告.docx
《数字信号处理课程设计报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计报告.docx(24页珍藏版)》请在冰点文库上搜索。
数字信号处理课程设计报告
长沙理工大学
《数字信号处理》课程设计报告
学院计算机与通信工程专业
班级学号
学生姓名指导教师
课程成绩完成日期2014年3月7日
课程设计成绩评定
学院计算机与通信工程专业
班级学号
学生姓名指导教师
完成日期2014年3月8日
指导教师对学生在课程设计中的评价
评分项目
优
良
中
及格
不及格
课程设计中的创造性成果
学生掌握课程内容的程度
课程设计完成情况
课程设计动手能力
文字表达
学习态度
规范要求
课程设计论文的质量
指导教师对课程设计的评定意见
综合成绩指导教师签字2014年3月10日
课程设计任务书
计算机与通信工程学院通信工程专业
课程名称
数字信号处理课程设计
时间
2013~2014学年第二学期1~2周
学生姓名
指导老师
蔡春娥
题目
语音信号滤波去噪——使用双线性变换法设计的并联型切比雪夫I型滤波器
主要内容:
用麦克风采集一段语音信号,绘制波形并观察其频谱特点,加入一个带外单频噪声,用双线性变换法设计的一个满足指标的切比雪夫I型IIR滤波器,对该含噪语音信号进行滤波去噪处理,画出该滤波器的线性相位型结构图,比较滤波前后的波形和频谱并进行分析,根据结果和学过的理论得出合理的结论。
要求:
(1)滤波器指标必须符合工程实际。
(2)设计完后应检查其频率响应曲线是否满足指标。
(3)处理结果和分析结论应该一致,而且应符合理论。
(4)独立完成课程设计并按要求编写课程设计报告书。
应当提交的文件:
(1)课程设计学年论文。
(2)课程设计附件(主要是源程序)。
语音信号滤波去噪—使用双线性变换法设计的并联型切比雪夫I型滤波器
学生姓名:
徐玉星指导老师:
蔡春娥
摘要本课程设计主要内容是设计利用双线性变换法设计一个IIR的切比雪夫滤波器,对一段含噪语音信号进行滤波去噪处理并根据滤波前后的波形和频谱分析滤波性能。
本课程设计仿真平台为MATLAB7.0,开发工具是M语言编程。
首先利用录音工具录制一段语音信号,并人为加入一段单频噪声,然后对信号进行频谱分析,设计滤波器画出频率响并用所设计的滤波器进行滤波去噪处理,最后比较滤波前后的波形和频谱并进行分析并回放语音信号和画出滤波器结构图。
由分析结果可知,滤波器后的语音信号与原始信号基本一致,即设计的并联型IIR切比雪夫I型滤波器能够去除信号中所加单频噪声,因此达到了课程设计目的。
关键词滤波去噪;IIR滤波器;双线性变换法;切比雪夫I型;并联型;MATLAB
1引言
随着人们对信号处理要求的日益提高,信号的数字处理技术得到了飞速发展,使得许多以往采用模拟信号处理的系统越来越多地被数字处理系统所代替,数字信号处理技术在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
在数字信号处理中,数字滤波器十分重要并已获得广泛应用,数字滤波器与模拟滤波器比较,具有精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及实现模拟滤波器无法实现的特殊滤波功能等优点。
在各种滤波器中,切比雪夫I型滤波器具有其独特的优点。
本课程设计的主要目的是通过设计一个滤波器对含噪的语音信号进行滤波去噪处理,并在处理时采用双线性变换法设计的并联型切比雪夫I型滤波器。
1.1课程设计目的
本课程设计主要利用MATLAB,设计一个语音信号滤波去噪——使用双线性变化法设计的并联型切比雪夫I型。
《数字信号处理》课程设计是在学生完成数字信号处理和MATLAB的结合后的基本实验以后开设的。
本课程设计的目的是为了让学生综合数字信号处理和MATLAB并实现一个较为完整的小型滤波系统。
这一点与验证性的基本实验有本质性的区别。
开设课程设计环节的主要目的是通过系统设计、软件仿真、程序安排与调试、写实习报告等步骤,使学生初步掌握工程设计的具体步骤和方法,提高分析问题和解决问题的能力,提高实际应用水平。
1.2课程设计的要求
(1)滤波器指标必须符合工程实际。
(2)设计完后应检查其频率响应曲线是否满足指标。
(3)处理结果和分析结论应该一致,而且应符合理论。
(4)独立完成课程设计并按要求编写课程设计报告书。
1.3设计平台
本次课程设计的设计平台是MATLAB。
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平[1]。
MATLAB是一种既可交互使用又能解释执行的计算机变成语言,可以用直观的数学表达式来描述问题,从而避开繁琐的底层编程,并且是解决工程技术问题的计算平台。
它拥有丰富的函数资源和工具箱资源,MTLAB最大的特点就是简洁开放的程序代码和直观实用的开发环境。
具备库函数资源丰富;语言精练,代码灵活;面向对象,控制功能优良;程序设计优良,图形功能强大;源代码开放,形形色色工具箱等优点,但是也有运行速度慢,占内存较大的缺点。
MATLAB已经成为国际上最流行的科学与工程计算软件工具,现在的MATLAB已经不仅仅是一个“矩阵实验室”了,它已经成为一种具有广泛应用前景的全新的计算机高级语言,在国内外高校和研究部门中正扮演重要角色[1]。
2设计原理
2.1IIR滤波器
从离散时间来看,若系统的单位抽样(冲激)响应延伸到无穷长,称之为“无限长单位冲激响应系统”,简称为IIR系统。
无限长单位冲激响应(IIR)滤波器有以下几个特点:
(1)系统的单位冲激响应h(n)是无限长;
(2)系统函数H(z)在有限z平面(0<|z|<∞);
(3)结构上存在着输出到输入的反馈,也就是结构上是递归型的。
IIR滤波器采用递归型结构,即结构上带有反馈环路。
同一种系统函数H(z)可以有多种不同的结构,基本网络结构有直接Ⅰ型、直接Ⅱ型、级联型、并联型四种,都具有反馈回路。
同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Cauer)滤波器、贝塞尔(Bessel)滤波器等,这些典型的滤波器各有特点。
有现成的设计数据或图表可查,在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式[2]。
2.2切比雪夫I型滤波器
对于模拟滤波器,已经形成了许多成熟的设计方案,如巴特沃兹滤波器,切比雪夫滤波器,考尔滤波器,每种滤波器都有自己的一套准确的计算公式,同时,也已制备了大量归一化的设计表格和曲线,为滤波器的设计和计算提供了许多方便,因此在模拟滤波器的设计中,只要掌握原型变换,就可以通过归一化低通原型的参数,去设计各种实际的低通、高通、带通或带阻滤波器。
这一套成熟、有效的设计方法,也可通过各种变换所得到。
也可把前两步合并成一步,直接从模拟低通归一化原型通过一定的频率变换关系,完成各类数字滤波器的设计。
若滤波器的技术要求是用最大通带和阻带的逼近误差来给出的话,那么,在靠近通带低频端和阻带截止频率以上的部分都会超出技术指标。
一种比较有效的途径是使逼近误差均匀地分布于通带或阻带内,或同时在通带和阻带内都均匀分布,这样往往可以降低所要求的滤波器阶次。
通过选择一种具有等波纹特性而不是单调特性的逼近方法可以实现这一点。
切比雪夫型滤波器就具有这种性质:
其频率响应的幅度既可以在通带中是等波纹的,而在阻带中是单调的(称为I型切比雪夫滤波器)。
我们这里仅介绍切比雪夫Ⅰ型滤波器的设计方法。
图2-1分别画出阶数N为奇数与偶数时的切比雪夫Ⅰ型滤波器幅频特性[3]。
其幅度平方函数表示为:
(2-1)
上式中,ε为小于1的正数,表示通带内幅度波动的程度,ε愈大,波动幅度也愈大。
Ωp称为通带截止频率。
令λ=Ω/Ωp,称为对Ωp的归一化频率。
CN(x)称为N阶切比雪夫多项式,定义为;
(2-2)
是通带边界频率,一般是预先给定的。
是与通带波动有关的一个参数,通带波动
表示成
(2-3)
式中,
,表示通带幅度响应的最大值,而
(2-4)
故
(2-5)
因而
(2-6)
可以看出,给定通带波纹值
后,就能求得
。
这里应注意,通带衰减值不一定是3dB,也可以是其他值,随给定的
值而定,例如
=0.1dB等。
阶数N对滤波器特性有极大的影响,N越大,逼近特性越好,但是相应的滤波器结构也越复杂。
N的值是根据阻带的边界条件来确定的,当
时,
即
(2-7)
从而
(2-8)
将此条件代入
=cosh(Narcoshx),
得到
(2-9)
因此,要求阻带边界频率处的衰减越大,也就是过渡带内幅频特性越陡,则需用的阶数N越高。
图2-1切比雪夫Ⅰ型滤波器幅频特性曲线
2.3双线性变换法
双线性变换法设计IIR低通数字滤波器的基本原理和算法:
双线性变换法设计数字滤波器,采用了二次映射的方法,就是先将整个s平面压缩到s1平面的一个
的横形条带范围内,然后再将这个条带映射到z平面上,就能建立s平面到z平面的一一对应关系。
对于低通数字滤波器,映射关系为
(2-10)
其中T为抽样周期。
用双线性变换法设计低通IIR数字滤波器的基本步骤,首先根据设计要求确定相应的模拟滤波器的传递函数
,再应用(2-10)式得数字滤波器的传递函数
。
通常可以给定的参数为:
低通数字滤波器通带边界频率
、阻带边界频率
和对应的通带衰减函数
、阻带衰减函数
。
s1平面中的模拟角频率
与数字角频率
的关系为线性关系
,在计算模拟滤波器的阶数N、极点si和传递函数
之前,应作预畸变处理
(2-11)
模拟滤波器的阶数N、极点si和传递函数
的计算方法与冲激响应不变法相同,可以采用Butterworth逼近或Chebyshev逼近[4]。
双线性变换法的优点是:
它是一种稳定的设计,不存在混叠现象,对能够变换的滤波器类型没有限制。
但是这种方法也有固定的缺点:
模拟频率和数字频率之间是非线性关系,它使得频率的标度弯曲,不能够保持原来的模拟滤波器的相频特性:
H(z)的频率响应与模拟的H(s)有明显的差别。
一般情况下,可以通过频率的预畸变进行校正。
但总的来说,双线性变换法的仿真图结果图要比脉冲响应不变法的更加理想。
3设计步骤
3.1设计流程图
语音信号滤波去噪—使用双线性变化法设计的并联型切比雪夫I型滤波器的设计流程如图3-1所示。
图3-1设计滤波器的流程图
通过流程图我们会明确我们在完成这个课程设计时所需要的每一步,可以是自己的设计思路更加清晰,明了,不会因遗漏某一步而是自己的努力功亏一篑,同时,对于老师们检查报告时提供了方便,指导老师可以通过流程图了解你的大概设计过程和整体构思,因此设计滤波器的流程图是你设计过程中必不可少的一步。
3.2录制语音信号
先在windows平台下用麦克风录制一段语音,录音机的路径:
开始—所有程序—附件—娱乐工具—录音机,录制时,可以通过点击录音机界面上的文件—属性,在弹出的对话框中选择马上转换,设置录音格式为PCM编码,属性为8kHz,单声道,7kB/s,这样的设置在相同的时间下数据最少,处理时间也就最短。
当然如果需要更好的效果,可以选择属性下拉菜单中的各种选项。
如图3-2,图3-3,图3-4所示:
图3-2录音机使用图
图3-3设置语音频率
图3-4属性设置窗口
格式设置好以后,单击录音机界面的红色圆圈,录音开始,对着麦克风说“大家好,我是***”,录音完毕,点击黑色方形,结束录音。
点击文件,保存,存为全英文的文件名,后缀为“.wav”。
如“dajiahao.wav”。
并将其放入MATLAB安装盘下的work文件夹中就好了。
录制语音的具体的程序:
[x,fs,bits]=wavread('e:
\yuyin.wav');%输入参数为文件的全路径和文件名,输出的第一个参数是每个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样本的编码位数。
sound(x,fs,bits);%按指定的采样率和每样本编码位数回放
N=length(x);%计算信号x的长度
fn=2200;%单频噪声频率,此参数可改
t=0:
1/fs:
(N-1)/fs;%计算时间范围,样本数除以采样频率
x=x';y=x+0.1*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;%计算频谱频率范围
在录制的声音中加入噪声然后再对其进行采样后使用plot语句画出相关的频谱图形。
图形如3-5所示:
;
图3-5加入噪音前后的幅度谱图
结论;通过图3-5所示我们比较上下两幅图可知在2200HZ处有噪音,并影响语音质量,有噪声的干扰。
3.3滤波器设计
设计指标:
通带截止频率为2000Hz,阻带截止频率为2150Hz,通带波纹为1dB,阻带波纹为50dB,用双线性变换法设计的一个满足上述指标的切比雪夫I型IIR滤波器。
fp=2000;fc=2150;fs=8000%定义通带和阻带截止频率
Rp=1;As=50;%定义通带波纹和阻带衰减
wp=fp/fs*2*pi;ws=fc/fs*2*pi;%计算对应的数字频率
T=2;%定义采样间隔
Omegap=2/T*tan(wp/2);Omegas=2/T*tan(ws/2);%截止频率预畸变
[cs,ds]=afd_chb1(Omegap,Omegas,Rp,As)%计算滤波器系统函数分子分母系数
[b,a]=bilinear(cs,ds,1/T)%双线性变换得到数字滤波器系统函数分子分母系数
[db,mag,pha,grd,w]=freqz_m(b,a);%验证滤波器是否达到指定性能
delta=[1,zeros(1,99)];ha=filter(b,a,delta);
再使用plot等函数画出滤波器的幅度,相位图,然后观察图3-6,思考所设计的率波器是否达标,能否较好的完成滤波功能,不足是在哪里,滤波器的参数是否适合,是否需要进行改进等,这些都需要我们从整幅图中得出的信息。
图3-6滤波器的幅度和相位图
结论:
由图3-6可知该滤波器已达到滤波标准,因为第一幅图中的红线与Rp和As相切,并且符合设计要求。
3.4信号滤波处理
用滤波器对信号滤波,我们采用filter函数,主要程序如下:
y_fil=filter(b,a,y);%对信号y进行滤波处理,其中b,a为上面设计好的滤波器参数
Y_fil=abs(fft(y_fil));Y_fil=Y_fil(1:
N/2);%计算频谱取前一半
sound(y_fil,fs,bits)
通过上述程序我们可得图3-7,分别是滤波前后的幅度图,通过比较我们要得出相应的结论。
图3-7滤波器滤波前后的幅度图
结论:
通过图3-7我们可知你的滤波器滤波的效果,是否将噪声去除,能否还原之前录制好的声音,此图表明我所设计的切比雪夫I型滤波器达到要求。
3.5结果分析
在MATLAB中,经sound函数,对经过滤波器之后的信号进行回放,可以听出滤波之后的信号比原始信号更清晰一些,清除了环境噪音。
通过以下语句来进行语音信号回放比较:
sound(x,fs,bits)%播放原始单音频信号
sound(y,fs,bits)
wavwrite(y,fs,bits,'D:
\MATLAB7\work\yuyin1.wav');%播放加噪后的单音频信号
sound(y_fil,fs,bits)
wavwrite(y_fil,fs,bits,'yuyin2.wav');%播放经过滤波处理后的单音频信号
通过在MATLAB上回放原始语音信号、加噪后的语音信号和滤波后的语音信号进行比较,滤波后的语音信号在音质上和原始语音基本相同,说明设计的IIR滤波器滤波效果较明显,设计成功。
3.6滤波器结构设计
并联型的滤波器是利用部分分式展开将系统函数H(z)写成二阶节之和,A,B,C等数值代表的是实数的二阶系数,同时滤波器的输入是用作全部双二阶节以及多项式节的输入。
来自这些节的输出相加以形成滤波器的输出。
由于各个字节的相加,就得出一种并联结构以实现H(z)。
利用[C,B,A]=dir2par(b,a)将直接型转换成并联型,得出
[C,B,A]=dir2par(b,a)
C=
-1.4573e-005
B=
0.00090.0210
0.0183-0.0647
-0.07320.1085
0.1542-0.1532
-0.25440.2100
0.3619-0.2859
-0.45140.3656
0.24370
A=
1.0000-0.00180.9802
1.0000-0.08760.9403
1.0000-0.25980.8972
1.0000-0.51940.8489
1.0000-0.85550.7955
1.0000-1.22410.7417
1.0000-1.53000.6989
1.0000-0.82590
因为我所设计的是并联型15阶IIR切比雪夫I型滤波器,因此利用以上A,B,C,的参数用软件画出的结构图如下图3-8所示:
图3-8滤波器的结构图
通过画出滤波器的结构图,我们可以更深一层的理解滤波器的结构组成,也可以通过比较并联型结构和级联型结构可知哪种结构的滤波器更简单,参数少,效果好等。
这些方面我们都可以通过画出滤波器的结构图所应知道的一些知识。
4出现的问题及解决方法
在这次的课程设计中,由于理论知识的不踏实以及其他各种原因,我们遇到了不少问题。
(1)在进行语音信号提取时,进过多次录取才得到理想的语音信号,得到理想的波形时,通过多次尝试,和查找书籍及同学讨论,最后猜得到理想的音信号的时域图和频谱图
(2)在运用MATLAB设计滤波器时,当编辑完前面两条程序时无法放出声音,后来发现我们应当把采集的语音信号wav文件放到MATLAB的work文件夹中。
(3)还要在滤波器性能曲线的wc处画一根竖线,这样更方便看出结果,其中wc处线的确定还需计算出wb/pi的值。
(4)所有的时间波形横坐标都要化为时间,滤波前后频谱的横坐标应是频率,这样在观察通带截止频率和阻带截止频率时更加精确,误差较小。
(5)在用wavread函数加入语音信号时,提示错误。
输出语音文件的正确路径。
(6)加噪声前后幅度和幅度谱坐标不一样,不好做对比分析。
利用axis对坐标图做调整,使得前后坐标一样,便于对比分析。
(7)不明白原理,无从下手处理问题,此时就需要将学过的理论知识进行温习一遍,有不会的就像老师请教。
5结束语
课程设计是检练掌握知识程度及联系实际的的重要方法。
从中我们可以发觉我们的不足和缺点,有利于改正我们的错误、不仅提高我们的动手能力,更能培养我们的逻辑思维和分析方法。
学到了科学的严谨性,重视实践与理论结合的重要性。
在二周的课程设计时间里,我每天都过的很充实,查资料、读程序,反复琢磨,学习的过程是艰辛的,但是同时也是快乐的。
通过实实在在的课程设计,发现自己在课堂上所学的知识对于解决实际问题来说,是远远不够的,要想掌握技术,还需要加倍的努力。
不过,在这短短的时间里,还是让我对数字信号处理有了更深了解,也学到了新的知识让我掌握了MATLAB等软件的简单使用,明白了软件仿真对设计的重要性。
再次,这次课程设计让我充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不紊。
在整个课程设计过程中我再次认识到坚持、耐心、细心等品质的重要,这对今后的学习和工作是有很大帮助的。
总之,这次课程设计让我获益良多。
最后在此我由衷地感谢各位帮助我的老师和同学!
此次课程设计时间比较紧凑,但是忙中有乐,收获的不但是从课本上无法学到的东西,而且是将知识运用到实践中的体会。
我学会了在实际中如何去考虑一个问题,怎样运用掌握的知识去解决。
这些在书本上是没有的,如果书本基础那么实践就是提高,没有基础当然不可能会有提高,但是没有实际理论也不会有很多的价值。
更重要的是使我认识到自己的局限性,对课本理解的不全面,很肤浅没有深入考虑,这对我以后的学习有很大的帮助,会提醒我在哪方面多注意。
如果单从课程设计的结果来判断此次的作用我觉得是非常片面的。
应该以我们的在此次受到的效益为依据。
我在其中体会很深,开始的阶段是会碰到很多的问题,对软件的不熟练,对模块的不认识,对原理的不理解...这些使我感到了压力和沮丧,但是困难只要去解决总是有办法的,在老师和同学的帮助下,自己的努力中把碰到的问题一一化解,心中的愉快是不言而喻。
没有合作也就没有进步,如果就凭一人之力是很困难,因此在其中我发现合作是很重要的,可以相互弥补,又能增加,拓展自己的知识。
毕竟每人的课程设计的内容涉及的仅是一部分,如果我们能从多个方面进行了解,自然就使我们的知识掌握程度加大了。
总而言之,此次过程让我明白了应用能力的重要性,学知识要全面以及广度,动手能力的好处,没有实际操作能力就谈不上如何去适应社会,更不要说掌握知识的程度。
但是在此要感谢指导过我的老师特别是胡双红老师,给予了我很大帮助,同时给了我深深的认识和体会。
参考文献
[1]张葛祥,李娜.MATLAB仿真技术与应用[M].北京:
清华大学出版社,2007
[2]薛年喜主编.MATLAB在数字信号处理中的应用[M].北京:
清华大学出版社,2002
[3][美]M.H.海因斯著,张建华等译.数字信号处理[M].北京:
科学出版社,2002
[4]邓华.MATLAB通信仿真及应用实例详解.北京:
国防工业出版社,2003
附录:
语音信号滤波去噪——使用双线性变换法设计的并联型切比雪夫I型滤波器
%程序名字:
xyx.m
%程序功能:
采用双线性变换法设计并联型切比雪夫I型滤波器,对语音信号滤波去噪。
%程序作者:
徐玉星
%最后修改日期:
2014-3-7
[x,fs,bits]=wavread('e:
\yuyin.wav');%输入参数为文件的全路径和文件名,输出的第一个参数是每个样本的值,fs是生成该波形文件时的采样率,bits是波形文件每样本的编码位数。
sound(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 课程设计 报告