基于MATLAB的有噪声的语音信号处理的课程设计

合集下载

应用Matlab对含噪声语音信号进行频谱分析及滤波

应用Matlab对含噪声语音信号进行频谱分析及滤波

应用Matlab对含噪声语音信号进行频谱分析及滤波应用Matlab对含噪声的语音信号进行频谱分析及滤波一、实验内容录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;在语音信号中增加正弦噪声信号(自己设置几个频率的正弦信号),对加入噪声信号后的语音信号进行频谱分析;给定滤波器的性能指标,采用窗函数法和双线性变换设计数字滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比试听,分析信号的变化。

二、实现步骤1.语音信号的采集利用Windows下的录音机,录制一段自己的话音,时间在1 s内。

然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,(可用默认的采样频率或者自己设定采样频率)。

2.语音信号的频谱分析要求首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性。

在采集得到的语音信号中加入正弦噪声信号,然后对加入噪声信号后的语音号进行快速傅里叶变换,得到信号的频谱特性。

并利用sound试听前后语音信号的不同。

分别设计IIR和FIR滤波器,对加入噪声信号的语音信号进行去噪,画出并分析去噪后的语音信号的频谱,并进行前后试听对比。

3.数字滤波器设计给出数字低通滤波器性能指标:如,通带截止频率fp=10000 Hz,阻带截止频率fs=12000 Hz(可根据自己所加入噪声信号的频率进行阻带截止频率设置),阻带最小衰减Rs=50 dB,通带最大衰减Rp =3 dB(也可自己设置),采样频率根据自己语音信号采样频率设定。

报告内容一、实验原理含噪声语音信号通过低通滤波器,高频的噪声信号会被过滤掉,得到清晰的无噪声语音信号。

二、实验内容录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;在语音信号中增加正弦噪声信号(自己设置几个频率的正弦信号),对加入噪声信号后的语音信号进行频谱分析;给定滤波器的性能指标,采用窗函数法和双线性变换设计数字滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比试听,分析信号的变化。

基于MATLAB有噪声语音信号的处理汇总

基于MATLAB有噪声语音信号的处理汇总

数字信号处理课程设计报告题目:基于MATLAB有噪声语音信号处理系(院):计算机工程学院专业:通信工程班级:通信1071学号:姓名:指导教师:-------------------------学年学期:2009 ~ 2010 学年第 1 学期2009年12月18日设计任务书指导教师(签章):年月日摘要滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。

利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。

课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。

通过理论推导得出相应结论,再利用MATLAB 作为编程工具进行计算机实现。

在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB 作为辅助工具完成设计中的计算与图形的绘制。

通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。

关键词数字滤波器 MATLAB 窗函数法巴特沃斯切比雪夫双线性变换目录1 绪论 (1)2 课程设计内容 (2)3 课程设计的具体实现 (2)3.1 语音信号的采集 (2)3.2 语音信号的时频分析 (2)3.3 语音信号加噪与频谱分析 (4)3.4 设计FIR和IIR数字滤波器 (5)3.5 用滤波器对加噪语音信号进行滤波 (12)3.6 比较滤波前后语音信号的波形及频谱 (12)3.7回放语音信号 (19)3.8设计系统界面······································································错误!未定义书签。

基于Matlab的有噪声语音信号处理

基于Matlab的有噪声语音信号处理

题目:基于Matlab的有噪声语音信号处理摘要滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。

利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。

课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。

通过理论推导得出相应结论,再利用MATLAB 作为编程工具进行计算机实现。

在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB 作为辅助工具完成设计中的计算与图形的绘制。

通过对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。

关键词:数字滤波器MATLAB 窗函数法巴特沃斯切比雪夫双线性变换目录1、绪论 (4)2、作业内容与要求 (5)3、作业设计的具体实现 (6)3.1 语音信号的采集 (6)3.2 语音信号的时频分析 (6)3.3 语音信号加噪与频谱分析 (8)3.4 设计FIR和IIR数字滤波器 (9)3.5 用滤波器对加噪语音信号进行滤波 (20)3.6 比较滤波前后语音信号的波形及频谱 (21)3.7 回放语音信号 (31)3.8 设计GUI界面 (31)4、队员贡献及民主评价 (34)5、小结 (34)6、致谢 (35)1、绪论数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。

