2022年基于matlab的语音信号处理.pdf

上传人:C****o 文档编号:14568893 上传时间:2022-05-05 格式:PDF 页数:44 大小:1.24MB
返回 下载 相关 举报
2022年基于matlab的语音信号处理.pdf_第1页
第1页 / 共44页
2022年基于matlab的语音信号处理.pdf_第2页
第2页 / 共44页
点击查看更多>>
资源描述

《2022年基于matlab的语音信号处理.pdf》由会员分享,可在线阅读,更多相关《2022年基于matlab的语音信号处理.pdf(44页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、基于 matlab 的语音信号处理数字信号处理设计报告题目:基于 Matlab 的语音信号处理系别信息工程学院专业班级通信工程 1342 学生姓名范泉指导教师吉李满提交日期 2016年 6 月 10 日精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理摘 要数字信号处理的目的就是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域, 这通常通过模数转换器实现。而数字信号

2、处理的输出经常也要变换到模拟域, 这就是通过数模转换器实现的。数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)与专用集成电路 (ASIC) 等。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点, 这些都就是模拟信号处理技术与设备所无法比拟的。本设计的具体内容就是基于MATLAB 的语音信号处理 , 核心算法就是离散傅立叶变换 (DFT), 就是 DFT使信号在数字域与频域都实现了离散化, 从而可以用通用计算机处理离散信号。然后添加噪声信号, 选用合适的滤波器对噪声信号进行滤除, 使数字信号处理从理论走向实用。MATLAB 功能强大 ,

3、 可以进行矩阵运算、绘制函数与数据、实现算法、创建用户界面、连接其她编程语言的程序等, 主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。用MATLAB 来解算问题要比用其她语言简捷得多, 并且 mathwork也吸收了像 Maple等软件的优点 ,使MATLAB成 为 一 个 强 大 的 数 学 软 件 。 在 新 的 版 本 中 也 加 入 了 对C,FORTRAN,C+ ,JAVA的支持。可以直接调用 , 用户也可以将自己编写的实用程序导入到 MATLAB 函数库中方便自己以后调用, 此外许多的 MATLAB 爱好者都编写了一些经典的程序 , 用

4、户可以直接进行下载就可以用。关键词 : 数字信号处理器 ; 离散傅立叶变换 ;MATLAB精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理目 录第一章 绪论. 11、1 课题研究的目的 . 11、2 课题研究的意义与现状 . 11、2、1 课题研究的意义 . 11、2、2 课题研究的现状 . 1第二章 课题研究方案的确定 . 32、1 概要设计 . 32、1、1 主要工作 . 32、1、2 研究步骤 . 32、

5、2 方案选择 . 32、2、1 运行的环境 . 32、2、2 总体方案 . 3第三章 课题研究内容 . 53、1 Matlab 简单介绍 . 53、2 语音信号的采样理论依据 . 53、2、1 采样频率 . 53、2、2 采样位数 . 53、2、3 采样定理 . 63、3 语音信号的采集 . 63、4 设计数字滤波器 . 63、4、1 数字滤波器设计的基本思路. 63、4、2 IIR 数字滤波器概述. 63、4、3 FIR 数字滤波器概述. 73、4、4 FIR 数字滤波器与 IIR 数字滤波器比较 . 73、4、5 低通高通及带通滤波器. 73、5 程序流程图 . 8第四章 软件仿真调试结果

6、分析 . 94、1 语音信号的时频分析 . 94、2 语音信号加噪与频谱分析 . 10 4、3 滤波器的设计 . 10 4、3、1 设计 FIR 滤波器 . 10 4、3、2 设计 IIR 滤波器 . 11 4、3、3 双线性变换法与窗函数法. 11 4、4 验证所设计的滤波器 . 12 4、5 滤波. 13 第五章 GUI 界面 . 15 5、1 GUI 界面概述 . 15 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 44 页 - - - - - - - - - - 基于 matlab

