基于Matlab的语音信号处理1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字信号处理课程设计
题目:基于Matlab语音处理
学院:信息工程学院
专业:通信工程
班级: 1003班
学号: 2010013553、2010013579
姓名:郭丹丹、武小飞
指导教师:金星
目录
摘要 (3)
第一章背景 (4)
第二章设计目的与要求 (6)
第三章设计过程 (7)
3.1.理论依据 (7)
3.2.信号采集 (7)
3.3.数字滤波器设计 (8)
3.4.信号处理 (8)
3.5.不同的滤波器的性能比较 (8)
第四章设计原理 (9)
4.1语音信号的采样 (9)
4.2 数字滤波器的设计 (11)
4.3.滤波器的性能指标 (11)
第五章实验代码及结果 (12)
5.1原语音信号的波形图和频谱分析 (12)
5.2 语音信号的定点分析 (13)
5.3切比雪夫I型低通滤波器 (15)
5.4椭圆低通滤波器 (16)
5.5 语音信号滤波后的还原波形 (17)
(1).I型切比雪夫FIR滤波后的还原波形 (17)
(2). 椭圆FIR滤波后还原波形 (18)
第六章收获与体会 (20)
参考文献 (22)
摘要
MATLAB 语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件, 然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等, 信号处理是MATLAB 重要应用的领域之一。

本课程设计介绍了基于Matlab的对语音信号采集、处理及滤波器的设计,并使之实现的过程。

理解与掌握课程中的基本概念、基本原理、基本分析方法,用Matlab进行数字语音信号处理,并阐述了课程设计的具体方法、步骤和内容。

综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。

关键词:MATLAB 工具信号语音采集滤波器
第一章背景
语音信号处理是一门比较实用的电子工程的专业课程,语音是人类获取信息的重要来源和利用信息的重要手段。

通过语言相互传递信息是人类最重要的基本功能之一。

语言是人类特有的功能,它是创造和记载几千年人类文明史的根本手段,没有语言就没有今天的人类文明。

语音是语言的声学表现,是相互传递信息的最重要的手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。

语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,它是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。

第二章设计目的与要求
本次课程设计的目的是利用MATLAB对语音信号进行数字信号处理和分析,要求学生采集语音信号后,在MATLAB软件平台进行频谱分析。

要求利用MATLAB来读入(采集)语音信号,将它赋值给某一向量。

再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波。

然后我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。

通过课程设计,主要达到以下目的:
1、使学生进一步掌握数字信号处理课程的基本理论、基本方法和基本技术。

2、使学生增进对MATLAB的认识,利用MATLAB加深对理论知识的理解。

3、使学生了解和掌握使用MATLAB的应用过程和方法,为以后的设计打下良好基础。

4、通过课程设计,培养学生能根据设计要求,进行理论知识分析、设计方法总结、典型实例设计等方面的设计综合能力。

5.掌握数字信号处理的基本概念、基本理论和基本方法;
6.掌握MATLAB设计FIR和IIR数字滤波器的方法;
7.掌握在Windows环境下语音信号采集以及时域、频域分析;
8.学会MATLAB的使用,掌握MATLAB的程序设计方法;
9.学会用MATLAB对信号进行分析和处理。