它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。

具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等优点。

数字滤波器, 是数字信号处理中及其重要的一部分。

随着信息时代和数字技术的发展,受到人们越来越多的重视。

基于MATLAB语音信号处理去噪毕业设计(含源文件)

基于MATLAB语音信号处理去噪毕业设计(含源文件)

在Matlab平台上实现对语音信号的去噪研究和仿真摘要语音信号在数字信号处理中占有极其重要的地位,因此选择通过对语音信号的研究来巩固和掌握数字信号处理的基本能力十分具有代表性。

对数字信号处理离不开滤波器,因此滤波器的设计在信号处理中占有极其重要的地位。

而MATLAB软件工具箱提供了对各种数字滤波器的设计。

本论文“在MATLAB平台上实现对语音信号的去噪研究与仿真”综合运用了数字信号处理的各种基本知识,进而对不带噪语音信号进行谱分析以及带噪语音信号进行谱分析和滤波处理。

通过理论推导得出相应的结论,再通过利用MATLAB作为编程工具来进行计算机实现比价已验证推导出来的结论。

在设计过程中,通过设计FIR数字滤波器和IIR数字滤波器来完成滤波处理。

在设计过程中,运用了MATLAB对整个设计中的图形的绘制和一些数据的计算以及仿真。

关键字滤波器;MATLAB;仿真;滤波Speech signle denoising and simulation inMATLAB platformABSTRACTDigital signal processing can not be separated from the filter, the filter design occupies an extremely important role in signal processing. The MATLAB software toolbox provides a variety of digital filter design. The subject of the use of basic knowledge of digital signal processing, speech signal and the noisy speech signal specctral snalysis and filtering,By the theoretical derivation of the corresponding conclusions, then to the computer through the use of MATLAB as a programming tool To achieve parity to verify the conclusions derived. In the design process, using the windoow function design FIR digital filter,IIR digital filter using cut design than Chebyshev, Butterworth and bilinear variation method. In the design process,the use of computer and simulation of MATLAB the entire design, graphics rendering,and some date.Key words filter;MATLAB;simulation;filtering目录摘要 (I)ABSTRACT (II)第1章前言 (1)1.1 研究的意义 (1)1.2 国内外研究现状 (1)1.3 研究的内容 (2)第2章语音信号去噪方法的研究 (4)2.2 去噪的原理 (4)2.2.1 采样定理 (4)2.2.2 采样频率 (5)2.2 去噪的方法 (5)FIR滤波器基本结构: (7)IIR数字滤波器的设计 (8)第3章滤波器的设计及实现 (10)3.1数字滤波器设计的基本原理 (10)3.3 IIR数字滤波器的设计及实现 (13)第四章去噪及仿真的研究 (16)4.1 语音文件在MATLAB平台上的录入与打开 (16)4.2 原始语音信号频谱分析及仿真 (16)4.3 加噪语音信号频谱分析及仿真 (20)(1)正弦波信号加入原始语音信号 (20)4.4 去噪及仿真 (23)4.5 结合去噪后的频谱图对比两种方式滤波的优缺点 (25)总结 (26)致谢 ................................................................................................................... 错误!未定义书签。

基于MATLAB的语音信号处理系统设计(程序+仿真图)--毕业设计

基于MATLAB的语音信号处理系统设计(程序+仿真图)--毕业设计

语音信号处理系统设计摘要:语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科。

语音信号处理的目的是得到某些参数以便高效传输或存储,或者是用于某种应用,如人工合成出语音、辨识出讲话者、识别出讲话内容、进行语音增强等。

本文简要介绍了语音信号采集与分析以及语音信号的特征、采集与分析方法,并在采集语音信号后,在MATLAB 软件平台上进行频谱分析,并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。

利用MATLAB来读入(采集)语音信号,将它赋值给某一向量,再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波,然后我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。

关键词:Matlab,语音信号,傅里叶变换,滤波器1课程设计的目的和意义本设计课题主要研究语音信号初步分析的软件实现方法、滤波器的设计及应用。

通过完成本课题的设计,拟主要达到以下几个目的:1.1.了解Matlab软件的特点和使用方法。

1.2.掌握利用Matlab分析信号和系统的时域、频域特性的方法;1.3.掌握数字滤波器的设计方法及应用。

