收藏 分享(赏)

基于MATLAB的频谱分析与信号去噪.doc

上传人:精品资料 文档编号:10310604 上传时间:2019-10-29 格式:DOC 页数:28 大小:982KB
下载 相关 举报
基于MATLAB的频谱分析与信号去噪.doc_第1页
第1页 / 共28页
基于MATLAB的频谱分析与信号去噪.doc_第2页
第2页 / 共28页
基于MATLAB的频谱分析与信号去噪.doc_第3页
第3页 / 共28页
基于MATLAB的频谱分析与信号去噪.doc_第4页
第4页 / 共28页
基于MATLAB的频谱分析与信号去噪.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、学生毕业设计报告基于 MATLAB 的频谱分析与信号去噪作 者 系(院) 专 业 年 级 学 号 指导教师 日 期 学生诚信承诺书本人郑重承诺:所呈交的设计报告是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,报告中不包含其他人已经发表或撰写的研究成果,也不包含为获得安阳师范学院或其他教育机构的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在报告中作了明确的说明并表示了谢意。签名: 日期: 报告使用授权说明本人完全了解 有关保留、使用学位报告的规定,即:学校有权保留送交报告的复印件,允许报告被查阅和借阅;学校可以公布报告的

2、全部或部分内容,可以采用影印、缩印或其他复制手段保存报告。签名: 导师签名: 日期:第 1 页基于 MATLAB 的频谱分析与信号去噪摘要:本课题是基于数字信号处理的理论知识对语音信号、图像信号等的频谱分析以及对加噪声语音信号进行时域、频域分析和滤波设计。然后利用 MATLAB 软件进行编程,调试并完善程序,最终在计算机上得以实现。滤波器设计在数字信号处理中占有极其重要的地位,数字滤波器又有 FIR 数字滤波器和 IIR 滤波器两种。利用 MATLAB 信号处理工具箱可以快速有效地设计各种数字滤波器。在设计实现的过程中,使用窗函数法来设计 FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计

3、 IIR 数字滤波器,并利用 MATLAB 作为辅助工具完成设计中的计算与图形的绘制。通过对对所设计滤波器的仿真和频率特性分析,可知利用 MATLAB 信号处理工具箱可以有效快捷地设计 FIR 和 IIR 数字滤波器,过程简单方便,结果的各项性能指标均符合指定要求。关键词 频域分析, 滤波器 , MATLAB1 引言1.1 课题背景随着信息时代和数字世界的到来,数字信号处理己成为当今一门极其重要的学科和技术领域,数字信号处理在通信、语音、图像、自动控制、医疗和家用电器等众多领域得到了广泛的应用。任意一个信号都具有时域与频域特性,信号的频谱完全代表了信号,因而研究信号的频谱就等于研究信号本身。通

4、常从频域角度对信号进行分析与处理,容易对信号的特性获得深入的了解。因此,信号的频谱分析是数字信号处理技术中的一种较为重要的工具。数字滤波器, 是数字信号处理中及其重要的一部分。随着数字技术的发展,受到人们越来越多的重视。数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活、不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应( FIR,Finite Impulse Response)滤波器和无限冲激响应( IIR,Infinite Impulse Respo

5、nse)滤波器。在工程领域中,MATLAB 是一种倍受程序开发人员青睐的语言,对于一些需要做大量数据运算处理的复杂应用以及某些复杂的频谱分析算法 MATLAB 显得游刃有余。1.2 研究意义信号处理几乎涉及到所有的工程技术领域,而频谱分析又是信号处理中一个非常重要的分析手段。一般的频谱分析都依靠传统频谱分析仪来完成,价格昂贵,体积庞大,第 2 页不便于工程技术人员的携带。虚拟频谱分析仪改变了原有频谱分析仪的整体设计思路,用软件代替了硬件,使工程技术人员可以用一部笔记本电脑到现场就可轻松完成信号的采集、处理及频谱分析。 信 号 去 噪 被 用 于 从 一 堆 波 音 资 料 中 提 取 有 用