第三章设计过程
3.1.理论依据
根据设计要求分析系统功能,掌握设计中所需理论(采样频率、采样位数的概念,采样定理;时域信号的FFT分析;数字滤波器设计原理和方法,各种不同类型滤波器的性能比较,阐明设计原理。

3.2.信号采集
采集语音信号,并对其进行FFT频谱分析,画出信号的时域波形图和频谱图。

语音信号采集流程图
3.3.数字滤波器设计
根据待处理信号特点,设计合适数字滤波器,绘制所设计滤波器的幅频和相频特性。

3.4.信号处理
用所设计的滤波器对音信号进行滤波。

对滤波后的语音信号进行FFT频谱分析。

画出处理过程中所得各种波形及频谱图。

对语音信号进行回放,感觉滤波前后声音的变化。

比较滤波前后语音信号的波形及频谱,对所得结果和滤波器性能进行频谱分析,阐明原因,得出结论。

3.5.不同的滤波器的性能比较
根据实验结果对比分析椭圆滤波器与I型切比雪夫滤波器的性能,分析信号经过滤波以后的频谱变化差异,以及信号的还原。

第四章设计原理
4.1语音信号的采样
采样器的作用是把连续信号变成脉冲或数字序列。

图中示
出了一个连续信号f(t)经采样器采样后变成离散信号的
过程
图2连续信号f(t)经采样器采样后变成离散信号
图中f(t)为被采样的连续信号,s(t)为周期性窄脉冲信号,f s(t)为采样后的离散信号,它用下式来表征:
f s(t)=f(t)s(t)
采样信号的频率特性为:
如果|F *(j )|中各个波形不重复搭接,相互间有一定的距离
(频率)即:
即采样定理可叙述如下:如果采样周期满足下列条件,即:

中为连续信号f (t )的最高次谐波的角频率。

则采样信号 f *(t )就可以无失真的再恢复为连续信号f (t )。

需要指出的
是,采样定理只是在理论上给出了信号准确复现的条件。

我们可以利用w i n d o w s 自带的录音机录制语音文件,进行数
字信号的采集。

(开始—程序—附件—娱乐—录音机,文件—属
性—立即转换—8000K H z ,8位,单声道)或其他软件,将话筒
输入计算机的语音输入插口上,启动录音机,录制一段自己的话音。

然后在M A T L A B 软件平台下,利用函数w a v r e a d 对语音信号进行采样,记住采样频率和采样点数。

通过w a v r e a d 函数的使用进一步理解采样频率、采样位数等概念。

图2是基于P C 机的语
音信号采集过程:
图3 声音采集过程
4.2 数字滤波器的设计
设计数字滤波器的任务就是寻求一个因果稳定的线性时不变系统,并使系统函数H(z)具有指定的频率特性。

数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR )滤波器和有限长冲激响应(FIR )滤波器。

IIR 滤波器的特征是,具有无限持续时间冲激响应。

这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。

FIR 滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。

1.核心原理:
通过对连续函数ha(t)等间隔采样得到离散序列ha(nT)。

令h(n)= ha(nT) ,T 为采样间隔。

它是一种时域上的转换方法。

2.转换步骤:
()()
()()
()a a a Z H s h t h nT h n H z −−−−→−−−−→=−−−→拉氏逆变换等间隔采样变换
4.3.滤波器的性能指标
在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。

在很多实际应用中,数字滤波器常常被用来实现选频操作。

因此,指标的形式一般在频域中给出幅度和相位响应。

幅度指标主要以两种方式给出。

第一种是绝对指标。

它提供对幅度响应函数的要求,一般应用于FIR 滤波器的设计。

第二种指标是相对指标。

它以分贝值的形式给出要求。

在工程实际中,这种指标最受欢迎。

对于相位响应指标形式,通常希望系统在通频带中人有线性相位。

运用线性相位响应指标进行滤波器设计具有如下优点:①只包含实数算法,不涉及复数运算;②不存在延迟失真,只有固定数量的延迟;③长度为N 的滤波器(阶数为N-1),计算量为N/2数量级。

第五章实验代码及结果
5.1原语音信号的波形图和频谱分析
5.1.1 下面的一段程序是语音信号在MATLAB中的最简单表现,原语音信号的波形图和频谱图
[x1,fs,bits]=wavread('D:\sm.wav'); %读取语音信号sm.wav
%sound(x1,fs,bits); %重放语音
y1=fft(x1); %做length(x1)点的FFT
derta_fs = fs/length(x1); %设置频谱的间隔,分辨率subplot(2,1,1);plot(x1); title('原始语音信号'); %做原始语音信号的时域图形
xlabel('时间 t'); ylabel('音量 n');
subplot(2,1,2);
plot([-fs/2:derta_fs: fs/2-derta_fs],abs(y1));
title('原始语音信号的频谱'); %画出原始语音信号的频谱图xlabel('时间 t'); ylabel('音量 n');
图5-1 原语音信号的波形图形与频谱
5.2 语音信号的定点分析
5.5.2已知一个语音信号,数据采样频率为1000Hz,试分别绘制N=128点DFT的幅频图和N=1024点DFT幅频图。