7、的语音信号处理5、2 创建 GUI界面. 15 第六章 总结与展望 . 16 参考文献 . 17 附录 I 设计 FIR 与 IIR 数字滤波器 . 1附录 II比较滤波前后语音信号的波形及频谱. 4附录 III 源程序代码 . 10精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理第一章绪论1、1 课题研究的目的1、学会 MATLAB 的使用 , 掌握 MATLAB 的程序设计方法。2、掌握在 Windows环

8、境下语音信号采集的方法。3、掌握数字信号处理的基本概念、基本理论与基本方法。4、掌握 MATLAB 设计数字滤波器的方法并会对信号进行分析与处理。1、2 课题研究的意义与现状1、2、1 课题研究的意义语音信号的采集与分析技术就是一门涉及面很广的交叉科学, 它的应用与发展与语音学、声音测量学、电子测量技术以及数字信号处理等学科紧密联系, 语音就是人类获取信息的重要来源与利用信息的重要手段。在信号传输过程中, 由于实验条件或各种其她主观或客观条件的原因, 语音处理系统都不可避免地要受到各种噪声的干扰。噪声不但降低了语音质量与语音的可懂度, 而且还将导致系统性能的急剧恶化 , 严重时使整个系统无法正

9、常工作。MATLAB 就是由美国 math works 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、 矩阵计算、 科学数据可视化以及非线性动态系统的建模与仿真等诸多强大功能集成在一个易于使用的视窗环境中 , 为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案, 并在很大程度上摆脱了传统非交互式程序设计语言( 如C、Fortran) 的编辑模式 , 代表了当今国际科学计算软件的先进水平。其强大的数据处理能力可以极大程度上削弱噪声影响, 还原出真实的语音信号。1、2、2 课题研究的现状MATLAB 就是 Matrix Labo

10、ratory( 矩阵实验室 ) 的缩写 , 就是 Math Works 推出的一套高性能可视化软件, 它集数值分析 , 矩阵运算 , 函数生成 , 信号处理 , 图像处理, 建模与仿真等诸多功能于一体, 为使用者提供一个高效的编程工具。 本次毕业设计中 , 我们就用它作为编程工具与辅助工具进行设计。噪声污染位于联合国四大公认污染之一, 无论就是尖锐的火车汽笛声, 还就是我们肉耳听不到的超声波, 次声波都有可能给人们生活带来极大不便。在机械方面, 机械件碰撞带来的噪声会缩短器件寿命, 在电子方面 , 电器件在噪声的影响下可能会失灵。华中师范大学教育信息技术工程研究中心( 武汉) 刘智老师曾经就机

11、械噪声给人们身心带来的伤害进行过一次计算机仿真, 同时用 MATLAB 进行了信号处理。此次研究 , 她通过比较加噪前后 , 语音的频谱与语音回放 , 能明显的感觉到加入噪声后回放的声音与原始的语音信号有很大的不同, 前者有较尖锐的噪声干扰人声。从含噪语音信号的频谱图中可以瞧出含噪声的语音信号频谱, 在整个频域范围内分就是布均匀。 其实, 这正就是干扰所造成的。 通过滤波前后的对比 , 得出低通滤波后效果最好 , 高通滤波后的效果最差的结果。大连理工大学 2000 级硕士蒋瑞艳也曾经做过一个振动, 噪声处理系统 , 它就精品资料 - - - 欢迎下载 - - - - - - - - - - -

12、 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理是 WINDOWS界面下的振动、噪声信号处理系统 , 它在专用模拟输入硬件 (数据采集系统) 支持下 , 可以完成振动、 噪声信号的数据采集以及功率谱、倒谱、谱阵与传递函数分析等功能。 能将数据转化成各种对应的图形, 并具备 ZOOM 功能。它可以广泛应用于实验室、生产现场与教学中做振动、噪声的测试与分析, 可以代替专用信号处理机的工作。本系统软件采用先进的C+ Builder语言编制 , 在WINDOWS系统下运行。 软件界面的设计以

