数字信号处理课程设计说明书范文.docx
《数字信号处理课程设计说明书范文.docx》由会员分享,可在线阅读,更多相关《数字信号处理课程设计说明书范文.docx(50页珍藏版)》请在冰豆网上搜索。
数字信号处理课程设计说明书范文
长沙学院
《数字信号处理》
课程设计说明书
题
目
数字信号处理课程设计
系(部)
专业(班级)
电子与通信工程系
11级通信1班
姓
学
名
号
指导老师
起止日期
李广柱、谢志宇
王路露、冯璐
2013.6.17-2013.6.21
1
数字信号处理设计任务书
一.课程设计的目的
通过数字信号处理的课程设计,使学生对信号的采集,处理,传输,显示,存储和分析等有一个系
统的掌握和理解。
巩固和运用数字信号处理课程中的理论知识和实验技能,掌握最基本的数字信号处理
的理论和方法,培养学生发现问题,分析问题和解决问题的能力。
二.课程设计的题目
语音信号的采集、分析与处理。
三.设计内容(主要技术关键的分析、解决思路和方案比较等)
对一段语音信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采
用窗函数法和双线性变换设计滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信
号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回
放语音信号;最后,设计一个信号处理系统界面。
设计内容:
采样一段语音信号;画出语音信号的时域波形和频谱图;给定滤波器的性能指标,设计
数字滤波器,并画出滤波器的频率响应;然后用设计的滤波器对采集的信号进行滤波,画出滤波后信号
的时域波形和频谱。
关键技术:
频谱图的理解;设计数字滤波器;数字滤波的方法;
解决思路:
对语音号进行快速傅里叶变换,得到信号的频谱特性;在MATLAB环境中可以利用函
数fir1设计FIR滤波器,可以利用函数butter设计IIR滤波器;利用MATLAB中的函数freqz画出各滤
波器的频率响应。
四.设计步骤
1.语音信号的采集
对一段语音信号,时间在2s内。
然后在MATLAB软件平台下,利用函数wavread对语音信号进行
采样,记住采样频率和采样点数。
通过wavread函数的使用,要求理解掌握采样频率、采样位数等概念。
2.语音信号的频谱分析
要求首先画出采样后语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特
性,从而加深对频谱特性的理解。
3.设计数字滤波器和画出其频率相映
给出各滤波器的性能指标:
(1)低通滤波器性能指标fb=1000Hz,fc=1200Hz,As=20dB,Ap=1dB。
(2)高通滤波器性能指标fc=4800Hz,fb=5000Hz,As=30dB,Ap=1dB。
(注意:
以上性能指标只具有参考价值,同学们可以灵活更改,以适应具体应用的要求。
)
要求用窗函数法和双线性变换法设计上面要求的2种滤波器。
在MATLAB中,可以利用函数fir1
基于Kaiser窗设计FIR滤波器,可以利用函数butter设计IIR滤波器;利用MATLAB中的函数freqz
2
画出各滤波器的频率响应。
4.用滤波器对信号进行滤波
要求用自己设计的各种滤波器分别对采集的信号进行滤波,在MATLAB中,FIR滤波器利用函数
fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。
5.比较滤波前后语音信号的波形及频谱并回放语音信号
要求在一个窗口同时画出滤波前后的波形及频谱。
在MATLAB中,函数sound可以对声音进行回
放。
其调用格式:
sound(x,fs,bits);可以感觉滤波前后的声音有变化。
6.编制实现上述任务的相应的程序。
7.撰写5000-8000字课程设计报告。
五.设计要点
1.参考“数字信号处理”教材掌握频谱分析的意义。
2.参考“数字信号处理”教材掌握数字滤波器的设计方法。
3.学会使用MATLAB的帮助。
六.设计进度安排
本次课程设计共计2周时间(7周~8周):
第7周星期一,分析问题、查阅资料;第7周星期二到第
8周星期三,编写程序、调试、修改;第8周星期四到星期五,演示、答辩、写设计报告。
七.考核标准
1.同学平时表现占总成绩30%,若迟到扣5分,无故旷课每次扣10分,二次不到者总成绩以0
分计。
2.课程设计报告占总成绩70%,在规定时间内上交。
3.严禁抄袭,复制设计内容,查出后相关同学设计成绩以零分处理。
八.参考资料
1.高西全,丁玉美.数字信号处理.西安:
西安电子科技大学出版社,2008.
2.黄文梅,熊桂林,杨勇.信号分析与处理——Matlab语言及其应用.长沙:
国防科技大学出版社,
2000.
3.余成波.数字信号处理及Matlab实现.北京:
清华大学出版社,2008.
3
长沙学院课程设计鉴定表
4
目
录
1、绪论................................................................................................................................................................1
2、课程设计的具体内容....................................................................................................................................1
2.1、原始语音信号的读取和分析.............................................................................................................2
2.1.1、读取语音信号的任务..............................................................................................................2
2.1.2、任务分析和解决方案..............................................................................................................2
2.1.3、编程得到的MATLAB代码......................................................................................................2
2.1.4、运行结果和相应的分析..........................................................................................................2
2.2、IIR滤波器设计和滤波处理................................................................................................................3
2.2.1、设计任务..................................................................................................................................3
2.2.2、任务分析和解决方案..............................................................................................................3
2.2.3、编程得到的MATLAB代码......................................................................................................4
2.2.4、运行结果和相应的分析..........................................................................................................5
2.3、FIR滤波器设计和滤波处理...............................................................................................................8
2.3.1、设计任务..................................................................................................................................8
2.3.2、任务分析和解决方案..............................................................................................................8
2.3.3、编程得到的MATLAB代码......................................................................................................9
2.3.4、运行结果和相应的分析........................................................................................................10
3、总结..............................................................................................................................................................13
4、存在的不足及建议......................................................................................................................................14
5、参考文献......................................................................................................................................................14
5
语音信号的采集、分析与处理
摘
要
本文利用Windows操作系统提供的录音机录制了一段声音,针对该声音文件,利用
MATLAB读取文件获得语音信号,利用FFT算法对该信号进行谱分析。
同时设计得到了
IIR、FIR滤波器,每种形式的滤波器分别都设计了低通、高通和带通三种类型,利用滤波
器对运用信号进行处理,并对处理的结果进行了分析。
通过对语音信号的采集、分析和处理,掌握了利用FFT进行谱分析的基本原理和基本
方法;掌握了滤波器设计的基本理论和基本方法,并学会了对信号进行时域分析和频域分
析的基本原理和基本方法。
关键词:
语音信号;谱分析;IIR滤波器;FIR滤波器
6
1、绪论
通过语音传递信息是人类交换信息最方便、最快捷的一种形式,在高度发达的信息化
时代,用数字化的方法进行语音处理是整个数字化通信网中最重要、最基本的组成部分之
一。
数字电话通信、高音质的窄带语音系统、语音学习机、声控打字机、自动翻译机、智
能机器人、新一代计算机语音智能终端以及许多军事上的应用等,都要用到语音信号处理
技术。
随着集成电路和微电子技术的飞速发展,语音信号处理技术已融入人们的日常生活
中。
语音信号处理的目的是要得到某些语音特征参数以便高效地传输或存储;或者是通过
某种处理运算以达到某种用途的要求,例如人工合成语音、辨识出讲话者、识别出讲话者
的内容等。
MATLAB是一款功能强大、易于使用的高校数值计算和可视化软件,可以用数学形式
的语言编程,又有大量的库函数,所以编程简单、编程效率高[1~2]。
本次课程设计主要是利
用MATLAB对数字化的语音信号进行时域和频域的分析,同时在MATLAB中设计滤波器,
并利用滤波器对语音信号进行滤波处理,分析滤波前后语音信号的变化,对理解滤波器在
语音信号处理过程中的作用是很重要的。
下面介绍课程设计的具体内容,在介绍的过程中,紧密结合课程设计任务书,首先分
析课程设计的任务;提出解决任务的思路和方法;然后提供解决方案:
MATLAB程序;并
对运行MATLAB程序得到的结果进行分析。
2、课程设计的具体内容
根据课程设计任务书,首先需要录制一段声音文件;在MATLAB下读取该文件得到
数字语音信号,利用FFT对数字语音信号进行谱分析;设计滤波器,并利用滤波器对语音
信号进行处理,对滤波结果进行分析,得出结论。
这里的范文,没有在Windows下实际录制声音文件,而是采用Windows自身提供的
声音文件WindowsShutdown.wav。
Windows提供的声音文件都是双声道的,即既有左声道,
又有右声道的声音。
因此,下面具体设计的过程中仅取出了一个声道进行分析和处理。
下
面按课程设计任务书,分别阐述设计的具体内容。
1
2.1、原始语音信号的读取和分析
2.1.1、读取语音信号的任务
根据课程设计任务书,首先需要录制一段声音文件;在MATLAB下读取该文件得到
数字语音信号,并利用FFT对数字语音信号进行谱分析。
2.1.2、任务分析和解决方案
这里采用Windows自身提供的声音文件WindowsShutdown.wav。
MATLAB提供了读
取语音文件的函数:
[y,Fs,nbits]=wavread(filename);
该函数读取名为filename的文件,并将读取得到的数字语音信号放在了变量y中;语
音的采样率用Fs表示;nbits则表示语音变量的位数。
这样一来,利用该函数即可完成语
音信号的读取。
在得到数字语音信号之后,即可利用MATLAB提供的FFT函数对该语音信号进行处
理,得到语音信号的频谱。
2.1.3、编程得到的MATLAB代码
解决以上问题,编程得到的代码如下:
[x,fs,nbits]=wavread('C:
\Windows\Media\WindowsShutdown.wav');
x1=x(:
1);
datlen=length(x1);
Time=(0:
datlen-1)/fs;
freq=(-datlen/2:
datlen/2-1)/datlen*fs;
xfft=fftshift(fft(x1));
%读取一个声道的声音
%获取声音序列的长度
%声音持续对应的时间
%频率指标
%求得声音序列的频谱
2.1.4、运行结果和相应的分析
运行以上代码得到的结果如图1所示:
2
声音的时域波形
0.04
0.03
0.02
0.01
0
-0.01
-0.02
-0.03
0
0.2
0.4
0.6
0.8
1
1.2
1.4
声音的持续时间[s]
声音的频域波形
80
70
60
50
40
30
20
10
0
-25
-20
-15
-10
-5
0
5
10
15
20
25
频率[kHz]
图1语音信号的时域和频域波形
通过图1可以看出,语音信号中有两个十分明显的谱线,一个频率约为1.318kHz,另
一个频率大约为2.64kHz。
在1.318kHz以内还有若干个低频的谱线。
从时域上看,先有一
个高频的声音,然后出现一个低频的声音。
2.2、IIR滤波器设计和滤波处理
2.2.1、设计任务
根据课程设计任务书,要求用双线性变换法设计butterworth型IIR滤波器,且滤波器
的技术指标满足:
(1)低通滤波器性能指标fb=1000Hz,fc=1200Hz,As=20dB,Ap=1dB。
(2)高通滤波器性能指标fc=4800Hz,fb=5000Hz,As=30dB,Ap=1dB。
在设计滤波器之后,利用滤波器对语音信号进行处理,并分析滤波前后的差别。
2.2.2、任务分析和解决方案
在MATLAB中,有几种设计IIR滤波器的方法,可以首先设计出模拟滤波器,再利用
双线性变换法转换成相应的数字滤波器;也可以直接利用MATLAB提供的函数设计得到
数字滤波器,设计Butterworth滤波器的基本原理,可以参见文献[3]。
MATLAB提供了butter函数,可以直接按双线性变换法设计IIR滤波器,在运行butter
函数之前,需要根据技术指标要求计算滤波器的阶数和3dB截止频率,MATLAB提供了
3
声音的幅度
声音频谱幅度
以下函数:
[n,Wn]=buttord(Wp,Ws,Rp,Rs);
其中Wp、Ws分别为通带截止频率和阻带截止频率;Rp和Rs为通带最大衰减和阻带
最小衰减。
在计算得到阶数n和3dB截止频率Wn之后,可以运行:
[b,a]=butter(n,Wn)
得到滤波器系数b和a。
高通滤波器的设计是一样的。
在设计得到滤波器系数之后,可以运行:
y=filter(b,a,x)
对输入信号x进行滤波,得到结果y。
2.2.3、编程得到的MATLAB代码
解决以上问题,编程得到的代码如下,其中低通IIR滤波器的代码为:
fp=1350;
ft=2500;
wp=2*pi*fp;
ws=2*pi*ft;
Rp=1;
Rs=20;
[N,Wn]=buttord(wp,ws,Rp,Rs,'s');
[Z,P,K]=buttap(N);
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
型低通滤波器
[bzlp,azlp]=bilinear(b,a,fs);
%通带截止频率,单位:
Hz
%阻带截止频率,单位:
Hz
%通带截止频率,单位:
rad/s
%阻带截止频率,单位:
rad/s
%通带最大衰减,单位:
dB
%阻带最小衰减,单位:
dB
%计算滤波器的阶数和3dB截止频率
%计算butterworth归一化滤波器的零极点
%将零极点转化为滤波器系数
%将归一化滤波器转换为满足技术指标的原
%用双线性变换法实现模拟滤波器到数字滤波器
的转换
通过以上代码可以发现,在设计低通IIR滤波器的时候,采用了先设计模拟滤波器,
再通过双线性变换法得到数字低通滤波器的办法。
高通滤波器的设计代码为:
ft=1350;
fp=2500;
%通带截止频率,单位:
Hz
%阻带截止频率,单位:
Hz
4
wpz=fp/(fs/2);
wsz=ft/(fs/2);
Rp=1;
Rs=30;
[N,Wn]=ellipord(wpz,wsz,Rp,Rs);
[Bzhp,Azhp]=ellip(N,Rp,Rs,Wn,'high');
%数字通带截止频率,单位:
rad
%数字通带截止频率,单位:
rad
%通带最大衰减,单位:
dB
%阻带最小衰减,单位:
dB
%计算数字滤波器的阶数和3dB截止频率
%直接设计数字滤波器
在设计高通滤波器的时候,采用直接设计数字滤波器的方法,实际上在MATLAB中
直接设计数字IIR滤波器默认采用双线性变换法。
通过以上代码可以看出,在设计高通滤
波器的时候,有意使用了椭圆滤波器,这样可以降低滤波器的阶数,同学们在设计过程中
可以依然根据任务书的要求采用Butterworth滤波器。
2.2.4、运行结果和相应的分析
设计得到的低通IIR滤波器的频率响应函数如图2所示:
0
-50
-100
-150
-200
-250
-300
IIR低通滤波器的幅频响应
-350
0
5
10
15
20
25
频率[kHz]
0
-1
-2
-3
-4
-5
-6
-7
IIR低通滤波器的相频响应
-8
0
5
10
15
20
25
频率[kHz]
图2
IIR低通滤波器的频率响应
通过图2可以看出,设计得到的IIR低通滤波器满足课程设计的技术指标要求。
设计得到的高通IIR滤波器的频率响应函数如图3所示:
5
幅度[dB]
相位[rad]
0
-50
-100
-150
-200
-250
IIR高通滤波器的幅频响应
-300
0
5
10
15
20
25
频率[kHz]
5
4
3
2
1
IIR高通滤波器的相频响应
0
0
5
10
15
20
25
频率[kHz]
图3
IIR高通滤波器的频率响应
通过图3可以看出,设计得到的IIR高通滤波器满足课程设计的技术指标要求。
利用图2设计的滤波器对语音信号进行滤波处理,得到的滤波结果与原始信号的比较
如图4和图5所示:
声音的时域波形
0.04
0.03
0.02
0.01
0
-0.01
-0.02
-0.03
0
0.2
0.4
0.6
0.8
1
1.2
1.4
声音的持续时间[s]