1.4.了解语音信号的特性及分析方法。

1.5.通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。

2 设计任务及技术指标设计一个简单的语音信号分析系统,实现对语音信号时域波形显示、进行频谱分析,利用滤波器滤除噪声、对语音信号的参数进行提取分析等功能。

采用Matlab设计语言信号分析相关程序,并且利用GUI设计图形用户界面。

具体任务是:2.1.采集语音信号。

2.2.对原始语音信号加入干扰噪声,对原始语音信号及带噪语音信号进行时频域分析。

2.3.针对语音信号频谱及噪声频率,设计合适的数字滤波器滤除噪声。

2.4.对噪声滤除前后的语音进行时频域分析。

2.5.对语音信号进行重采样,回放并与原始信号进行比较。

基于MATLAB的有噪声的语音信号处理的课程设计要点

基于MATLAB的有噪声的语音信号处理的课程设计要点

基于MATLAB的有噪声的语音信号处理的课程设计要点一、设计背景随着科技的不断发展,语音信号处理愈发成为热门话题。

在语音数据中,常常会被噪声干扰,从而使得信号质量下降,影响了数据分析和处理的效果。

本课程设计旨在通过MATLAB来设计一套有噪声的语音信号处理方法,以提高对语音信号信噪比的分析和处理能力,为后续的语音处理研究奠定基础。

二、课程设计要点1. 语音信号的获取和预处理在本课程中,需要使用MATLAB语音处理工具箱中的audioread()函数获取.wav格式的语音信号,然后进行预处理操作,包括:•极化和采样:将语音信号从时间域转换到频域,并进行重采样处理,以适应后续处理操作的需求。

•去噪:根据信噪比的情况,选择合适的去噪算法对语音信号进行滤波,以减低信号的噪声干扰。

2. 基本的信号处理方法•频谱分析和频率域滤波:可以通过MATLAB处理语音信号的频域,进行谱分析、谱修复以及滤波的操作。

•时域滤波:应用IIR和FIR滤波器来消除噪声,提高信号质量。

•自适应滤波:通过模型建立和自适应滤波器设计,从语音信号中分离出噪声信号。

3. 压缩和解压缩•信号压缩:对语音信号进行压缩处理,以实现数据的高效管理和传输。

•信号解压缩:对压缩后的语音信号进行解压缩处理,还原原始的语音信号,以进行后续处理。

4. 语音识别•特征提取:通过分段处理,并进行特征提取,将信号的语音特征转换为相应的数字特征向量,为后续的语音识别做准备。

•语音识别:基于数字特征向量,采用各种识别算法,进行语音识别。

三、设计思路1.读入语音信号和噪声,可以通过audioread()函数和一些MATLAB工具箱实现。

同时,对输出语音信号进行噪声除去处理。

2.对语音信号进行频谱分析,并基于不同的SNR条件下,应用FIR和IIR滤波器对语音信号进行滤波处理。

进而利用多种去噪算法对含噪语音信号进行去噪处理。

3.对经过滤波处理的语音信号进行特征提取,并采用隐马尔可夫模型(HMM)对数字特征向量进行处理,进行不同说话人的识别。

基于MATLAB的有噪声的语音信号处理的课程设计

基于MATLAB的有噪声的语音信号处理的课程设计

基于MATLAB的有噪声的语⾳信号处理的课程设计基于MATLAB的有噪声的语⾳信号处理的课程设计DSP实验课程设计实验报告姓名:学号:班级:1.课程设计题⽬:基于MATLAB的有噪声的语⾳信号处理的课程设计。

2.课程设计的⽬的:综合运⽤数字信号处理的理论知识进⾏频谱分析和滤波器设计,通过理论推导得出相应的结论,再利⽤MATLAB做为编程⼯具进⾏计算机实现,从⽽加深对所学知识的理解,建⽴概念。

3.课程设计的要求:(1)熟悉离散信号和系统的时域特性。

(2)掌握序列快速傅⾥叶变换FFT⽅法。

(3)学会MATLAB的使⽤,掌握MATLAB的程序设计⽅法。

(4)利⽤MATLAB对语⾳信号进⾏频谱分析。

(5)掌握MATLAB设计各种数字滤波器的⽅法和对信号进⾏滤波的⽅法。