6、信 息 , 去 除 干 扰 , 提 高 波 音 资 料 信 噪比 。 为 了 提 高 信 噪 比 , 人 们 根 据 信 号 和 噪 声 的 各 种 特 征 差 异 , 设 计 了 许 多 去 噪 方 法 ,并 在 应 用 中 并 取 得 了 很 好 的 成 果 。 信 号 去 噪 的 很 多 方 法 都 是 利 用 短 时 傅 立 叶 变 换 来 滤波 去 噪 , 但 是 短 时 傅 立 叶 变 换 不 能 同 时 兼 顾 时 间 分 辨 率 和 频 率 分 辨 率 。 用 不 同 种 滤波 器 滤 波 也 是 一 种 有 效 可 行 的 方 法 。1.3 本文研究内容信号的频谱分析就是利用

7、傅里叶分析的方法,求出与时域描述相对应的频域描述,从中找出信号频谱的变化规律,以达到特征提取的目的。不同信号的傅里叶分析理论与方法,在有关专业书中都有介绍。但实际的待分析信号一般没有解析式,直接利用公式进行傅里叶分析非常困难.。DFT 是一种时域和频域均离散化的傅里叶变换,适合数值计算且有快速算法,是分析信号的有力工具。DFT 及 FFT 是数字信号处理的重要内容。 DFT 是 FFT 的基础,FFT 是 DFT 的快速算法,在 MAT LAB 中可以利用函数 FFT 来计算序列的离散傅里叶变换 DFT。基于此首先介绍了 MAT LAB 软件;其次给出了基于 MAT LAB 软件的 DFT 和

8、 FFT 频谱分析的方法,利用 MAT LAB 软件方法,使得设计方便、快捷,大大减轻了工作量;再而我们提取一段语音信号,加噪,再通过设计的不同滤波器进行滤波后的频谱分析。本文将重点介绍基于 MATLAB 的频谱分析设计,包括:(1) 音频信号频谱分析;(2) 图像信号频谱分析;(3) 离散信号 /序列频谱分析;(4)语音信号提取,分析和加噪;(5)设计 IIR 和 FIR 的各种滤波器;(6)用设计的滤波器进行滤波;(7)分析滤波前后信号特征。2 频谱分析技术及MATLAB简介2.1 时域抽样定理时域抽样定理给出了连续信号抽样过程中信号不失真的约束条件:对于基带信号,信号抽样频率 大于等于

9、2 倍的信号最高频率 ,即 。时域抽样是把连续信samf mf2samf号 变成适于数字系统处理的离散信号 Xk。对连续信号 以间隔 T 抽样,则可得Xt Xt到的离散序列为 ,如图 2-1 所示。kTtXk第 3 页x(t)xk tk0T2012图 2-1 连续信号抽样的离散序列若 ,则信号 与 Xk的频谱之间存在:kTtXk Xtj sam1(e)j()nT其中, 的频谱为 ,Xk的频谱为 。j(e)(j)je可见,信号时域抽样导致信号频谱的周期化。 (rad/s)为抽样角频率, 为2/samT1samfT抽样频率。数字角频率 与模拟角频率 的关系为:=T。2.2 离散傅立叶变换(DFT)

10、 有限长序列 的离散傅立叶变换(DFT)为)(nx 10,)()(10NnWnxDFTkXNk逆变换为 ,)()()(10kXkInxNnn2.3 快速傅立叶变换(FFT)在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT) 进行分析。DFT 不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。有限长序列的 DFT 是其 z 变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。FFT 是 DFT 的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。MATLAB 为

11、计算数据的离散快速傅立叶变换,提供了一系列丰富的数学函数,主要有 fft、ifft、fft2 、ifft2, fftn、ifftn 和 fftshift、ifftshift 等。当所处理的数据的长度为 2 的幂次时,采用基-2 算法进行计算,计算速度会显著增加。所以,要尽可能使所要处理的数据长度为 2 的幂次或者用添零的方式来添补数据使之成为 2 的幂次。fft 函数调用方式:(1)Y=fft(X)(2)Y=fft(X,N)第 4 页(3)Yfft(X,dim)或 Yfft(X,N,dim) 。函数 ifft 的参数应用与函数 fft 完全相同。2.4 频谱分析原理时域分析只能反映信号的幅值随