13、满足大多数用户为主, 力求直观通俗 , 通过菜单驱动完成各个功能。华中科技大学能源与动力工程学院就“基于MATLAB 的噪声信号采集与分析系统研究”做过研究报告, 她们利用 MATLAB 的数据采集工具箱 (DAQ)与信号处理工具箱开发了一套声音信号采集分析系统, 该系统不仅能够实现低成本、高精度的实时采集 , 还能将声音信号资料导入系统进行时域与频域分析。利用另外一个工具 Compiler 使编制的 MATLAB 程序能够独立运行从而提高了运行速度; 配备了友好的图形用户界面 (GUI), 方便用户操作。最后给出了系统在内燃机噪声诊断方面的应用实例。在机械方面 , 西北工业大学航海工程学院就

14、 “基于 MATLAB 的舰船辐射噪声信号小波消噪处理”做过研究报告, 她们针对舰船辐射噪声信号的特点提出了小波消噪的方法 , 对小波消噪理论作了简要的阐述, 并设计了一种消噪方案 , 最后利用MATLAB, 在计算机上选用不同的小波基与阈值进行了实船信号的消噪处理试验,并对结果进行了简单的分析比较。试验结果表明, 在选择了合适的小波基与阈值的情况下 , 利用小波变换的方法对舰船辐射噪声进行消噪处理可以取得良好的效果。由此可见 ,MATLAB 给噪声处理带来了极大“福音” 。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - -

15、- - - -第 6 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理第二章课题研究方案的确定2、1 概要设计2、1、1 主要工作本文简要介绍了语音信号采集与分析的发展史以及语音信号的特征、采集与分析方法 ,并通过手机录制自己的一段声音,运用 Matlab 进行仿真 ,最后对于声音中的噪声进行滤波处理 ,比较铝箔前后的变化以及介绍语音信号的特点与采集,仿真主要就是验证奈奎斯特定理,对于语音信号进行时域、频域上的分析,率谱,就是对语音信号的综合分析,包括语音信号的调制与滤波。2、1、2 研究步骤1、理论依据根据设计要求分析系统功能,掌握设计中所需理论

16、,阐明设计原理。2、信号采集采集语音信号并对其进行频谱分析,画出信号的时域波形图与频谱图。3、构造受干扰信号并对其进行频谱分析对所采集的语音信号假如干扰噪声,对语音信号进行回放 ,感觉加噪前后声音变化,分析原因 ,得出结论。并对其进行频谱分析 ,比较加噪前后语音信号的波形及频谱,对所的结果进行分析 ,阐明原因得出结论。4、数字滤波器设计根据待处理信号特点 ,设计合适数字滤波器 ,绘制所设计滤波器的幅频与相频特性5、信号处理用所设计的滤波器对含噪语音信号进行滤波。对滤波后的语音信号进行频谱分析。画出处理过程中所得各种波形及频谱图。对语音信号进行回放 ,感觉滤波前后声音的变化。 比较滤波前后语音信

17、号的波形及频谱 ,对所得结果与滤波器性能进行频谱分析,阐明原因 ,得出结论。2、2 方案选择2、2、1 运行的环境运行环境主要介绍了硬件环境与软件环境硬件环境 : (1) 处理器 :Inter Core I3 (2) 内存:4G (3) 硬盘空间 :500G (4) 显卡:Nvidia GTX940 软件环境 : 操作系统 :Windos 8 、1 开发环境 :Matlab 2014a 2、2、2 总体方案用 Matlab 画出原始信号的波形图与频谱图,然后给原始语音信号加如噪声,并对其进行精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - -

18、- - - - - - - -第 7 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理频谱分析 ,最后利用滤波器对被噪声污染的语音信号进行滤波并分析滤波后的时域与频域特性,最后建立GUI 界面。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理第三章课题研究内容3、1 Matlab 简单介绍MATLAB 就是矩阵实验室 (Matrix Laboratory)的简称, 就