4.课程设计的内容:录制⼀段语⾳信号,对语⾳信号进⾏频谱分析,利⽤MATLAB中的随机函数产⽣噪声加⼊到语⾳信号中,使语⾳信号被污染,然后进⾏频谱分析,设计FIR和IIR数字滤波器,并对噪声污染的语⾳信号进⾏滤波,分析滤波后的信号的时域和频域特征,回放语⾳信号。

5.课程设计的步骤:(1)语⾳信号的获取通过录⾳软件录制⼀段语⾳“数字信号处理”,命名为“OriSound”,时长⼤约1到2秒,在MATLAB 中,通过使⽤wavread函数,对语⾳进⾏采样:[y,fs,nbits]=wavread('OriSound'); %语⾳信号的采集采样值放在向量y中,采样频率为fs,采样位数为nbits。

(2)语⾳信号的频谱分析画出语⾳信号的时域波形,然后对语⾳信号进⾏频谱分析,在MATLAB中,通过使⽤fft函数对信号进⾏快速傅⾥叶变换,得到信号的频谱特性。

因此采集语⾳并绘出波形和频谱的模块程序如下:[y,fs,nbits]=wavread('OriSound');%语⾳信号的采集sound(y,fs,nbits);%语⾳信号的播放n=length(y) ; %计算语⾳信号的长度Y=fft(y,n);%快速傅⾥叶变换figure;subplot(2,1,1); %绘出时域波形plot(y);title('原始信号波形','fontweight','bold');axis([ 00000 80000 -1 1]); %通过尝试确定合适的坐标参数grid;subplot(2,1,2); %绘出频域频谱plot(abs(Y));title('原始信号频谱','fontweight','bold');axis([ 0 150000 0 4000]); %通过尝试确定合适的坐标参数grid;结果如下:可以看到,语⾳信号的频率集中在低频部分。

matlab噪声信号fft课程设计

matlab噪声信号fft课程设计

matlab噪声信号fft课程设计一、教学目标本课程的目标是使学生掌握MATLAB软件在噪声信号FFT分析中的应用。

通过本课程的学习,学生将能够:1.理解噪声信号的基本概念和特性;2.掌握FFT变换的基本原理和应用;3.熟练使用MATLAB软件进行噪声信号的FFT分析;4.掌握如何从噪声信号中提取有用的信息,并进行相应的处理和分析。

二、教学内容本课程的教学内容主要包括以下几个部分:1.噪声信号的基本概念和特性:包括噪声信号的定义、分类和特点等;2.FFT变换的基本原理和应用:包括FFT变换的定义、性质和应用等;3.MATLAB软件的使用:包括MATLAB软件的基本操作、函数和使用方法等;4.噪声信号的FFT分析:包括噪声信号的采集、处理和分析等。

三、教学方法为了达到本课程的教学目标,我们将采用以下几种教学方法:1.讲授法:通过讲解噪声信号和FFT变换的基本概念和原理,使学生能够理解和掌握相关知识;2.案例分析法:通过分析具体的噪声信号案例,使学生能够将理论知识应用到实际问题中;3.实验法:通过使用MATLAB软件进行噪声信号的FFT分析实验,使学生能够熟练掌握相关技能。

四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:包括噪声信号和FFT变换的相关理论知识和案例分析;2.多媒体资料:包括噪声信号和FFT变换的动画演示和实验操作视频等;3.实验设备:包括计算机和相关软件,用于进行噪声信号的FFT分析实验。

五、教学评估为了全面、公正地评估学生在课程学习中的表现和成果,我们将采用以下几种评估方式:1.平时表现:通过观察学生在课堂上的参与度、提问和回答问题的表现等,评估学生的学习态度和积极性;2.作业:通过评估学生提交的作业质量,了解学生对课程内容的掌握程度和应用能力;3.考试:通过期末考试,测试学生对课程知识的全面理解和应用能力。

六、教学安排本课程的教学安排如下:1.教学进度:按照教材和大纲的要求,合理安排每个章节的教学内容和进度;2.教学时间:根据学生的作息时间和课程安排,合理分配课堂教学时间和课后自主学习时间;3.教学地点:选择合适的教室和实验室,为学生提供良好的学习环境。

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