编程如下:
[x,fs,bits]=wavread('D:\sm.wav');
sound(x,fs,bits);
fs=1000;N=1024;
y=fft(x,N);
magy=abs(y);
f=(0:length(y)-1)'*fs/length(y);
subplot(2,2,1),plot(f,magy);
xlabel('频率(Hz)');ylabel('幅值');
title('N=1024(a)');
grid on
subplot(2,2,2),plot(f(1:N/2),magy(1:N/2));
xlabel('频率(Hz)'),ylabel('幅值');
title('N=1024(b)');
grid on
fs=1000;N=2048;
y=fft(x,N);
magy=abs(y);
f=(0:length(y)-1)'*fs/length(y);
subplot(2,2,3),plot(f,magy);
xlabel('频率(Hz)'),ylabel('幅值');
title('N=2048(c)');grid
subplot(2,2,4),plot(f(1:N/2),magy(1:N/2)); xlabel('频率(Hz)'),ylabel('幅值');
title('N=2048(d)');
grid on
图5-2 语音信号的幅频图
5.3切比雪夫I型低通滤波器
[I,Fs,bits]=wavread('D:\sm.wav'); %读取语音信号sm.wav
fp=1000; %通带截止频率
fr=1200; %阻带角频率
ap=1; %通带纹波
as=40; %阻带衰减
[n,fn]=cheb1ord(fp/(Fs/2),fr/(Fs/2),ap,as,'z'); %切比雪夫I型滤波器 [b,a]=cheby1(n,ap,fn,'low'); %I型切比雪夫滤波器 [h,w]=freqz(b,a); %滤波器的频率响应 I1=fftfilt(b,I); %FFT的FIR滤波
I2=fft(I1); %切比雪夫I FIR滤波后语音信号频谱分析 subplot(3,2,1),plot(I);title('原始语音信号');
subplot(3,2,2);plot(w*Fs/(2*pi),abs(h));
title('切比雪夫1低通滤波');
subplot(3,2,3);plot(I1);
title('切比雪夫1FIR滤波后语音信号');
subplot(3,2,4);plot(abs(I2));
title('切比雪夫1FIR滤波后语音信号频谱');
subplot(3,2,5);plot([h,w]);title('滤波器的频率响应');
sound(I,Fs,bits); %重放语音
5.4椭圆低通滤波器
[I,Fs,bits]=wavread('D:\sm.wav'); %读取语音信号sm.wav
fp=1000; %通带截止频率
fr=1200; %阻带角频率
ap=1; %通带纹波
as=40; %阻带衰减
[n,fn]=ellipord(fp/(Fs/2),fr/(Fs/2),ap,as,'z'); %最小椭圆滤波器
[b,a]=ellip(n,ap,as,fn); %椭圆滤波器
[h,w]=freqz(b,a); %波器的频率响应
I1=fftfilt(b,I); %FFT的FIR滤波
I2=fft(I1); %椭圆FIR滤波后语音信号频谱分析subplot(3,2,1),plot(I);title('原始语音信号');
subplot(3,2,2);plot(w*Fs/(2*pi),abs(h));title('椭圆低通滤波'); subplot(3,2,3);plot(I1);title('椭圆FIR滤波后语音信号');
subplot(3,2,4);plot(abs(I2));title('椭圆FIR滤波后语音信号频谱');
subplot(3,2,5);plot([h,w]);title('滤波器的频率响应');
sound(I,Fs,bits); %重放语音
5.5 语音信号滤波后的还原波形
(1).I型切比雪夫FIR滤波后的还原波形
[I,Fs,bits]=wavread('D:\sm.wav'); %读取语音信号sm.wav
fp=1000; %通带截止频率
fr=1200; %阻带角频率
ap=1; %通带纹波
as=40; %阻带衰减
[n,fn]=cheb1ord(fp/(Fs/2),fr/(Fs/2),ap,as,'z');%切比雪夫I型滤波器[b,a]=cheby1(n,ap,fn,'low'); %I型切比雪夫滤波器
I1=fftfilt(b,I); %FFT的FIR滤波
I2=fft(I1); %I型切比雪夫滤波后的频谱分析I3=ifft(I2); %I型切比雪夫滤波后的波形还原subplot(2,1,1);plot(abs(I1));title(' I型切比雪夫滤波后的波形')
subplot(2,1,2);plot(abs(I3));title(' I型切比雪夫滤波后的还原波形'); sound(I,Fs,bits); %重放语音
(2). 椭圆FIR滤波后还原波形
[I,Fs,bits]=wavread('D:\sm.wav'); %读取语音信号sm.wav
fp=1000; %通带截止频率
fr=1200; %阻带角频率
ap=1; %通带纹波
as=40; %阻带衰减
[n,fn]=ellipord(fp/(Fs/2),fr/(Fs/2),ap,as,'z'); %最小椭圆滤波器
[b,a]=ellip(n,ap,as,fn); %椭圆滤波器
I1=fftfilt(b,I); %FFT的FIR滤波I2=fft(I1); %椭圆FIR滤波后语音信号频谱分析I3=ifft(I2); % 椭圆FIR滤波后波形还原
subplot(2,1,1);plot(abs(I1));title('椭圆FIR滤波后的波形');
subplot(2,1,2);plot(abs(I3));title('椭圆FIR滤波后还原波形');
sound(I,Fs,bits); %重放语音
小结。