19、是美国 MathWorks公司出品的商业数学软件, 用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言与交互式环境, 主要包括 MATLAB 与 Simulink两大部分。MATLAB 就是由美国 mathworks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、 矩阵计算、 科学数据可视化以及非线性动态系统的建模与仿真等诸多强大功能集成在一个易于使用的视窗环境中 , 为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案, 并在很大程度上摆脱了传统非交互式程序设计语言( 如C、Fortran) 的编辑模式 , 代

20、表了当今国际科学计算软件的先进水平。MATLAB 与 Mathematica、Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB 可以进行矩阵运算、绘制函数与数据、实现算法、创建用户界面、连接其她编程语言的程序等, 主要应用于工程计算、控制设计、信号处理与通讯、 图像处理、信号检测、金融建模设计与分析等领域。MATLAB 的基本数据单位就是矩阵, 它的指令表达式与数学、 工程中常用的形式十分相似 , 故用 MATLAB 来解算问题要比用 C,FORTRAN等语言完成相同的事情简捷得多 , 并且 MATLAB 也吸收了像 Maple等软件的优点 , 使

21、MATLAB 成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+ ,JAVA 的支持。可以直接调用, 用户也可以将自己编写的实用程序导入到MATLAB 函数库中方便自己以后调用, 此外许多的 MATLAB 爱好者都编写了一些经典的程序, 用户可以直接进行下载就可以用。MATLAB 的应用范围非常广 , 包括信号与图像处理、通讯、控制系统设计、测试与测量、财务建模与分析以及计算生物学等众多应用领域。附加的工具箱 (单独提供的专用MATLAB 函数集 ) 扩展了MATLAB 环境 , 以解决这些应用领域内特定类型的问题3、2 语音信号的采样理论依据3、2、1 采样频率采样频率就

22、是指计算机每秒钟采集多少个声音样本, 就是描述声音文件的音质、音调, 衡量声卡、 声音文件的质量标准。 采样频率越高 , 即采样的间隔时间越短, 则在单位时间内计算机得到的声音样本数据就越多, 对声音波形的表示也越精确。采样频率与声音频率之间有一定的关系, 根据奎斯特理论 , 只有采样频率高于声音信号最高频率的两倍时, 才能把数字信号表示的声音还原成为原来的声音。这就就是说采样频率就是衡量声卡采集、记录与还原声音文件的质量标准。3、2、2 采样位数采样位数即采样值或取样值, 用来衡量声音波动变化的参数, 就是指声卡在采集与播放声音文件时所使用数字声音信号的二进制位数。采样频率就是指录音设备在一

23、秒钟内对声音信号的采样次数, 采样频率越高声音的还原就越真实越自精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理然。采样位数与采样率对于音频接口来说就是最为重要的两个指标, 也就是选择音频接口的两个重要标准。无论采样频率如何, 理论上来说采样的位数决定了音频数据最大的力度范围。每增加一个采样位数相当于力度范围增加了6dB。采样位数越多则捕捉到的信号越精确。 对于采样率来说您可以想象它类似于一个照相机,44 、1

24、kHz 意味着音频流进入计算机时计算机每秒会对其拍照达441000 次。显然采样率越高 , 计算机摄取的图片越多 , 对于原始音频的还原也越加精确。3、2、3 采样定理在进行模拟 / 数字信号的转换过程中 , 当采样频率 fs 、max大于信号中 , 最高频率 fmax 的 2 倍时, 即:fs 、 max=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息 , 一般实际应用中保证采样频率为信号最高频率的510 倍; 采样定理又称奈奎斯特定理。1924 年奈奎斯特 (Nyquist)就推导出在理想低通信道的最高大码元传输速率的公式 :理想低通信道的最高大码元传输速率=2W*log2