DSP实验课程设计实验报告姓名:学号:班级:1.课程设计题目:基于MATLAB的有噪声的语音信号处理的课程设计。

2.课程设计的目的:综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,再利用MATLAB做为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。

3.课程设计的要求:(1)熟悉离散信号和系统的时域特性。

(2)掌握序列快速傅里叶变换FFT方法。

(3)学会MATLAB的使用,掌握MATLAB的程序设计方法。

(4)利用MATLAB对语音信号进行频谱分析。

(5)掌握MATLAB设计各种数字滤波器的方法和对信号进行滤波的方法。

4.课程设计的内容:录制一段语音信号,对语音信号进行频谱分析,利用MATLAB中的随机函数产生噪声加入到语音信号中,使语音信号被污染,然后进行频谱分析,设计FIR和IIR数字滤波器,并对噪声污染的语音信号进行滤波,分析滤波后的信号的时域和频域特征,回放语音信号。

5.课程设计的步骤:(1)语音信号的获取通过录音软件录制一段语音“数字信号处理”,命名为“OriSound”,时长大约1到2秒,在MATLAB中,通过使用wavread函数,对语音进行采样:[y,fs,nbits]=wavread('OriSound'); %语音信号的采集采样值放在向量y中,采样频率为fs,采样位数为nbits。

(2)语音信号的频谱分析画出语音信号的时域波形,然后对语音信号进行频谱分析,在MATLAB中,通过使用fft 函数对信号进行快速傅里叶变换,得到信号的频谱特性。

因此采集语音并绘出波形和频谱的模块程序如下:[y,fs,nbits]=wavread('OriSound'); %语音信号的采集sound(y,fs,nbits); %语音信号的播放n=length(y) ; %计算语音信号的长度Y=fft(y,n); %快速傅里叶变换figure;subplot(2,1,1); %绘出时域波形plot(y);title('原始信号波形','fontweight','bold');axis([ 00000 80000 -1 1]); %通过尝试确定合适的坐标参数grid;subplot(2,1,2); %绘出频域频谱plot(abs(Y));title('原始信号频谱','fontweight','bold');axis([ 0 150000 0 4000]); %通过尝试确定合适的坐标参数grid;结果如下:可以看到,语音信号的频率集中在低频部分。

(3)产生噪声信号在MATLAB中,通过使用randn函数产生随机噪声信号,并加到语音信号中得到被污染的语音信号,回放语音信号。

产生随机噪声:Noise=0.2*randn(n,1);其中用0.2倍乘噪声用来适当削减噪声的作用,便于对语音信号进行处理并比较效果。

(4)污染信号频谱分析对被污染的加噪信号进行时域和频域分析。

加噪声并分析信号波形频谱的模块程序及说明如下:[y,fs,nbits]=wavread('OriSound.wav'); %语音信号采集sound(y,fs,nbits); %回放语音信号便于比较效果n = length (y) ; %计算语音信号长度Noise=0.2*randn(n,1); %产生随机噪声信号Noises=y+Noise; %将Noise添加到原始信号,得到污染信号ssound(s); %回放污染信号sfigure;subplot(2,1,1); %绘制加噪信号时域波形plot(s);title('加噪语音信号的时域波形','fontweight','bold');axis([ 00000 80000 -1 1]);grid;S=fft(s); %对s进行快速傅里叶变换得到频谱subplot(2,1,2); %绘制加噪信号频域频谱plot(abs(S));title('加噪语音信号的时域波形','fontweight','bold');axis([ 0 150000 0 4000]);grid;结果如下:可以看到,随机噪声均匀的分布在整个频谱范围内。

(5)设计FIR和IIR数字滤波器在MA TLAB中,根据频谱特征设计FIR和IIR滤波器。

在Matlab中,可以利用函数fir1设计FIR滤波器,利用函数butter,cheby1设计IIR滤波器,利用Matlab中的函数freqz画出各步滤波器的频率响应。

低通滤波器的性能指标:fp=1000Hz,fc=1200Hz,As=100db ,Ap=1dB高通滤波器的性能指标:fp=3500Hz,fc=4000Hz,As=100dB,Ap=1dB;带通滤波器的性能指标:fp1=1200Hz,fp2=3000hZ,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB在MA TLAB中,利用[N,wc]=butter(N,wc,Rp,As,'s')设计并计算巴特沃斯模拟滤波器的阶数N和3dB截止频率wc;[B,A]=cheby1(N,Rp,wpo,'ftypr')设计切比雪夫I型滤波器。