第六章收获与体会
本设计圆满的完成了对语音信号的读取与打开,与课题的要求十分相符;本设计也较好的完成了对语音信号的频谱分析,通过fft变换,得出了语音信号的频谱图;
在滤波这一块,课题主要是从巴特沃斯滤波器入手来设计滤波器,也从一方面基本实现了滤波;
初略的完成了界面的设计,但也存在相当的不足,只是很勉强的达到了打开语音文件、显示已定滤波前后的波形等图。

语音信号处理是语音学与数字信号处理技术相结合的交叉学科,课题在这里不讨论语音学,而是将语音当做一种特殊的信号,即一种“复杂向量”来看待。

也就是说,课题更多的还是体现了数字信号处理技术。

从课题的中心来看,课题是希望将数字信号处理技术应用于某一实际领域,这里就是指对语音的处理。

作为存储于计算机中的语音信号,其本身就是离散化了的向量,我们只需将这些离散的量提取出来,就可以对其进行处理了。

在这里,用到了处理数字信号的强有力工具MATLAB,通过MATLAB里几个命令函数的调用,很轻易的在实际化语音与数字信号的理论之间搭了一座桥。

课题的特色在于它将语音看作了一个向量,于是语音数字化了,则可以完全
利用数字信号处理的知识来解决。

我们可以像给一般信号做频谱分析一样,来给语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。

但由于知识能力有限,当中也存在相当的不足,特别体现在滤波与界面设计这一块。

对滤波的研究,本文只是举出了很小的一个方面,还有许多精髓都未能一一列举。

在这次课程设计过程中 感触很深 由于对MATLAB图像处理的函数不熟悉 导致自己走了很多的弯路 通过本次课程设计 使自己对MATLAB 设计流程有了比较深刻的体会 同时也了解了一般软件设计的过程。

在设计过程中碰到了很多的问题 通过这些问题 使自己分析问题 解决问题的能力得到了较大的提高。

以后一定更加努力的提高自己个方面的知识和能力!
参考文献
【1】(美) Sanjit K. Mitra著;孙洪, 余翔宇等译.数字信号处理实验指导书:MATLAB版.北京:电子工业出版社,2005
【2】杨述斌,李永全. 数字信号处理实践教程.武汉:华中科技大学出版社,2007年1月
【3】陈怀琛.MA TLAB及在电子信息课程中的应用.北京电子工业出版社.2008.1
【4】张文.基于MATLAB的语音信号的滤波域实现.山西电子技术.2008.2 【5】徐靖涛.基于MA TLAB的语音信号分析与处理.重庆科技学院学报.2008.1
【6】程佩青. 数字信号处理教程 第三版.清华大学出版社. 2007.2
【7】陈后金. 数字信号处理 第2版.高等教育出版社. 2008.11
【8】谢希仁.计算机网络 第五版 [M]. 北京 电子工业出版社,2008.2 【9】胡小强.计算机网络[M] 北京 北京邮电大学出版社,2005.1。

相关文档
最新文档