25、N (其中 W就是理想低通信道的带宽 ,N 就是电平强度 ) 3、3 语音信号的采集利用 PC机上的声卡与 WINDOWS操作系统可以进行数字信号的采集。将话筒输入计算机的语音输入插口上, 启动录音机。 按下录音按钮 , 接着对话筒说话 “语音信号处理”, 说完后停止录音 , 屏幕左侧将显示所录声音的长度。 点击放音按钮 ,可以实现所录音的重现。 以文件名“Orisound ”保存入 c : MATLAB work中。可以瞧到 , 文件存储器的后缀默认为、wav , 这就是 WINDOWS操作系统规定的声音文件存的标准。3、4 设计数字滤波器3、4、1 数字滤波器设计的基本思路数字滤波器的实现

26、有两个关键步骤: 一个从数字域到模拟域间的变换, 这个变换实现了数字滤波器技术指标到模拟滤波器技术指标的转换, 同样也实现了模拟滤波器系统函数到数字滤波器系统函数的转换; 另一个就是从模拟滤波器技术指标到满足该指标的模拟滤波器的设计。3、4、2 IIR数字滤波器概述IIR(Infinite Impulse Response)数字滤波器 , 又名“无限脉冲响应数字滤波器” , 或“递归滤波器”。递归滤波器 , 也就就是 IIR 数字滤波器 , 顾名思义 ,具有反馈 , 一般认为具有无限的脉冲响应。IIR 滤波器有以下几个特点 : (1) 封闭函数 :IIR数字滤波器的系统函数可以写成封闭函数的形

27、式。(2)IIR数字滤波器采用递归型结构:IIR数字滤波器采用递归型结构, 即结构上带有反馈环路。 IIR 滤波器运算结构通常由延时、乘以系数与相加等基本运算组成, 可以组合成直接型、 正准型、级联型、并联型四种结构形式 , 都具有反馈回精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理路。由于运算中的舍入处理, 使误差不断累积 , 有时会产生微弱的寄生振荡。(3) 借助成熟的模拟滤波器的成果:IIR数字滤波器

28、在设计上可以借助成熟的模拟滤波器的成果 , 如巴特沃斯、契比雪夫与椭圆滤波器等 , 有现成的设计数据或图表可查 , 其设计工作量比较小 , 对计算工具的要求不高。 在设计一个 IIR 数字滤波器时 , 我们根据指标先写出模拟滤波器的公式, 再通过一定的变换 , 将模拟滤波器的公式转换成数字滤波器的公式。(4) 需加相位校准网络 :IIR数字滤波器的相位特性不好控制, 对相位要求较高时, 需加相位校准网络。3、4、3 FIR 数字滤波器概述FIR 数字滤波器 (finite impulse response filter)又名“有限脉冲响应数字滤波器” , 这类滤波器对于脉冲输入信号的响应最终趋

29、向于0, 因此而得名。有限脉冲响应滤波器(FIR filter)的优点 : (1) 脉冲响应 (impulse response) 为有限长 : 造成当输入数位讯号为有限长的时候 , 输出数位讯号也为有限长。(2) 比无限脉冲响应滤波器 (IIR filter)较容易最佳化 (optimize)。(3) 线性相位 (linear phase): 造成 h(n), 就是偶对称 (even) 或奇对称 (odd)且有限长。(4) 一定就是稳定的(stable):因为Z 转换 (Z transform)后所有的极点(pole) 都在单位圆内3、4、4 FIR 数字滤波器与 IIR 数字滤波器比较不论