12、时间的变化情况,除单频率分量的简单波形外,很难明确提示信号的频率组成和各频率分量大小,而频谱分析能很好的解决此问题。由于从频域能获得的主要是频率信息,所以本节主要介绍频率(周期)的估计与频谱图的生成。2.4.1 频率和周期的估计对于 Y(kf),如果当 kf = f 时,Y(k f)取最大值,则 f 为频率的估计值,由于采样间隔的误差,f 也存在误差,其误差最大为 f / 2。周期 T=1/f。从原理上可以看出,如果在标准信号中混有噪声,用上述方法仍能够精确地估计出原标准信号的频率和周期。2.4.2 频谱图为了直观地表示信号的频率特性,工程上常常将 Fourier 变换的结果用图形的方式表示,

13、即频谱图。以频率 f 为横坐标,|Y( f)|为纵坐标,可以得到幅值谱;以频率 f 为横坐标,Arg Y(f)为纵坐标,可以得到相位谱;以频率 f 为横坐标,Re Y(f)为纵坐标,可以得到实频谱;以频率 f 为横坐标,Im Y(f)为纵坐标,可以得到虚频谱。根据采样定理,只有频率不超过 Fs/2 的信号才能被正确采集,即 Fourier 变换的结果中频率大于 Fs/2 的部分是不正确的部分,故不在频谱图中显示。即横坐标 f 0, Fs/22.5 MATLAB简介2.5.1 MATLAB软件的发展MATLAB 软件是由美国 Mathworks 公司推出的用于数值计算和图形处理的科学计算系统环境

14、。MATLAB 是英文 MATrix LABoratory(矩阵实验室)的缩写。它的第一版(DOS 版本 1.0)发行于 1984 年,经过 10 余年的不断改进,现今已推出它的 Windows 98/NT 版本(6.1 版)。新的版本集中了日常数字处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。在 MATLAB 环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。MATLAB 提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩阵对象时,不要求作明确的维数说明。与利用 C 语言或 FORTRAN 语言作数值计算的程

15、序设计相比,利用 MATLAB 可以节省大量的编程时间。在美国的一些大学里,MATLAB 正在成为对数值计算、算法预设计与验证,以及一些特殊的短阵计算应用,如自动控制理论、统计、数字信号处理( 时间序列分拆)等。MATLAB 系统最初是由 CieveMoler 用 FORTRAN 语言设计的,有关矩阵的算法来自 LINPACK 和 EISPACK 课题的研究成果;现在的 MATLAB 程序是 MathWorks 公司用 C 语言开发的,第一版由 steve Bangert 主持开发编译解释程序,Steve Kleiman 完成图形功能的设计,John Little 和 Cleve Moler

16、主持开发各类数学分析的子模块,撰写用户指南和大部分 M 文件。自从第 1 版发行以来,已第 5 页有众多的科技工作者加入到 MATLAB 的开发队伍中,并为形成今天的 MATLAB 系统做出了巨大的贡献,MATLAB 以商品形式出现后,仅短短几年,就以其良好的开放性和运行可靠性,使原先控制领域里的封闭式软件包(如英国的 UMIST,瑞典的 LUND,德国的 KEDDC)纷纷淘汰,而改以 MATLAB 为平台加以重建。在时间进入 20 世纪九十年代的时候,MATLAB 已经成为国际控制界公认的标准计算软件。到九十年代初期,在国际上 30 几个数学类科技应用软件中,MATLAB 在数值计算方面独占

17、鳌头。2.5.2 MATLAB组成MATLAB 系统由五个主要部分组成,下面分别加以介绍:(1)MATLAB 语言体系。 MATLAB 是高层次的矩阵 /数组语言,具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模编程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。(2)MATLAB 工作环境。这是对 MATLAB 提高给用户使用的管理功能的总称。包括管理工作空间中的变量输入输出的方式和方法,以及开发、调试、管理 M 文件的各种工具。(3)图形句相系统。 这是 MATLAB 图形系统的基础,包括完成 2D 和 3D 数据图示

18、、图象处理、动画生成、图形显示等功能的高层 MATLAB 命令,也包括用户对图形图象等对象进行野性控制的低层 MATLAB 命令,以及开发 GUI 应用程序的各种工具。(4)MATLAB 数学函数库。这是对 MATLAB 使用的各种数学算法的总称。包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。(5)MATLAB 应用程序接口 (API)。这是 MATLAB 为用户提供的一个函数库,使得用户能够在MATLAB 环境中使用 C 程序或 FORTRAN 程序,包括从 MATLAB 中调用程序( 动态连接),读写 MAT 文件的功能。可以看出 MATLAB 是一个功能十分强大的系统

