课程设计任务书
学生姓名 学生学号
学生专业 学生班级
指导教师 职 称
发题日期 完成日期
设计题目
XXX XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX XXXXXXXXXXX
XXXXXXXXXXX XXXXXXXXXXXXXXXX
X 年X月X X年X月X 日
基于MATLAB的声音信号处理
设计目的:
1、巩固所学的数字信号处理理论知识。
2、理解信号的采集、处理、传输、显示。加深学习Matlab软件。
3、综合应用专业及基础知识,增强解决实际工程技术问题的能力。
4、学习资料的收集与整理,学会撰写课程设计报告。
具体任务及要求:
1、选择一个语音信号作为分析对象,或自我录制一段语音,对其进行频谱分析;
利用Matlab软件产生一个随机噪声进行加噪声后再对其分析;设计FIR或
IIR数字滤波器对语音进行滤波,再分析其时域和频域。利用Matlab软件编
写语音信号处理程序,完成对话音信号时域和频域的程序设计和分析。
2、利用课余时间去图书馆或者上网查阅相关课题资料,深入理解课题含义及设
计要求,认真整理。在5月10日前完成预设计,并请指导教师审查、定稿。
3、及时提交设计报告(纸质、电子稿),要求格式规范、内容完整、结论正确,
正文数不少于3000字。
课程设计进度安排:
序号 内容安排 时间
1 获得题目后查阅资料并整理,完成预设计 3.25 -4.1
2 设计总体方案,绘制流程图,编写代码并调试 4.2-4.16
3 总体测试,完善其功能 4.17-5.1
4 撰写设计报告,后交指导老师初审 5.2-5.16
5 修改、完善设计报告,定稿、提交设计报告 5.17-5.25
课程设计参考文献:
[1] 张德丰:MATLAB通信工程仿真,北京机械工业出版社,2010.1 [2] 王彬、
于丹、汪洋:MATLAB数字信号处理,北京机械工业出版社,2010.5,
[3] 孟志强、陈燕东、王同业、杨钰:MATLAB辅助现代工程数字信号处理,西
安电子科技大学出版社,2010.7
指导教 院长审核
师签字 签字
I
基于MATLAB的声音信号处理的初步实现
内容摘要:
数字滤波器是数字信号处理技术的基础, 用来对信号进行过滤、检
测、与参数估计等处理。任何检测的信号都含有噪声,而滤波是去除噪声的基本
手段,因此滤波器在数字信号处理中占有极其重要的地位。FIR数字滤波器和IIR
数字滤波器是滤波器设计的重要组成部分。随着MATLAB软件及信号处理工具箱的
不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件,它可以快速有
效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设
计的最优化。本设计综合运用了数字信号处理的各种基本知识,对不带噪声音信
号以及带噪声音信号进行频谱分析,并利用MATLAB信号处理工具箱有效快捷地设
计IIR数字滤波器对带噪声音信号进行滤波处理。
关键词
:
数字滤波器 MATLAB 滤波 仿真
The preliminary implementation of voice signal
processing bad on MATLAB
Abstract
:
Digital filter is the basis of digital signal processing
technology, which ud for signal filtering, detecting, and parameter
estimation. Any detection signal contains noi, and filtering is a basic
means to remove the noi, so filter occupies an extremely important
position in digital signal processing.FIR digital filter and IIR digital
filter is animportant part of the filter design. With MATLAB software and
the continuous improvement of the signal processing toolbox, MATLAB
application quickly became indispensable to areas such as basic software.
It can quickly and efficiently for digital filter design, analysis and
simulation, greatly reduce the workload, and it is advantageous to the
optimization of filter design. This design is integrated ud of all kinds
of basic knowledge of digital signal processing to complete the analysis
of frequency spectrum about speech noisy signal and speech signal, and it
u the MATLAB signal processing toolbox effective shortcut to design IIR
II
digital filter with noi speech signal filter processing.
Keywords
:
Digital Filter MATLAB Filtering Simulation
目 录
前 言 ............................................................... 1
1 绪论 ............................................................. 1
1.1 研究的目的和意义 ............................................ 1
1.2 国内外研究的现状 ............................................ 1
1.3 本课题研究的内容和方法 ...................................... 2
2 MATLAB软件介绍 ................................................. 2
2.1 MATLAB发展历程 ............................................ 2
2.2 MATLAB组成 ................................................ 3
2.2.1 MATLAB语言 ......................................... 3
2.2.2 MATLAB的工作环境 ................................... 3
2.2.3 MATLAB数据函数库 ................................... 3
2.2.4 MATLAB应用程序接口 ................................. 3
2.2.5 图形句柄系统 ........................................ 4
2.3 MATLAB的特点 .............................................. 4
3 数字滤波器的设计 ................................................. 5
3.1 数字滤波器概述 .............................................. 5
3.2 数字滤波器设计的基本原理 .................................... 6
3.3 设计IIR数字滤波器 .......................................... 6
3.3.1 IIR数字滤波器设计方法 .............................. 6
3.3.2 利用模拟滤波器设计IIR数字滤波器的步骤 .............. 6
3.3.3 用双线性法设计IIR低通滤波器 ........................ 7
4 去噪和仿真的研究 ................................................. 7
4.1 语言信号在MATLAB平台上的录入与打开 ....................... 7
4.2 原始语言信号频谱分析及仿真 .................................. 8
4.3 加噪语音信号频谱分析及仿真 .................................. 9
4.4 去噪及仿真 ................................................. 10
4.5 回放语音信号 ............................................... 11
5 结束语 .......................................................... 11
IV
附 录 .............................................................. 12
附录1:IIR低通滤波器程序 ....................................... 12
附录2:产生原始语音信号波形、频谱、幅值、相位图程序 ............ 12
附录3:产生原始语音信号和加噪语音信号时域波形、频谱图程序 ...... 13
附录4:产生IIR滤波前和滤波后波形及频谱图程序 .................. 14
参考文献 ........................................................... 16
V
基于MATLAB的声音信号处理的初步实现
前 言
声音信号的采集与分析处理在工程应用中是经常需要解决的问题,如何实时
采集声音信号并对其分析处理,找出声音信号的特征在科学研究中是一项非常有
意义的工作。
1 绪论
语音是语言的声学表现,是人类获取信息的重要来源和利用信息的重要手段。
随着社会的进步和科学技术的发展,人类进入了信息化时代,用现代手段研究语
音信号处理技术,是人们更加有效地产生、传输、存储和获取语音信息,者对促
进社会发展具有重要意义,因此,语音信号处理越来越受到人们的关注和研究。
1.1 研究的目的和意义
语言是人类交换信息最方便、最快捷的一种方式,在高度发达的信息社会中,
用数字化的方法进行语音的传送、存储、识别、合成和增强等是整个数字化通信
网中最重要、最基本的组成部分之一。语音信号处理作为一门涉及面很广的交叉
学科,在数字电话通信、高音质的窄带语音通信系统、语言学习机、声控打字机、
自动翻译机、智能机器人、新一代计算机语音智能终端及军事上都有应用。随着
人类步入信息社会步伐的加快,越来越多的地方需要用到语音信号处理知识。所
以语音信号研究无论是在科学领域上还是日常生活中都有其广泛而重要的意义。
1.2 国内外研究的现状
20世纪60年代中期形成的一系列数字信号处理的理论和算法,如数字滤波
器、快速傅里叶变换(FFT)等是语言数字信号处理的理论和技术基础。20世纪
70年代初,由于电子计算机和数字信号处理的发展,人们发现:声音信号,可以
通过模数转换器(A/D)采样和量化,它们转换为数字信号后,能够送进计算机。
这样就可以用数字计算方法,对语音信号进行处理和加工。例如数字滤波器可以
用差分方程实现,频谱分析可以用傅里叶变换或快速傅里叶变换(FFT)实现,80
年代初矢量量化技术(VQ)和隐马尔可夫模型(HMM)应用于语音处理中,隐马尔
可夫模型(HMM)用于描述语音信号产生过程。近年来语音信号处理这门新学科发
1
展很快,在各项领域都有应用,解决了很多用传统方法难以解决的问题,在信息
科学中占有重要地位。
1.3 本课题研究的内容和方法
本设计主要介绍的是的语音信号的简单处理。本设计运用数字信号学基本原
理实现语音信号的处理,在matlab7.14环境下综合运用信号提取,幅频变换以及
傅里叶变换、滤波等技术来进行语音信号处理。我所做的工作就是采集一个语音
信号作为分析对象,或自我录制一段语音,在matlab7.14软件上编写一个语音信
号处理程序,对语音信号进行加噪去噪等处理,完成对语音信号时域和频域的分
析和仿真,达到简单语音信号处理的目的。
对语音信号的研究,本设计采用了设计IIR滤波器的基本研究方法来达到研
究语音信号去噪的目的,最终结合图像以及对语音信号的回放,通过对比,得出
结论。
2 MATLAB软件介绍
2.1 MATLAB发展历程
MATLAB是由美国Mathwork公司开发的数值计算、符号计算和图形可视化三
大基本功能于一体,功能强大、操作简单的语言。是国际公认的优秀数学应用软
件之一。
20世纪80年代初期,Cleve Moler与John Little等利用C语言开发了新一
代的MATLAB语言,此时的MATLAB语言已同时具备了数值计算功能和简单的图形
处理功能。1984年,Cleve Moler与John Little等正式成立了Mathwork公司,
把MATLAB语言推向市场,并开始了对MATLAB工具箱等的开发设计。1993年,
Mathwork公司推出了基于个人计算机的MATLAB4.0版本,到了1997年又推出了
MATLAB5.X版本,并在2000年推出了MATLAB 6.0版本,2004年正式推出了
MATLAB7.0版本,现在最新的版本是2012年推出的MATLAB7.14版本。
现在,MATLAB已经发展成为适合多学科的大型软件,在世界各高校,MATLAB
已经成为线性代数、数值分析、数理统计、优化方法、自动控制、数字信号处理、
动态系统仿真等高级课程的基本教学工具。特别是最近几年,MATLAB在我国大学
生数学建模竞赛中的应用,为参赛者在有限的时间内准确、有效地解决问题提供
了有力的保证。
2
2.2 MATLAB组成
MATLAB作为Math Works产品家族的核心,它主要由5大部分组成,分别为
MATLAB语言(the MATLAB Language)、MATLAB工作环境(the MATLAB Working
Environment)、MATLAB数学函数库(the MATLAB Math Library )、MATLAB应用
程序接口(the MATLAB Application Interface)和图形句柄系统(Handle
Graphics)。下面对它们分别进行介绍。
2.2.1 MATLAB语言
MATLAB语言是一种以矩形(Matrix)和阵列(Array)为基本编程单元,拥
有完整的控制语句、数据结构、函数编写与调用格式和输出功能,具有面向对象
程序设计特征的高级程序语言。使用MATLAB语言不但可以方便快捷地完成小规模
的算法验证、程序开发和调试工作,而且可以进行大规模、高效的复杂应用程序
设计。
2.2.2 MATLAB的工作环境
简单来说,MATLAB工作环境就是一系列实用工具的集合,它不但包括了各种
操作工作空间中变量的工具盒管理数据输入输出的方法,而且包括了开发调试M
文件和MATLAB应用程序的集成环境,使用起来极为方便。
2.2.3 MATLAB数据函数库
MATLAB数据函数库是大量的各种形式的数学函数和算法的集合,它不仅包括
了最基本的初等函数,如sum、sine、cosine和复数运算等,而且包含了大量复
杂的高级函数和算法,如贝塞尔(Basl)函数,快速傅里叶变换和矩阵求逆等。
用户在编写自己的MATLAB程序时,可以轻松地调用这些函数和算法,从而极大地
方便了算法的开发。
2.2.4 MATLAB应用程序接口
MATLAB的外部接口使得MATLAB可以与外部设备和程序实现数据交互和程序
移植,可以扩充MATLAB强大的数值计算和图形显示功能,从而弥补了其执行效率
较低的缺点,同时增强了其他应用程序进行软件开发的功能,提高了软件开发效
率。MATLAB接口工具不仅使得MATLAB可以十分方便地与其他应用程序交换数据
和信息还实现了与其他程序函数和算法的交互。所以,通过MATLAB的接口编程,
可以充分利用现有资源,能更容易地编写出功能强大、结构简洁的应用程序。
MATLAB主要提供了MEX文件、MAT文件、MATLAB计算引擎、COM和DDE、Web服务、
3
硬件接口和Excel生成器、Java生成器和.NET生成器等形式的接口。
2.2.5 图形句柄系统
Handle Graphics为Math Work公司的注册商标,是MATLAB的图形系统。它
在包含了大量高级的2D和3D数据可视化、图形显示、动画生成和图像处理命令
的同时,还提供了许多低级的图形命令,允许用户按照自己的需求显示图形和定
制应用程序图形用户接口,即方便又灵活。
2.3 MATLAB的特点
MATLAB是Math Work公司开发的跨平台的,用于矩阵数值计算的简单高效的
数学语言,与其他计算机高级语言如C、C++、Fortran、Basic、Pascal等相比,
MATLAB语言编程要简洁得多,编程语句更是其他高级语言望尘莫及的。与其他高
级语言相比较,MATLAB具有以下独特的优势:
a. MATLAB是一种跨平台的数学语言。采用MATLAB编写的程序可以在目前所
有的操作系统上运行(只要这些系统上安装了MATLAB平台)。MATLAB程序不依赖
于计算机类型和操作系统类型。
b. MATLAB是一种超高级语言。MATLAB平台本身是用C语言写成的,其中汇
集了当前最新的数学算法库,是许多专业数学家和工程学者多年的劳动结晶。使
用MATLAB就意味着站在巨人的肩膀上观察和处理问题,所以在编程效率,程序的
可读性、可靠性和可移植性上远远超过了常规的高级语言。
c. MATLAB语法简单,编程风格接近数学语言描述,是数学算法开发和验证
的最佳工具。MATLAB以复数矩阵运算为基础,其基本编程单位是矩阵,使得编程
简单,而功能极为强大。而且,MATLAB中的数值算法是经过千锤百炼的,比用户
自己编程实现的算法的可信度和可靠性都要高。
d. MATLAB计算精度很高。MATLAB中的数据是以双精度存储的。一个实数采
用8字节存储,而一个复数则采用16字节存储。矩阵运算的精度很高,完全能够
满足一般工程和科学计算的需要。与其他语言相比,MATLAB对计算机内存、硬盘
空间的要求也是比较高的。
e. MATLAB具有强大的绘图功能。利用MATLAB的绘图功能,可以轻易地获得
高质量的(印刷级)曲线图。具有多种形式来表达二维、三维图形,并具有强大
的动画功能,可以非常直观地表现抽象的数值结果。
f. MATLAB具有串口操作、声音输入/输出等硬件操控能力,随着版本的提高,
4
这种能力还会不断加强,使得人们利用计算机和实际硬件相连接的半实物仿真的
梦想得以轻易实现。
g. MATLAB程序可以直接映射为DSP芯片可接受的代码,大大提高了现代电
子通信设备的研发效率。
h. MATLAB程序的执行效率比其他语言低。MATLAB程序通常是解释执行的,
在执行效率和速率上低于其他高级语言。事实上,MATLAB自带的许多内部函数均
是用C语言编写并编译的,因此利用MATLAB内部函数程序部分的运行速度并不比
其他语言中的相应函数低。
3 数字滤波器的设计
3.1 数字滤波器概述
数字滤波器是数字信号处理的基础部分,与模拟滤波器相比,数字滤波器具
有精度高、可靠性高、灵活性高、便于大规模集成和多维过滤等特点,已广泛应
用于现代各类工程领域。
数字滤波器是具有一定传输特性的数字信号处理装置,它的输入和输出都是
离散数字信号,它借助于数字器件和一定的数值计算方法,对输入信号进行处理,
改变输入信号,进而去掉信号中的无用成分而保留有用成分。如果在数字处理系
统前、后分别加上A/D转换器和D/A转换器,就可以处理模拟信号。数字滤波器
的输入输出是一个时间序列。设H(n)为数字滤波器的系统函数,h(n)为其相
应的脉冲序列,则在时域内有:
y(n)=x(n)*h(n) (3-1)
在z域内有:
Y(z)=H(z)X(z) (3-2)
式中X(z)和Y(z)分别为输入x(n)和输出y(n)的傅里叶变换。
在频域内有:
Y(jw)=H(jw)X(jw) (3-3)
式中,H(jw)为数字滤波器的频率特性,X(jw)和Y(jw)分别为输入x(n)
和输出y(n)的频谱。
由此可见,一个合适的滤波器系统函H(z)数可以改变输入x(n)的频率特
性,经数字滤波器处理后得到的信号y(n)可保留信号x(n)的有用成分,而去
5
掉其中的无用成分。
3.2 数字滤波器设计的基本原理
数字滤波器是指完成信号滤波(根据有用信号和噪声的不同特性,消除或减
弱噪声,提取有用信号的过程)功能的、用有限精度算法实现的离散时间线性时
不变(LTI)系统。与模拟滤波器类似,数字滤波器也是一种选频器件,它对有用
信号的频率分量的衰减很小,使之比较顺利通过,而对噪声等干扰信号的频率分
量给予较大幅度的衰减,尽可能阻止它们通过。相比于模拟滤波器,数字滤波器
稳定性高、精度高、灵活性强。
滤波器总体可以分为经典滤波器和现代滤波器:经典滤波器即一般的选频滤
波器;现代滤波器以随机信号处理的理论为基础,利用随机信号内部的统计特性
对信号进行滤波。按照滤波器的实现方式方式分类,数字滤波器则可以分为无限
冲激响应(IIR)和数字滤波器和有限冲激响应(FIR)数字滤波器。本设计采用
的是IIR数字滤波器对加噪语音信号进行滤波。
3.3 设计IIR数字滤波器
3.3.1 IIR数字滤波器设计方法
本设计在MATLAB平台上,设计了IIR数字滤波器,用于对加噪的语音信号进
行滤波,对于IIR滤波器,它的极点可以在单位圆内的任何位置,实现IIR滤波
器的阶次可以较低,所用的存储单元较少,效率高,又由于IIR数字滤波器能够
保留一些模拟滤波器的优良特性,因此得到广泛应用。
在IIR数字滤波器的设计过程中,通常将数字滤波器的设计指标转化为模拟
低通滤波器的设计指标,然后设计满足这些指标的模拟低通滤波器的系统函数,
再将它变成所需要的数字滤波器系统函数。此方法具有如下优点:模拟逼近技术
非常成熟、通常能产生闭式解、模拟滤波器有大量的图标可查,因此充分利用这
些已有的资源将会给数字滤波器设计带来很大的方便。一般,当着眼于滤波器的
时域瞬态响应时,采用脉冲不变法较好,而其它情况下,对于IIR数字滤波器设
计,大多采用双线性变换法。
3.3.2 利用模拟滤波器设计IIR数字滤波器的步骤
a.确定数字低通滤波器的技术指标:通带边界频率、通带最大衰减,阻带截
止频率、阻带最小衰减。
b.将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。
6
c.按照模拟低通滤波器的技术指标设计及过渡模拟低通滤波器。
d.用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。
3.3.3 用双线性法设计IIR低通滤波器
MATLAB信号处理工具箱函数cheblap,cheblord和cheeby1是切比雪夫I型
滤波器设计函数。我们用到的是cheeby1函数。
函数butter,cheby1和ellip设计IIR滤波器时都是默认的双线性变换法,
所以在设计滤波器时只需要代入相应的实现函数即可。
IIR低通滤波器程序见附录1。
IIR低通滤波器图像如图3-1:
图3-1 IIR低通滤波器
4 去噪和仿真的研究
4.1 语言信号在MATLAB平台上的录入与打开
利用电脑上的声卡和windows操作系统可以进行语音信号的录入,语音信号
的录入可以用麦克风直接录制人的语音,也可以通过音频线将收音机、电视机或
磁带中的语音信号录入到计算机中,在录音机中可以进行简单的声音处理,如加
大或降低音量,加速或减速,声音的反转或添加回音效果等。加速或减速的改变
可以完成变音功能,反转可以达到对声音文件保密功能。本设计所录入的语音信
号是在酷狗上把mp3进行格式转换为wav形式的语音信号。然后保存到MATLAB
7
文件夹里面,命名为“login”。
利用MATLAB中的wavread命令来读入(采集)语音信号,将它赋值给某一向
量。
4.2 原始语言信号频谱分析及仿真
在MATLAB中,[y,fs,bits]=wavread(‘login’,[N1 N2]);用于读取语音信
号,采样值放在向量y中,fs表示采用频率(Hz),nbits表示采样位数,[N1 N2]
表示读取的值从N1点到N2点的值。sound(y,fs,bits);用于声音的回放。向量y
则代表了一个信号,也即一个复杂的“函数表达式”,也可以说像处理一个信号的
表达式一样处理这个声音信号。
下面是语音信号在MATLAB中的语言程序,它实现了语音的读入与打开,并绘
制了语音信号的波形频谱图。在本次设计中,我们利用fft对语音信号进行快速
傅里叶变换,就可以得到信号的频谱特性。程序见附录2。
程序运行后得到的的波形如图4-1、图4-2、图4-3、图4-4。
图4-1 原始信号波形
图4-2 原始语音信号采样后频谱图
8
图4-3 原始信号幅值
图4-4 原始信号相位
4.3 加噪语音信号频谱分析及仿真
在本次课程设计中,我们是利用MATLAB中的随机函数(rand或randn)产生噪
声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。Randn函数有两
种基本调用格式:Randn(n)和Randn(m,n),前者产生n×n服从标准高斯分布的
随机数矩阵,后者产生m×n的随机数矩阵。
下面一段程序实现了利用randn函数把一段随机噪音信号加入原始语音信号
的信号处理过程,见附录3。
加噪后语音信号的时域波形、频谱图如图4-5:
9
图4-5 加噪语音信号时域波形和频谱图
通过对两张图片的对比,很明显可以看加噪后的语音信号时域波形比原始语
音信号浑浊了许多,在时间轴上可以明显看出0—0.5S的幅值增大了;通过对原
始语音信号的频谱图与加噪后的语音信号频谱图的对比,也可以看出在频率
5000Hz以后的频率幅值发生了明显的增加。
4.4 去噪及仿真
在Matlab中,IIR滤波器利用函数filter对信号进行滤波。函数filter的
调用格式:yn=filter(B,),它是按照直线型结构实现对xn的滤波。其中
xn是输入信号向量,yn输出信号向量。设计一个IIR低通滤波器对加噪语音信号
进行滤波处理。程序见附录4。
IIR滤波前和滤波后波形及频谱如图4-6:
图4-6 IIR滤波前和滤波后波形及频谱
10
4.5 回放语音信号
经过以上的加噪声处理后,可在Matlab中用函数sound对声音进行回放。
其调用格式:sound(y,Fs),sound(y)和sound(y,Fs,bits)。可以察觉滤波前后
的声音有明显的变化。
5 结束语
本设计采用了MATLAB软件,实现了语音信号的采集,圆满的完成了对加噪声
语音信号的读取与打开,与课题的要求十分相符;也较好的完成了对原始语音信
号和加噪声后的语音信号的频谱分析,通过fft变换,得出了语音信号的频谱图。
课题的特色在于它将语音信号看作一个向量,于是就把语音数字化了。那么,
就可以完全利用数字信号处理的知识来解决语音及加噪处理问题。我们可以像给
一般信号做频谱分析一样,来对语音信号做频谱分析,也能较容易的用数字滤波
器来对语音进行滤波处理。通过比较加噪前后,语音的频谱和语音回放,能明显
的感觉到加入噪声后回放的声音与原始的语音信号有很大的不同,前者随较尖锐
的干扰啸叫声。从含噪语音信号的频谱图中可以看出含噪声的语音信号频谱,在整
个频域范围内分是布均匀。其实,这正是干扰所造成的。通过滤波前后的对比,
可得出结论:语音信号主要分布在低频段,而噪声主要分布在高频段。
11
附 录
附录1:IIR低通滤波器程序
Ft=8000;
Fp=1000;
Fs=1200;
wp=2*pi*Fp/Ft;
ws=2*pi*Fs/Ft;
fp=2*Ft*tan(wp/2);
fs=2*Fs*tan(wp/2);
[n11,wn11]=buttord(wp,ws,1,50,'s'); %求低通滤波器的阶数和截止频率
[b11,a11]=butter(n11,wn11,'s'); %求S域的频率响应的参数
[num11,den11]=bilinear(b11,a11,0.5); %双线性变换实现S域到Z域变换
[h,w]=freqz(num11,den11); %根据参数求出频率响应
plot(w*8000*0.5/pi,abs(h));
title('IIR低通滤波器');
legend('用butter设计');
grid;
附录2:产生原始语音信号波形、频谱、幅值、相位图程序
[x,fs,bits]=wavread('login');
sound(x,fs,bits);
X=fft(x,4096);
magX=abs(X);
angX=angle(X);
subplot(221);plot(x);title('原始信号波形');
subplot(222);plot(X); title('原始语音信号采样后的频谱图');
subplot(223);plot(magX);title('原始信号幅值');
subplot(224);plot(angX);title('原始信号相位');
12
附录3:产生原始语音信号和加噪语音信号时域波形、频谱图程序
[y,fs,bits]=wavread('login');
sound(y,fs);
n=length(y);
y_p=fft(y,n);
f=fs*(0:n/2-1)/n;
figure(1)
subplot(2,1,1);
plot(y);
title('原始语音信号采样后的时域波形');
xlabel('时间轴');
ylabel('幅值A');
subplot(2,1,2);
subplot(2,1,2);
plot(f,abs(y_zp(1:n/2)));
title('加噪语音信号频谱图');
xlabel('频率Hz');
ylabel('频率幅值');
附录4:产生IIR滤波前和滤波后波形及频谱图程序
Ft=8000;
Fp=1000;
Fs=1200;
wp=2*pi*Fp/Ft;
ws=2*pi*Fs/Ft;
fp=2*Ft*tan(wp/2);
fs=2*Fs*tan(wp/2);
[n11,wn11]=buttord(wp,ws,1,50,'s'); %求低通滤波器的阶数和截止频率
[b11,a11]=butter(n11,wn11,'s'); %求S域的频率响应的参数
[num11,den11]=bilinear(b11,a11,0.5); %双线性变换实现S域到Z域变换
[h,w]=freqz(num11,den11); %根据参数求出频率响应
plot(w*8000*0.5/pi,abs(h));
legend('用butter设计');
grid;
[y,fs,nbits]=wavread ('login');
n = length (y); %求出语音信号的长度
noi=0.01*randn(n,2); %随机函数产生噪声
s=y+noi; %语音信号加入噪声
S=fft(s); %傅里叶变换
z11=filter(num11,den11,s);
sound(z11);
m11=fft(z11); %求滤波后的信号
subplot(2,2,1);
14
plot(abs(S),'g');
title('滤波前信号的频谱');
grid;
subplot(2,2,2);
参考文献
[1] 张德丰:MATLAB通信工程仿真,北京机械工业出版社,2010.1
[2] 王彬、于丹、汪洋:MATLAB数字信号处理,北京机械工业出版社,2010.5
[3] 孟志强、陈燕东、王同业、杨钰:MATLAB辅助现代工程数字信号处理,西安
电子科技大学出版社,2010.7
[4] 徐明远、邵玉斌:MATLAB仿真在通信与电子过程中的应用,西安电子科技大
学出版社,2010.5
[5] 徐利民、舒君、谢优忠:基于MATLAB的信号与系统实验教程,清华大学出版
社,2009.7
[6] 张磊、毕靖、郭莲英:MATLAB实用教程,人民邮电出版社,2008.12
[7] 周利清、苏菲:数字信号处理基础,北京邮电大学出版社,2005.9
[8] 刘泉、阙大顺:数字信号处理原理与实现,电子工业出版社,2005.8 [9] 景
振毅、张泽兵、董 霖:MATLAB7.0实用宝典,中国铁道出版社,2008.10
[10] 张雪英:数字语音处理及MATLAB仿真,电子工业出版社,2010.3
16
本文发布于:2023-11-03 01:20:16,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/1698945617204486.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:基于matlab的声音信号处理.doc
本文 PDF 下载地址:基于matlab的声音信号处理.pdf
留言与评论(共有 0 条评论) |