30、就是 IIR 滤波器还就是 FIR 滤波器的设计都包括三个步骤: (1) 按照实际任务的要求 , 确定滤波器的性能指标。(2) 用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。根据不同的要求可以用IIR 系统函数 , 也可以用 FIR 系统函数去逼近。(3) 利用有限精度算法实现系统函数, 包括结构选择、字长选择等。但 IIR 滤波器与 FIR 滤波器的设计方法完全不同。 IIR 滤波器设计方法有间接法与直接法 , 间接法就是借助于模拟滤波器的设计进行的。其设计步骤就是 : 先设计过渡模拟滤波器得到系统函数H(s), 然后将 H(s) 按某种方法转换成数字滤波器的系统函数H(

31、z) 。FIR 滤波器比鞥采用间接法 , 常用的方法有窗函数法、频率采样发与切比雪夫等波纹逼近法。对于线性相位滤波器, 经常采用FIR滤波器。3、4、5 低通高通及带通滤波器低通滤波器 : 对于不同滤波器而言 , 每个频率的信号的减弱程度不同。当使用在音频应用时 , 它有时被称为高频剪切滤波器, 或高音消除滤波器。 低通滤波器概念有许多不同的形式, 其中包括电子线路( 如音频设备中使用的hiss 滤波器、平滑数据的数字算法、音障(acoustic barriers)、图像模糊处理等等 , 这两个工具都通过剔除短期波动、 保留长期发展趋势提供了信号的平滑形式。低通精品资料 - - - 欢迎下载

32、- - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理滤 波 器 在 信 号 处 理中 的 作 用 等 同 于 其 它 领 域 如 金 融 领域 中 移 动 平 均 数(moving average) 所起的作用 ; 低通滤波器有很多种, 其中, 最通用的就就是巴特沃斯滤波器与切比雪夫滤波器。高通滤波器 : 去掉信号中不必要的低频成分, 去掉低频干扰的滤波器。 在电力系统中 , 谐波补偿时用高通滤波器滤除某次及其以上的各次谐波。高通滤波器就是指车

33、载功放中能够让中、高频信号通过而不让低频信号通过的电路, 其作用就是滤去音频信号中的低音成分, 增强中音与高音成分以驱动扬声器的中音与高音单元。此外高通滤波器常常与低通滤波器成对出现, 不论哪一种 , 都就是为了把一定的声音频率送到应该去的单元。带通滤波器 : 能通过某一频率范围内的频率分量、但将其她范围的频率分量衰减到极低水平的滤波器 , 与带阻滤波器的概念相对。一个模拟带通滤波器的例子就是电阻 - 电感-电容电路 (RLC circuit)。 这些滤波器也可以用低通滤波器同高通滤波器组合来产生。3、5 程序流程图图 3-1 程序流程图精品资料 - - - 欢迎下载 - - - - - -

34、- - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理第四章软件仿真调试结果分析4、1 语音信号的时频分析在 MATLAB 软件平台下 , 利用 wavread 函数对语音信号进行采样 , 记住采样频率与采样点数 , Wavread函数调用格式y=wavread(file)%读取 file所规定的 wav文件, 返回采样值放在向量y 中。y,fs,bits=wavread(file) %采样值放在向量y 中,fs表示采样频率 (hz),bits表示采样位数。y=wavr

35、ead(file,N) %读取前 N点的采样值放在向量y 中。y=wavread(file,N1,N2)% 读取从 N1到 N2点的采样值放在向量y 中。对语音信号 Orisound 、wav进行采样其程序如下 : y,fs,nbits= wavread(E:yuanyinpin、wav);%把语音信号加载入MATLAB 仿真软件平台中画出语音信号的时域波形 , 再对语音信号进行频谱分析。MATLAB 提供了快速傅里叶变换算法 FFT计算 DFT的函数 fft,其调用格式如下 : Xk=fft(xn,N) 参数 xn 为被变换的时域序列向量,N 就是 DFT变换区间长度 , 当 N大于 xn

36、的长度时 ,fft函数自动在 xn 后面补零。 , 当 N小于 xn 的长度时 ,fft函数计算 xn的前 N个元素 , 忽略其后面的元素。 在本次设计中 , 我们利用 fft对语音信号进行快速傅里叶变换 , 就可以得到信号的频谱特性。程序如下: y,fs,nbits=wavread(E:yuanyinpin、wav); % 语音信号的采集sound(y,fs,nbits); % 语音信号的播放n=length(y); Y=fft(y,n); % 快速傅里叶变换figure; subplot(2,1,1); plot(y); title( 原始信号波形 , fontweight, bold);

37、 axis(67000 87000 -0、5 0 、5); grid; subplot(2,1,2); plot(abs(Y); title( 原始信号频谱 , fontweight, bold); axis(0 15000 0 1000); grid; 程序结果如下图 : 图 4-1 原始信号采集波形图精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理4、2 语音信号加噪与频谱分析在 MATLAB 中产生高斯

38、白噪声非常方便, 我们可以直接应用两个函数: 一个就是 WGN, 另一个就是 AWGN。 WGN 用于产生高斯白噪声 ,AWGN 则用于在某一信号中加入高斯白噪声。也可直接用randn 函数产生高斯分布序列。在本次设计中 , 我们就是利用 MATLAB 中的随机函数 (rand 或 randn) 产生噪声加入到语音信号中 , 模仿语音信号被污染 , 并对其频谱分析。 randn 函数有两种基本调用格式 :randn(n) 与 randn(m,n), 前者产生 nn服从标准高斯分布的随机数矩阵, 后者产生 m n 的随机数矩阵。在这里 , 我们选用 randn(m,n) 函数。语音信号添加噪声及

39、其频谱分析的主要程序如下: y,fs,nbits= wavread(E:yuanyinpin、wav); sound(y,fs,nbits); n = length (y) Noise=0、03*randn(n,2); s=y+Noise; sound(s,fs); figure; subplot(2,1,1); plot(s); title( 加噪语音信号的时域波形 , fontweight, bold); axis( 67000 87000 -0、5 0 、5); grid; S=fft(s); subplot(2,1,2); plot(abs(S); title( 加噪语音信号的频域波形

40、 , fontweight, bold); axis( 0 15000 0 1000); grid; 程序结果如下图 : 图 4-2 信号加噪时域波形图与频谱图4、3 滤波器的设计4、3、1 设计 FIR 滤波器如前所述 ,IIR滤波器与 FIR 滤波器的设计方法有很大的区别。 下面我们着重介绍用窗函数法设计FIR 滤波器的步骤。如下 : (1) 根据对阻带衰减及过渡带的指标要求, 选择窗函数类型 ( 矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等 ), 并估计窗口长度 N 。先按照阻带衰减选择窗函数类型。原则就是在保证阻带衰减满足要求的情况下, 尽量选择主瓣的窗函数。(2) 构造希望逼近的频率响应

41、函数。(3) 计算 h(n) 、 。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理(4) 加窗得到设计结果。4、3、2 设计 IIR 滤波器无论就是数字滤波器还就是模拟滤波器, 她们技术指标的建立都就是以所谓的“固有衰减” 参数为参照。 以数字滤波器为例 , 固有衰减参数 ( 关于之旅分量归一化) 定义为 : A(w)=-20lg|H(ejw)|-20lg|H(ej0) 目前 IIR数字滤波器设计的最通用的

42、方法就是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了一套相当成熟的方法, 它不但有完整的设计公式,而且还有较为完整的图表供查询, 因此, 充分利用这些已有的资源将会给数字滤波器的设计带来很大方便。IIR 数字滤波器的设计步骤就是: (1) 按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标 ; (2) 根据转换后的技术指标设计模拟低通滤波器Gs; (3) 再按一定规则将 G(s) 转换成 H(z) 。若设计的数字滤波器就是低通的, 那么上述设计工作可以结束, 若所设计的就是高通, 带通或带阻滤波器 , 那么还有步骤 (4); (4) 将高通、带通、或带阻数字l 不去的技

43、术指标先转化为低通模拟滤波器的技术指标 , 然后按照上述步骤 (2) 设计出低通 Gs,再将 Gs转换为所需的 H(z) 。4、3、3 双线性变换法与窗函数法对于数字高通、带通滤波器的设计, 通用方法为双线性变换法。可以借助于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器, 再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤如下: (1) 确定所需类型数字滤波器的技术指标。(2) 将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为 =2/T tan(0 、5) (3) 将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。(4) 设计模拟低通滤波

44、器。(5) 通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。(6) 采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。我们知道 , 脉冲响应不变法的主要缺点就是会产生频谱混叠现象, 使数字滤波器的频响偏离模拟滤波器的频响特性。为了克服之一缺点, 可以采用双线性变换法。下面我们总结一下利用模拟滤波器设计IIR 数字低通滤波器的步骤 : (1) 确定数字低通滤波器的技术指标: 通带边界频率、通带最大衰减, 阻带截止频率、阻带最小衰减。(2) 将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。精品资料 - - - 欢迎下载 - - - - - - - - -

45、- - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理(3) 按照模拟低通滤波器的技术指标设计及过渡模拟低通滤波器。(4) 用双线性变换法, 模拟滤波器系统函数转换成数字低通滤波器系统函数。接下来 , 我们根据语音信号的特点给出有关滤波器的技术指标: (1) 低通滤波器的性能指标 : fp=1000Hz,fc=1200Hz,As=100db ,Ap=1dB (2) 高通滤波器的性能指标 : fp=3500Hz,fc=4000Hz,As=100dB,Ap=1dB; (3) 带通滤波器

46、的性能指标 : fp1=1200Hz,fp2=3000hZ,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB 在 Matlab 中, 可以利用函数 fir1设计 FIR 滤波器 , 利用函数 butter,cheby1与ellip 设计 IIR滤波器 , 利用 Matlab中的函数freqz画出各步步器的频率响应。hn=fir1(M,wc,window) , 可以指定窗函数向量window。如果缺省window参数, 则 fir1 默认为哈明窗。中可选的窗函数有Rectangular Barlrtt Hamming Hann Blackman 窗, 其相应的都有实现函

47、数。MATLAB 信号处理工具箱函数buttp buttor butter就是巴特沃斯滤波器设计函数,其有 5 种调用格式 , 本课程设计中用到的就是N,wc=butter(N,wc,Rp,As,s), 该格式用于计算巴特沃斯模拟滤波器的阶数N 与 3dB 截止频率 wc。MATLAB 信号处理工具箱函数cheblap,cheblord与 cheeby1就是切比雪夫 I 型滤波器设计函数。我们用到的就是cheeby1 函数, 其调用格式如下 : B,A=cheby1(N,Rp,wpo,ftypr) 函数 butter,cheby1与 ellip 设计 IIR 滤波器时都就是默认的双线性变换法,

48、 所以在设计滤波器时只需要代入相应的实现函数即可。IIR高通要用cheby1( 即切比雪夫I型滤波器 ) 函数来设计 , 1p2hp 其中p; pose ( 模型), h(high), 同理, 1p2bp中 b 表示 band(带通), FIR 与此类似。具体程序及运行结果如附录I 设计 FIR 与 IIR 数字滤波器4、4 验证所设计的滤波器为了验证滤波器的可使用性, 我们用常用的 sin 函数来进行验证。 其具体程序及运行结果如下 : t=0:1/1023:1; s=sin(2*pi*t); N=length(s); y=s+0、5*rand(1,N); subplot(2,1,1); p

49、lot(y); title(加噪语音信号的时域波形,fontweight,bold); S=fft(y); subplot(2,1,2); plot(abs(S); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 44 页 - - - - - - - - - - 基于 matlab 的语音信号处理title(加噪语音信号的频域波形,fontweight,bold); Ft=8000; Fp=1000; Fs=1200; wp=2*pi*Fp/Ft; ws=2*pi*Fs/Ft; n11,wn

50、11=buttord(wp,ws,1,50,s); % 求低通滤波器的阶数与截止频率b11,a11=butter(n11,wn11,s); % 求 S域的频率响应的参数num11,den11=bilinear(b11,a11,0、5); % 利用双线性变换实现频率响应S域到 Z域的变换z11=filter(num11,den11,s); sound(z11); m11=fft(z11); % 求滤波后的信号figure; subplot(2,2,1); plot(abs(S),g); title(滤波前信号的频谱 ,fontweight,bold); grid; subplot(2,2,2);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com