19、,是集数值计算、图形管理、程序开发为一体的环境。除此之外,MATLAB 还具有很强的功能扩展能力,与它的系统一起,可以配备各种各样的工具箱。3 频谱分析与算例3.1 声音信号频谱分析MATLAB 语言是一种数据分析和处理功能十分强大的计算机应用软件, 它可以将声音文件变换为离散的数据文件, 然后利用其强大的矩阵运算能力处理数据, 如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种分析图的呈现等等。 下面以语音信号的波形图、频谱图分析为例来说明 MATLAB 在语音信号处理中的具体实现方法。第 6 页0 2 4 6 8 10 12x 105-1-0.500.51 低 低 低 低0 2 4

20、6 8 10 12x 1050200040006000 低 低 低 低图 3-1 声音信号分析图程序代码:y0,fs0,nbits0=wavread (D:worksong.wav);sound(y0,fs0,nbits0); n0 = length (y0) ; s0=y0;S0=fft(s0); subplot(2,1,1);plot(s0);title(信号波形);grid;subplot(2,1,2);plot(abs(S0),g);title(信号频谱);grid;上程序将语音文件“M.wav”进行频谱分析,分析结果如图 3-1 所示。3.2 图像信号频谱分析纹理图像的频谱可以通过离

21、散傅里叶变换(DFT)得到。用 表示一幅空域纹理图(,)fxy第 7 页像,用 表示该图像的频谱,图像的大小为 MN,则 和 质检可以通过(,)Fuv (,)fxy(,)FuvDFT 计算,计算公式如下: 120(,)(,).;.1xuyvMNjMNxyFuvfe其中能量谱可采用公式: 2(,)(,)SuvF基于傅立叶能量谱的纹理图像分析的前提是假设纹理有不同的正弦波组成。理想正弦分布的纹理图像,是最为典型的纹理图像之一,下面讨论理想正弦分布的纹理图像的仿真及其频谱特征分析。第 8 页3-2 原始图像利用 FFT 算法对上面图像信号进行频谱分析。程序代码为:I=imread(1.tif)I =

