基于MATLAB的语音信号采集和窗函数法滤波_第1页
基于MATLAB的语音信号采集和窗函数法滤波_第2页
基于MATLAB的语音信号采集和窗函数法滤波_第3页
基于MATLAB的语音信号采集和窗函数法滤波_第4页
基于MATLAB的语音信号采集和窗函数法滤波_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录摘要01 matlab 程序设计的基本方法 1 2 数字信号处理的基本理论与方法 2 2.1 设计理论依据 , 2 2.1.1 采样定理 , 2 2.1.2 采样频率 , 3 2.1.3 采样位数与采样频率 , 33 利用 matlab 采集语言信号并分析 43.1 语音的录入与打开 , 43.2 时域信号的 fft分析, 43.3 程序设计源代码 ,5 4 用 matlab 环境采用窗函数法设计数字滤波器8 4.1 数字滤波器的设计过程 ,84.2 利用窗函数法设计线性相位fir 数字滤波器 ,8 4.2.1 常见窗函数 , 8 4.2.2 matlab 窗函数的实现 , 10 4.3

2、利用 hanning 窗设计低通滤波器 ,11 5 根据所设计的低通滤波器对语音信号进行处理并分析 14 6 心得体会 16 参考文献 17 1 1 matlab 程序设计的基本方法matlab 是矩阵实验室( matrix laboratory)的简称,是美国mathworks 公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括 matlab 和simulink 两大部分。 matlab 和 mathematica 、maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。matlab 可以进行矩阵运算、绘制

3、函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。matlab 产品族可以用来进行以下各种工作: 数值分析 数值和符号计算 工程与科学绘图 控制系统的设计与仿真 数字图像处理技术 数字信号处理技术 通讯系统设计与仿真 财务与金融工程2 2 数字信号处理的基本理论与方法2.1 设计理论依据图 1 原理示意图2.1.1 采样定理在进行模拟 / 数字信号的转换过程中,当采样频率fs.max 大于信号中,最高频率 fmax 的 2 倍时,即:fs.max=2fmax, 则采样之后的数字信号完整地保留

