数字信号处理—课程设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数字信号处理课程设计”。
广西工学院
数字信号处理课程设计
题目:语音信号的处理与滤波
系 别: 计算机系 专 业 : 通 信 工 程 班 级: 学 号 : 姓 名 : 指导教师: 日 期: 2012-1-3
摘要:
本次设计主要是利用MATLAB工具对自己的语音进行录制,然后通过自己设计IIR滤波器进行语音信号滤波以及分析等,从而对以前所学的知识进行一个系统的归纳和理解,从实际应用操作当中体会《数字信号处理》这门课程的相关乐趣及其重要的知识点。
一、课程设计目的:
综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。
二、课程设计内容:
设计题目一: 语音信号的处理与滤波
1.熟悉并掌握MATLAB中有关声音(wave)录制、播放、存储和读取的函数。2.在MATLAB环境中,使用声音相关函数录制2秒左右自己的声音,抽样率是8000Hz/s。(考虑如何解决一个实际问题:录制刚开始时,常会出现实际发出声音落后录制动作半拍的现象,如何排除对这些无效点的采样?)
3.分别取8000个和16000个数据进行频谱分析,得到幅度和相位谱,比较二者异同并分析原因。
4.针对电话信道(最高3500Hz),设计一个FIR或IIR滤波器进行滤波,把抽样率转变为7000Hz/s,并进行频谱分析,得到幅度和相位谱。
5.把处理后的所有数据储存为声音文件,与原始声音进行比较。
三、基本步骤:
1.语音信号的采集
熟悉并掌握MATLAB中有关声音(wave)录制、播放、存储和读取的函数,在MATLAB环境中,使用声音相关函数录制3秒左右自己的声音。(考虑如何解决一个实际问题:录制刚开始时,常会出现实际发出声音落后录制动作半拍的现象,如何排除对这些无效点的采样?)的系统界面上可以选择滤波器的类型,输入滤波器的参数,显示滤波器的频率响应,选择信号等。
四、相关原理知识
1、录音原理
采用Matlab中的两个函数可以用于实现录音功能,一个是waverecord函数调用windows音频设备进行录音,主要用于实时语音采集。第二个是使用Matlab 中的wavread函数也可以进行语音采集。不过wavread函数只能读取计算机中已经有的“.wav” 文件,因此必须事先使用windows的录音机等设备把要用的语音录制并存为“.wav” 文件格式。显然wavread函数不能用于实时语音信号采集。另外语音采集的频率和精度不能改变。回放同样也有两个函数Sound函数和wavplay,而后者的功能比前者少。但在本设计中主要是对已有的信号进行处理,所以选用wavread函数。但,由于信号的时域描述只能反映信号的幅值随时间的变化情况,除只有一个频率分量的简谐波外一般很难明确揭示信号的频率组成和各频率分量的大小,因此,我们要把它转换成频域来分析,它能够提供比时域信号波形更直观,丰富的信息。
2、滤波器的设计原理及设计方法
FIR滤波器的设计问题在于寻求一系统函数H(z),使其频率响应H(ej)逼近滤波器要求的理想频率响应Hd(ej),其对应的单位脉冲响应hd(n)。
1、用窗函数设计FIR滤波器的基本方法
设计思想:从时域从发,设计h(n)逼近理想hd(n)。设理想滤波器Hd(ej)的单位脉冲响应为hd(n)。以低通线性相位FIR数字滤波器为例。
(3)汉宁(Hanning)窗,又称升余弦窗
12nw(n)[1cos()]RN(n)
2N1其频率响应和幅度响应分别为:
j(22jW(e){0.5WR()0.25[WR()WR()]}eN1N1W()ejaN1)2
W()0.5WR()0.25[WR(22)WR()]N1N1(4)汉明(Hamming)窗,又称改进的升余弦窗
2nw(n)[0.540.46cos()]RN(n)
N1其幅度响应为:W()0.54WR()0.23[WR(22)WR()] N1N1(5)布莱克曼(Blankman)窗,又称二阶升余弦窗
2n4nw(n)[0.420.5cos()0.08cos()]RN(n)
N1N122W()0.42WR()0.25[WR()WR()]N1N1其幅度响应为:
440.04[WR()WR()]N1N1(6)凯泽(Kaiser)窗
I0(1[12n/(N1)]2)w(n),0nN1
I0()其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越大,过渡带越宽,阻带越小衰减也越大。I0(·)是第一类修正零阶贝塞尔函数。
若阻带最小衰减表示为As20log10s,β的确定可采用下述经验公式:
五、实现过程
1.录制自己的声音文件(wav格式),内容为“恭喜发财 ”其实现代码: fs=8000;%抽样频率 channel=1;%1信道
t=3;%设定录音时间为3秒钟
fprintf('按任意键后开始 %d 秒录音:',t);%提示按任意键后开始 t 秒录音 pause;%暂停命令
fprintf('录音中...');%显示当前正在录音当中
x=wavrecord(t*fs,fs,channel,'double');%调用录制自己的声音信号函数
fprintf('录音结束n');%显示录音已经结束
wavwrite(x,fs,'F:数字信号处理数字信号课程设计 CEG和弦音.wav ');%存储录音信号的文件夹
fprintf('按任意键后回放:');%提示文字 pause;%作用是暂停
wavplay(x,fs);%播放录制的声音函数
下面读取原有声音文件,画出它的时域图形,实现代码:
y=wavread('F:数字信号处理数字信号课程设计 CEG和弦音.wav',[1 20000]);%读取原有声音文件及取点范围
plot(y);%画出声音时域图形 title('原始声音信号时域图形');%标题 xlabel('时间');%x轴坐标 ylabel('幅值');%y轴坐标 grid;%添加网格线
2.分别取8000个和16000个数据进行频谱分析,得到幅度和相位谱,比较二者异同并分析原因。
%.................................取8000点频谱分析
y=wavread('F:数字信号处理数字信号课程设计 CEG和弦音.wav');%读取原始语音信号
d=fft(y,8000);%对语音信号做8000点的FFT变换 subplot(2,2,1);plot(abs(d));%绘出语音信号的幅度谱 xlabel('频率');%X轴频率 ylabel('幅值');%Y轴幅值
title('8000点幅度谱');%标题8000点幅度谱 grid;%添加网格 subplot(2,2,2);%分割窗口
plot(angle(d));%绘出语音信号的相位谱 xlabel('频率');%X轴频率 ylabel(' angle(d)');%Y轴angle(d)title('8000点相位谱');%标题8000点相位谱 grid;%添加网格
观察图可以看出取8000点和取16000点所得的幅度谱和相位谱的图形基本上是相同的;不同之处只有8000点图形线比16000点的图形线梳松。抽样频率相同情况下,对不同点数进行频谱分析得出的幅度谱和相位谱线疏密是不同,点数越多,线越密。3.滤波器的设计:
针对电话信道我们设计一个IIR低通滤波器对我们录制的语音进行滤波,具体程序如下: %低通滤波器设计
wp=2*1200/7000;%归一化通带数字频率wp ws=2*1000/7000;%归一化阻带数字截止频率ws Rp=0.5;%通带波纹系数Rp Rs=100;%最小阻带衰减Rs [N,Wn]=buttord(wp,ws,Rp,Rs);%求阶数N和滤波器截止频率Wn [num,den]=butter(N,Rp);%传输分子和分母的系数 [h,w]=freqz(num,den);%求频率响应
subplot(2,1,1);%窗口分成2行1列绘图区,第1个区为当前活动区 plot(w/pi,abs(h));%二维连续图形 grid;%添加网格 title('巴特沃思型低通滤波器的幅频响应');%加图形说明
xlabel('omega/pi');%加X轴说明(/后表示转义字符)ylabel('振幅(幅值)');%加Y轴振幅(幅值
subplot(2,1,2);%窗口分成2行1列绘图区,第2个区为当前活动区 plot(w/pi,20*log10(abs(h)));%二维连续图形 grid;%添加网格 title('巴特沃思型低通滤波器的幅频响应');%加图形说明
xlabel('omega/pi');%加X轴说明(/后表示转义字符)ylabel('振幅(分贝)');%加Y轴振幅(分贝)
5.把处理后的所有数据存储为声音文件,与原始声音进行比较 程序如下:
%原始语音与滤波后的信号比较 fs=8000;y=wavread('F:数字信号处理数字信号课程设计 CEG和弦音.wav');%原始语音信号
y1=wavread('F:数字信号处理数字信号课程设计CEG和弦音1.wav');%读取滤波后语音信号 yx=fft(y);yx1=fft(y1);subplot(2,1,1)plot(20*log10(abs(yx)));title('滤波前的相对幅度谱');subplot(2,1,2);plot(20*log10(abs(yx1)));title('滤波后的相对幅度谱');
所学的理论知识,从此次课程设计中也提升了我对问题的发现、分析和解决的能力。不过课程设计的过程中也遇到了各种困难,但我还是坚持下来了。所以我得到了一个结论:无论做什么课程设计,都需要要有一定的理论知识作为基础,并通过查阅资料,找出你所需的,运用到实验中不仅可以验证你的猜想,且又丰富你的课外知识。成功正在尽头。
七、参考文献:
[1]MATLAB6x.数字信号处理教程(第三版)清华大学出版社, 2007年2月
程佩青 编著 [2]MATLAB在信号处理中的应用(第二版)
清华大学出版社,2008年1月
薛年喜编著
目 录摘要...........................................................................................................................................1 1 绪论 .........
课程设计报告课程名称: 数字信号处理 课题名称: 语音信号的处理与滤波姓 名: 学 号: 院 系: 专业班级: 指导教师: 完成日期: 2013年7月2日目录第1部分 课程设计报告…………………......
数字信号处理课程设计教学大纲课程设计编码:1213261 周数:1 学分:1 适用专业:通信工程、电子信息工程一、课程设计的性质与任务1.课程性质:《数字信号处理》是电子信息工程专业本......
数字信号处理课程设计探索学术论文摘要:本文针对数字信号处理课程设计实践课程,提出了通过团队学习模式培养应用型人才的方法,采用团队学习模式的课程设计理念,培养学生的创新和......
刀豆文库小编为你整合推荐3篇数字信号处理课程设计探索学术论文,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......