在课程设计中,共设计了六种滤波器对信号进行滤波:FIR低通,高通,带通滤波器,IIR低通,高通,带通滤波器。

通过对原始信号和加噪信号的频谱进行观察,原始语音信号频谱集中在低频段,而随机噪声接近均匀的分布在整个频谱范围内,因此推测选用低通滤波器去噪性能要好于高通和带通滤波器。

(6)对污染信号进行滤波在MA TLAB中用FIR和IIR滤波器对加噪信号进行滤波,其中通过利用函数fftfilt用FIR滤波器滤波,通过利用函数filter用IIR滤波器滤波。

(7)回放语音信号在MA TLAB中,通过用sound函数对语音信号进行回放,用以比较各滤波器的滤波效果。

各滤波器设计模块的程序和说明如下:(1)IIR低通滤波器设计[y,fs,nbits]=wavread('OriSound.wav'); %语音信号采集n = length (y) ; %计算语音信号长度Noise=0.2*randn(n,1); %产生随机噪声信号Noises=y+Noise; %将Noise添加到原始信号,得到污染信号sS=fft(s); %快速傅里叶变换Ft=8000;Fp=1000;Fs=1200;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;[n11,wn11]=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,fs,nbits); %回放滤波后的信号m11=fft(z11); %滤波后的信号频谱figure;subplot(2,2,1); %绘出滤波前的信号频谱plot(abs(S),'g');title('滤波前信号的频谱','fontweight','bold');axis([ 0 80000 0 4000]);grid;subplot(2,2,2); %绘出滤波后的信号频谱plot(abs(m11),'r');title('滤波后信号的频谱','fontweight','bold');axis([ 0 80000 0 4000]);grid;subplot(2,2,3); %绘出滤波前的信号波形plot(s);title('滤波前信号的波形','fontweight','bold');axis([00000 100000 -1 1]);grid;subplot(2,2,4); %绘出滤波后的信号波形plot(z11);title('滤波后的信号波形','fontweight','bold');axis([00000 100000 -1 1]);grid;结果如下:可以看出,滤波后将非低频部分的噪声频率滤掉,但还有一些高于原始语音信号的频率没有被去除。

(2)IIR高通滤波器设计[y,fs,nbits]=wavread ('OriSound'); %语音信号采集n = length (y) ; %计算语音信号的长度Noise=0.2*randn(n,1); %产生随机噪声s=y+Noise; %语音信号加入噪声得到加噪信号S=fft(s); %快速傅里叶变换Fp1=1200;Fs1=1000;Ft=8000;wp1=tan(pi*Fp1/Ft);ws1=tan(pi*Fs1/Ft);wp=1;ws=wp1*wp/ws1;[n13,wn13]=cheb1ord(wp,ws,1,50,'s'); %模拟的低通滤波器阶数和截止频率[b13,a13]=cheby1(n13,1,wn13,'s'); %S域的频率响应的参数[num,den]=lp2hp(b13,a13,wn13); %S域低通参数转为高通的[num13,den13]=bilinear(num,den,0.5); %利用双线性变换实现频率响应S域到Z域转换z13=filter(num13,den13,s); %滤波sound(z13,fs,nbits); %回放滤波后的信号m13=fft(z13); %滤波后的信号频谱figure;subplot(2,2,1); %绘出滤波前的信号频谱plot(abs(S),'g');title('滤波前信号的频谱','fontweight','bold');axis([0 80000 0 4000]);grid;subplot(2,2,2); %绘出滤波后的信号频谱plot(abs(m13),'r');title('滤波后信号的频谱','fontweight','bold');axis([0 80000 0 4000]);grid;subplot(2,2,3); %绘出滤波前的信号波形plot(s);title('滤波前信号的波形','fontweight','bold');axis([00000 100000 -1 1]);grid;subplot(2,2,4); %绘出滤波后的信号波形plot(z13);title('滤波后的信号波形','fontweight','bold');axis([00000 100000 -1 1]);grid;结果如下:可以看出,滤波后将原始信号绝大部分频谱滤掉,剩下噪声信号,不能采用。

相关文档
最新文档