4、了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的 510 倍;采样定理又称奈奎斯特定理: 理想低通信道的最高大码元传输速率=2w*log2 n ( 其中 w是理想低通信道的带宽 ,n 是电平强度 ) 3 2.1.2 采样频率采样频率(也称为采样速度或者采样率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。采样频率只能用于周期性采样的采样器,对于非周期性采样的采样器没有规则限制。采样频率的常用的表示符号是 f_s 。2.1.3 采样位数与采样频率采样位数可以理解为声卡处理声音的解析度。这

5、个数值越大,解析度就越高,录制和回放的声音就越真实。电脑中的声音文件是用数字0和 1 来表示的,所以在电脑上录音的本质就是把模拟声音信号转换成数字信号。反之,在播放时则是把数字信号还原成模拟声音信号输出。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。采样位数和采样频率对于音频接口来说是最为重要的两个指标,也是选择音频接口的两个重要标准。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。每增加一个采样位数相当于力度范围增加了 6db。采样位数越多则捕捉到的信号越精确。采样率越高,计算机摄取的图片越多,对于原始音频的还原也越加精确。4

6、3 利用 matlab 采集语言信号并分析3.1 语音的录入与打开利用 matlab 中的 wavread命令来读入(采集)语音信号,将它赋值给某一向量。再将该向量看作一个普通的信号,对其进行fft变换实现频谱分析,再依据实际情况对它进行滤波。对于波形图与频谱图(包括滤波前后的对比图) 都可以用 matlab 画出。我们还可以通过 sound 命令来对语音信号进行回放,以便在听觉上来感受声音的变化。y,fs,bits=wavread(blip,n1 n2) ,用于读取语音,采样值放在向量 y 中,fs 表示采样频率 (hz) ,bits表示采样位数。 n1 n2 表示读取从 n1点到 n2点的

7、值(若只有一个n的点则表示读取前n点的采样值)。sound(x,fs,bits); 用于对声音的回放。向量y 则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。3.2 时域信号的 fft分析函数的一种调用格式为:y=fft(x) 其中, x 是序列, y 是序列的 fft ,x 可以为一向量或矩阵,若x 为一向量, y 是 x 的 fft 。且和 x 相同长度。若 x 为一矩阵,则 y 是对矩阵的每一列向量进行fft 。如果 x 长度是 2 的幂次方,函数 fft执行高速5 基2fft算法;否则 fft执行一种混合基的离散傅立叶变换算法,计

8、算速度较慢。函数 fft的另一种调用格式为:y=fft(x,n) 式中, x,y 意义同前, n为正整数。函数执行n点的 fft 。若 x 为向量且长度小于 n,则函数将 x 补零至长度 n 。若向量 x 的长度大于 n ,则函数截短 x 使之长度为 n 。若 x 为矩阵,按相同方法对x 进行处理。经函数 fft求得的序列 y 一般是复序列,通常要求其幅值和相位。 matlab提供求复数的幅值和相位函数:abs,angle ,这些函数一般和fft同时使用。3.3 程序设计源代码fs=8000; x1=wavread(c:windowsmediawindows xp 关机.wav); t=(0:

9、length(x1)-1)/8000; figure(1) plot(t,x1) grid on;axis tight; title(原始语音信号 ); xlabel(时间(s); ylabel(幅度); figure(2) plot(abs(fft(x1,40480); grid on;axis tight; 6 title(原始语音信号 fft频谱) xlabel(hz); ylabel(幅度); 图 2 原始语音信号时域波形7 图 3 原始语音信号频谱图8 4 用 matlab 环境采用窗函数法设计数字滤波器数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到

10、频域滤波的目的。根据其单位冲激响应函数的时域特性可分为两类: 无限冲激响应(iir ) 滤波器和有限冲激响应 (fir)滤波器。与 iir 滤波器相比, fir 的实现是非递归的,总是稳定的;更重要的是, fir 滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。因此,它在高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。4.1 数字滤波器设计的过程不论是 iir 滤波器还是 fir 滤波器的设计都包括三步:(1) 按照实际任务的要求,确定滤波器的性能指标。(2) 用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。根据不同的要求可以用iir

11、 系统函数,也可以用fir 系统函数去逼近。(3) 利用有限精度算法实现系统函数,包括结构选择、 字长选择等。4.2 利用窗函数法设计线性相位fir 数字滤波器4.2.1 常用窗函数(l) 矩形窗9 矩形窗使用最多,习惯上不加窗就是使信号通过了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负谱现象。(2) 三角窗三角窗亦称费杰( fejer )窗,是幂窗的一次方形式,三角窗与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣(3) 汉宁窗汉宁(hanning)窗又称升余弦窗,汉宁窗可以看作是3 个矩形时间窗的频谱之和,它可以使

12、用旁瓣互相抵消,消去高频干扰和漏能。汉宁窗与矩形窗的谱图对比,可以看出,汉宁窗主瓣加宽(第一个零点在 2/t 处)并降低,旁瓣则显著减小。第一个旁瓣衰减一32db ,而矩形窗第一个旁瓣衰减 -13db。此外,汉宁窗的旁瓣衰减速度也较快,约为 60db/(10oct ),而矩形窗为 20db/(10oct )。由以上比较可知,从减小泄漏观点出发,汉宁窗优于矩形窗。但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。(4) 海明窗海明(hamming )窗也是余弦窗的一种,又称改进的升余弦窗,海明窗与汉宁窗都是余弦窗,只是加权系数不同。海明窗加权的系数能使旁瓣达到更小。分析表明,海明窗的第一旁瓣

13、衰减为-42db。海明窗的频谱也是由 3 个矩形时窗的频谱合成, 但其旁瓣衰减速度为20db/(10oct ) ,这比汉宁窗衰减速度慢。海明窗与汉宁窗都是很有用的窗函数。除了以上几种常用窗函数以外,尚有多种窗函数,如平顶窗、帕仁(parzen)窗、布拉克曼( blackman)窗、凯塞( kaiser )窗等。对于窗函数的选择,应考虑被分析信号的性质与处理要求。如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用主瓣宽度比较窄10 而便于分辨的矩形窗, 例如测量物体的自振频率等; 如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数

14、,可采用指数窗来提高信噪比。4.2.2 matlab 窗函数的实现利用 matlab 实现窗函数法设计fir 滤波器,主要是选择合适的窗函数进行截断运算。先从理论上得到待逼近理想滤波器的单位脉冲响应,再由通带、阻带衰减指标确定窗函数类型,由过渡带确定fir 滤波器阶数 m ,最后利用 matlab 计算出窗函数的值,以及hdkwnk 的值,由此即得所设计的 fir 滤波器的 hk 。matlab 提供了许多常用的窗函数, 其中部分窗函数的调用形式为w=hanning(n) w=hamming(n) w=blackman(n) w=kaiser(n,beta) 其中 n 是窗函数的长度, bet

15、a 是控制 kaiser窗形状的参数。返回的变量 w是一个长度为 n的列向量,给出窗函数 n点的取值。对于 kaiser窗,matlab 还提供了一个根据带设计滤波器的指标直接计算窗函数的函数,其基本调用形式为m,wc,beta,ftype=kaiserord(f,a,dev) 其中:参数 f 表示需要设计的 fir 滤波器的 b个频带;参数 a 为 b个频带的幅度值,一个通带取 1, 阻带取 0; 参数 dev 为 b个频带中的波动值。11 4.3 利用 hanning 窗设计低通滤波器由题意可知:要设计滤波器滤除信号的高频成分,即设计低通滤波器。故确定设计的低通滤波器的设计指标为:wp=0

16、.3*pi,ws=0.5*pi 程序如下:fs=8000; x1=wavread(c:windowsmediawindows xp 关机.wav); t=(0:length(x1)-1)/8000; f=fs*(0:2047)/4096; a1=0.05;a2=0.10; d=a1*cos(2*pi*3600*t)+a2*sin(2*pi*3800*t); x2=x1+d d; wp=0.3*pi; ws=0.5*pi; wdelta=ws-wp; n=ceil(6.6*pi/wdelta); %取整wn=(0.3+0.5)*pi/2; bz,az=fir1(n,wn/pi,hanning(n

17、+1); %选择窗函数并归一化截止频率figure(1) freqz(bz,az); grid on;axis tight; f2=filter(bz,az,x2); figure(2) subplot(2,1,1) plot(t,x2); 12 grid on;axis tight; title(滤波前的时域波形 ); subplot(2,1,2) plot(t,f2); grid on;axis tight; title(滤波后的时域波形 ); y3=fft(f2,4096); f=fs*(0:2047)/4096; figure(3) y2=fft(x2,4096); subplot(2

18、,1,1); plot(f,abs(y2(1:2048); grid on;axis tight; title(滤波前的频谱 ) xlabel(hz); ylabel(幅度); subplot(2,1,2) plot(f,abs(y3(1:2048); grid on;axis tight; title(滤波后的频谱 ) xlabel(hz); ylabel(幅度); sound(f2,8000); %回放声音13 图3 滤波前后增益响应14 5 根据所设计的低通滤波器对语音信号进行处理并分析图 4 滤波前后时域波形图通过对上图比较可得出设计的低通滤波器滤除了声音信号的高频成分,只剩下了低频成

19、分。15 05001000 1500 2000 2500 3000 350050100150200滤波前的频谱hz幅度05001000 1500 2000 2500 3000 350050100150200滤波后的频谱hz幅度图 5 滤波前后频谱图由图 5 滤波前后对比的频谱图可知,高频成分的频谱幅度接近0,即滤除了高频成分。16 参考文献1、陈怀琛 .matlab 及在电子信息课程中的应用m. 北京:电子工业出版社 .2008,1 2、陈后金 . 数字信号处理(第二版) . 高等教育出版社 .2008,3 3、张文 . 基于 matlab的语音信号的滤波与实现j.山西电子技术.2008,2 4、徐靖涛 . 基于 matlab 的语音信号分析与处理 j. 重庆科技学院学报2心得体会语音信号处理是语音学与数字信号处理技术相结合的交叉学科,课题在这里不讨论语音学,而是将语音当做一种特殊的信号,即一种“复杂向量”来看待。 也就是说,课题更多的还是体现了数字信号处理技术。课题的特色在于它将语音看作了一个向量,于是语音数字化了,则可以完全利用数字信号处理的知识来解决。我们可以像给一般信号做频谱分析一样,来给语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。经过一个星期的课程设计,过程曲

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论