22、 rgb2gray( I );imshow(I);fftI=fft2(I);sfftI=fftshift(fftI);RR=real(sfftI);II=imag(sfftI);A=sqrt(RR.2+II.2);A=(A-min(min(A)/(max(max(A)-min(min(A)*225;figure;imshow(A);在 MATLAB 中执行了 FFT 后,使用了 fftshift 函数调整,以使频谱图像的原点从起始点(0 ,0) ,移到图像的中心点(M/2,N/2),对应的图 3-3 的傅立叶频谱能量图。从图中可以看出:竖直方向理想单一频率的正弦分布纹理的频谱能量集中在水平方向

23、的三个点。第 9 页图 3-3 纹理频谱图4 有噪声的语音信号分析与去噪4.1 有噪语音信号提取4.1.1 语音信号的采集利用PC 机上的声卡和WINDOWS 操作系统可以进行数字信号的采集。将话筒输入计算机的语音输入插口上,启动录音机。按下录音按钮,接着对话筒说话“语音信号处理”, 说完后停止录音,屏幕左侧将显示所录声音的长度。点击放音按钮,可以实现所录音的重现。第 10 页以文件名“speech ”保存入 C:MATLAB6p5work 中。可以看到,文件存储器的后缀默认为. wav ,这是WINDOWS 操作系统规定的声音文件存的标准。4.1.2 语音信号的时频分析MATLAB软件平台下

24、,利用wavread函数对语音信号进行采样,记住采样频率和采样点数wavread 函数调用格式y=wavread(file)%读取 file 所规定的 wav 文件,返回采样值放在向量 y 中。y,fs,nbits=wavread(file) %采样值放在向量 y 中,fs 表示采样频率(hz),nbits 表示采样位数。y=wavread(file,N)%读取钱 N 点的采样值放在向量 y 中。y=wavread(file,N1,N2)%读取从 N1 到 N2 点的采样值放在向量 y 中。对语音信号 speech.wav 进行采样其程序如下:y,fs,nbits=wavered (speec

25、h); %把语音信号进行加载入 MATLAB 仿真软件平台中fs =44100nbits =16首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在 MATLAB 中利用fft 对信号进行快速傅里叶变换,得到信号的频谱特性。其程序如下:y,fs,nbits=wavread (speech);sound(y,fs,nbits); %回放语音信号n = length (y) ; %求出语音信号的长度Y=fft(y,n); %傅里叶变换subplot(2,1,1);plot(y);title(原始信号波形);subplot(2,1,2);plot(abs(Y);title(原始信号频谱)程序结

26、果如图 4-1 所示。第 11 页0 5 10 15x 105-1-0.500.51 低 低 低 低 低 低0 5 10 15x 10500.511.52x 104 低 低 低 低 低 低图 4-1 原始信号特征4.1.3 语音信号加噪与频谱分析利用MATLAB中的随机函数(rand 或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。其程序如下:y,fs,nbits=wavread (speech);n = length (y) ; %求出语音信号的长度noise=0.21*randn(n,2); %随机函数产生噪声s=y+noise; %语音信号加入噪声 subpl

27、ot(2,1,1);plot(s);title(加噪语音信号的时域波形);S=fft(s); %傅里叶变换subplot(2,1,2);plot(abs(S);title(加噪语音信号的频域波形)程序结果如图 4-2 所示。第 12 页0 5 10 15x 105-2-1012 低 低 低 低 低 低 低 低 低 低 低0 5 10 15x 10500.511.52x 104 低 低 低 低 低 低 低 低 低 低 低图 4-2 加噪信号特征4.2 设计 FIR 和 IIR 数字滤波器IIR 滤波器和 FIR 滤波器的设计方法完全不同。IIR 滤波器设计方法有间接法和直接法,间接法是借助于模拟

28、滤波器的设计方法进行的。其设计步骤是:先设计过渡模拟滤波器得到系统函数 H(s),然后将 H(s)按某种方法转换成数字滤波器的系统函数 H(z)。FIR滤波器采用间接法,常用的方法有窗函数法、频率采样发和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用 FIR 滤波器。对于数字带通滤波器的设计,通用方法为双线性变换法。可以借助于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤如下:(1)确定所需类型数字滤波器的技术指标。(2)将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为 =2/T tan(0.5

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

30、技术指标。(3)按照模拟低通滤波器的技术指标设计及过渡模拟低通滤波器。(4)用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。如前所述,IIR 滤波器和 FIR 滤波器的设计方法有很大的区别。下面我们着重介绍用窗函数法设计 FIR 滤波器的步骤。如下:(1)根据对阻带衰减及过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度 N。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。(2)构造希望逼近的频率响应函数。(3)计算 h(n)。(4)加窗得到设计结果。接下来,我们根据语音信号的特点给出低通滤波器

31、的性能指标:fp=1000Hz,fc=1200Hz,As=50db ,Ap=1dB在 MATLAB 中,可以利用函数 fir1 设计 FIR 滤波器,利用函数 butter,cheby1 和 ellip设计 IIR 滤波器,利用 MATLAB 中的函数 freqz 画出各步步器的频率响应。hn=fir1(M,wc,window),可以指定窗函数向量 window。如果缺省 window 参数,则 fir1 默认为哈明窗。其中可选的窗函数有 Rectangular Barlrtt Hamming Hann Blackman窗,其相应的都有实现函数。MATLAB 信号处理工具箱函数 buttp b

32、uttor 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)B,A=cheby1(N,Rp,wpo,ftypr,s)函数 butter,cheby1 和 ellip 设计 IIR 滤波器时都是默认的双线性变换法,所以在

33、设计滤波器时只需要代入相应的实现函数即可。下面我们将给出 FIR 和 IIR 数字滤波器的主要程序。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);第 14 页n11,wn11=buttord(wp,ws,1,50,s); %求低通滤波器的阶数和截止频率b11,a11=butter(n11,wn11,s); %求 S 域的频率响应的参数 num11,den11=bilinear(b11,a11,0.5); %利用双线性变换实现频率响应 S 域到

34、 Z 域的变换 h,w=freqz(num11,den11); %根据参数求出频率响应plot(w*8000*0.5/pi,abs(h);legend(用 butter 设计);grid生成相应图片如图 4-3 所示。0 500 1000 1500 2000 2500 3000 3500 400000.20.40.60.811.21.4低 butter低 低图 4-3 IIR 低通滤波器相应的 IIR 带通滤波器程序见附录 1生成相应图片见图 4-4 所示。第 15 页0 500 1000 1500 2000 2500 3000 3500 400000.511.5低 butter低 低图 4-

35、4 IIR 带通滤波器FIR 低通用窗函数设计低通滤波器的程序:Ft=8000;Fp=1000;Fs=1200;wp=2*Fp/Ft;ws=2*Fs/Ft;rp=1;rs=50;p=1-10.(-rp/20); %通带阻带波纹s=10.(-rs/20);fpts=wp ws;mag=1 0;dev=p s;n21,wn21,beta,ftype=kaiserord(fpts,mag,dev);%由 kaiserord 求滤波器的阶数和截止频率b21=fir1(n21,wn21,Kaiser(n21+1,beta); %由 fir1 设计滤波器h,w=freqz(b21,1); %得到频率响应p

36、lot(w/pi,abs(h);title(FIR 低通滤波器);第 16 页grid;生成相应图片见图 4-5 所示。0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 100.20.40.60.811.21.4 FIR低 低 低 低 低图 4-5 FIR 低通滤波器FIR 带通滤波器程序见附录 2生成相应图片见图 4-6 所示。第 17 页0 500 1000 1500 2000 2500 3000 3500 400000.511.5低 butter低 低图 4-6 FIR 带通滤波器4.3 用滤波器对加噪语音信号进行滤波和分析4.3.1 滤波器滤波用自己设计的各滤

37、波器分别对加噪的语音信号进行滤波,在 MATLAB 中,FIR 滤波器利用函数 fftfilt 对信号进行滤波,IIR 滤波器利用函数 filter 对信号进行滤波。1)双线性变换法:i.低通滤波器z11=filter(num11,den11,s);ii.带通滤波器z12=filter(num12,den12,s);2)窗函数法i.低通滤波器z21=fftfilt(b21,s);ii.带通滤波器z22=fftfilt(b22,s);4.3.2 比较滤波前后语音信号的波形及频谱(1)双线性变换法第 18 页0 5 10 15x 10500.511.52x 104低 低 低 低 低 低 低 低0

38、5 10 15x 10500.511.52x 104低 低 低 低 低 低 低 低 低 低 低 低 低 低 低 低0 5 10 15x 105-2-1012 低 低 低 低 低 低 低 低0 5 10 15x 105-2-1012低 低 低 低 低 低 低 低 低 低 低 低 低 低 低 低图 4-7 双线性变换法低通滤波1)用低通滤波器比较程序:y,fs,nbits=wavread (speech);n = length (y) ; %求出语音信号的长度noise=0.21*randn(n,2); %随机函数产生噪声s=y+noise; %语音信号加入噪声S=fft(s); %傅里叶变换z1

39、1=filter(num11,den11,s);m11=fft(z11); %求滤波后的信号subplot(2,2,1);plot(abs(S),g);title(滤波前信号的频谱);grid;subplot(2,2,2);plot(abs(m11),r);title(双线性变换法低通滤波后信号的频谱);grid;subplot(2,2,3);plot(s);title(滤波前信号的波形);第 19 页grid;subplot(2,2,4);plot(z11);title(双线性变换法低通滤波后的信号波形);grid;生成相应的滤波前后信号特征比较见图 4-7 所示。2)用带通滤波器比较程序见

40、附录 3生成相应的滤波前后信号特征比较见图 4-8 所示。0 5 10 15x 10500.511.52x 104低 低 低 低 低 低 低 低0 5 10 15x 105050010001500低 低 低 低 低 低 低 低 低 低 低 低 低 低 低 低0 5 10 15x 105-2-1012 低 低 低 低 低 低 低 低0 5 10 15x 105-2-1012低 低 低 低 低 低 低 低 低 低 低 低 低 低 低 低图 4-8 双线性变换法带通滤波(2)窗函数法1)用低通滤波器比较程序:y,fs,nbits=wavread (speech);n = length (y) ; %

41、求出语音信号的长度noise=0.21*randn(n,2); %随机函数产生噪声s=y+noise; %语音信号加入噪声 S=fft(s); %傅里叶变换z21=fftfilt(b21,s);m21=fft(z21); %求滤波后的信号subplot(2,2,1);第 20 页plot(abs(S),g);title(滤波前信号的频谱);grid;subplot(2,2,2);plot(abs(m21),r);title(窗函数法低通滤波后信号的频谱);grid;subplot(2,2,3);plot(s);title(滤波前信号的波形);grid;subplot(2,2,4);plot(z

42、21);title(窗函数法低通滤波后的信号波形);grid;生成相应的滤波前后信号特征比较见图 4-9 所示。0 5 10 15x 10500.511.52x 104低 低 低 低 低 低 低 低0 5 10 15x 10500.511.52x 104低 低 低 低 低 低 低 低 低 低 低 低 低 低0 5 10 15x 105-2-1012 低 低 低 低 低 低 低 低0 5 10 15x 105-2-1012低 低 低 低 低 低 低 低 低 低 低 低 低 低图 4-9 窗函数法低通滤波2)用带通滤波器比较程序见附录 4生成相应的滤波前后信号特征比较见图4-10所示。第 21 页

43、0 5 10 15x 10500.511.52x 104低 低 低 低 低 低 低 低0 5 10 15x 10501234x 104低 低 低 低 低 低 低 低 低 低 低 低 低 低0 5 10 15x 105-2-1012 低 低 低 低 低 低 低 低0 5 10 15x 105-4-2024低 低 低 低 低 低 低 低 低 低 低 低 低 低图 4-10 窗函数法带通滤波分析:加入噪声后回放的声音与原始的语音信号有明显的不同,其伴随较尖锐的干扰啸叫声。从含噪语音信号的频谱图中可以看出是含噪的语音信号的频谱,在整个频域范围内分布均匀,这正是干扰所造成的。通过滤波前后的对比,低通滤波

44、后效果最好,带通滤波后的效果相对较差。由此可见,语音信号主要分布在低频,而噪声主要分布在高频。6 结论我感受到只有在了解课本知识的前提下,才能更好的应用这个工具;并且熟练的应用 MATLAB 也可以很好的加深我对课程的理解,为我带来方便。这次设计使我了解了MATLAB 的使用方法,学会分析滤波器的优劣和性能,提高了分析和动手实践能力。同时我相信,进一步加强对 MATLAB 的学习与研究对我今后的学习将会起到很大的帮助。通过这次设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力

45、和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。第 22 页参考文献1黄植功. 基于 MATLAB 的连续信号频谱分析J. 广西物理, 2009, (03) ,36-522刘小群,周云波. 基于 Matlab 的 DFT 及 FFT 频谱分析 J. 山西电子技术, 2010, (04) ,47-583董静薇,于广艳. 基于 Matlab 的 FFT 频谱分析及 IIR 数字滤波器设计J. 软件导刊, 2008, (10) ,36-404赵淑敏.

46、基于 MATLAB 实现对语音信号频谱分析J. 江西通信科技, 2010, (01) ,59-635赵淑敏. 基于 MATLAB 实现对语音信号频谱分析J. 信息通信,2010, (04) ,58-626曾尚璀,沈华,俞振利. 基于 Matlab 系统的信号 FFT 频谱分析与显示J. 科技通报, 2000, (04):103-1107曾秀莲,程保胜,潘雪峰. 连续时间信号频谱分析及 MATLAB 实现J. 中国水运(学术版), 2006, (05) ,93-988杨峰,苏玉萍,余冬菊. 用 MATLAB 模拟实现数字信号的调制与频谱分析J. 电脑学习, 2008, (04) ,77-819王

47、占丽. 频谱分析技术 J. 黑龙江科技信息, 2009, (27),23-2910李媛媛,徐岩,王靖岳. 对 MATLAB 实现数字信号的频谱分析 J. 通信技术, 2008, (01) ,69-7511魏克新. MATLAB 语言与自动控制系统设计. 北京: 机械工业出版社.2002,1-15012高西全,丁玉美数字信号处理第 3 版北京:西安电子科技大学出版社,2008,177-18913刘泉,阙大顺数字信号处理原理北京:电子工业出版社,2005,88-92Based on the MATLAB spectrum analysis and signal denoisingAbstract:

48、Subject is based on MATLAB speech signal processing, the design and implementation of integrated use of digital signal processing theory knowledge of speech signal with noise adding time domain and frequency domain analysis and filtering. Filter design in digital signal processing in occupies an extremely important status, FIR digital filters and filter IIR filter is the important component. MATLAB signal processing toolbox can effectively design of digital filter. Through theoretical derivation correspond

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报