基于matlab的IIR的滤波器设计

合集下载

基于Matlab的IIR数字滤波器设计

基于Matlab的IIR数字滤波器设计

0 . 2 7, Ⅲ 一 0. 4 7,
一 1 相
, 一 2 5 柏
的 是 T一 0 . 0 5 s 。 2 . 2 确 定 数 字 滤 波 器 的 性 能 指 标

换得到 ( 高通 、 带通 、 带 阻) 模 拟 滤 波 器 的 性 能 指 标 转 变 成
模 拟 低 通 滤 波 器 的性 能 指 标 , 因为 只 有模 拟 低 通 滤 波 器 才 有 图 表 资 源 可 以利 用 。
0 引言
常用的数字滤波器主要有两种 , 无 限 长单 位 冲激 响 应
波器 、 椭 圆型 滤 波 器 、 贝塞尔滤 波器等 ) , 设 计 并 查 表 求 得 此模 拟 低 通 滤 波 器 的 系统 函数 。
( 4 ) 利用与步骤 ( 1 ) 和步骤 ( 2 ) 中 的 同一 变 换 规 则 , 将
型 I I R数字滤波器。
关键词 : Ma t l a b ; I I R数 字滤 波 器 ; 设 计
中图 分 类 号 : TP 3 1 9
文献 标 识 码 : A
文章 编 号 : 1 6 7 2 — 7 8 0 0 ( 2 0 1 3 ) 0 0 1 - 0 1 1 0 — 0 4 种 模 拟 滤 波 器 的逼 近 方 法 ( 巴特沃斯 滤波器 、 切 贝 雪 夫 滤
I I R滤 波 器 和 有 限长 单 位 冲 激 响 应 F I R 滤 波 器 。其 中 I I R
数 字 滤 波 器 主 要 有 两 种设 计 方 法 : ①利 用 模 拟 滤 波器 的 设 计 资 源 。先 设 计 一 个 合 适 的 模 拟 滤 波 器 , 然后 变 换 成 满 足
第1 2 卷 第1 期 2 0 l 3 年 1 月

基于MATLAB的IIR滤波器的设计及应用

基于MATLAB的IIR滤波器的设计及应用

基于MATLAB的IIR滤波器的设计及应用IIR滤波器是一种无限脉冲响应滤波器,其设计和应用常常基于MATLAB进行。

在设计IIR滤波器时,首先需要确定滤波器的规格要求,例如带通或带阻滤波器、截止频率以及通带和阻带的最大衰减要求等。

设计IIR滤波器常用的方法有Butterworth、Chebyshev和Elliptic 等。

其中,Butterworth滤波器在通带区具有最平坦的幅频特性,而Chebyshev和Elliptic滤波器在通带和阻带区的幅频特性则更陡峭。

选择滤波器的类型取决于应用的具体需求。

通过MATLAB可以使用“butter”函数设计Butterworth滤波器,使用“cheby1”或“cheby2”函数设计Chebyshev滤波器,使用“ellip”函数设计Elliptic滤波器。

这些函数可以指定滤波器的类型、阶数、截止频率和衰减要求等参数。

设计得到的滤波器系数可以用于滤波器的实施。

IIR滤波器在信号处理领域有广泛的应用。

其中,带通滤波器用于从原始信号中提取感兴趣的频率成分,例如心电图中的QRS波群。

带阻滤波器则用于去除原始信号中的频率成分,例如去除电源线频率的干扰。

此外,IIR滤波器还可用于音频信号处理、图像处理等领域。

MATLAB提供了多种方法来应用IIR滤波器。

可以使用“filter”函数对信号进行滤波处理,其中需指定滤波器的系数和待滤波的信号。

另外,MATLAB还提供了“filtfilt”函数进行无相位滤波,即正向和反向滤波,从而减小滤波器的相应延迟。

总之,基于MATLAB的IIR滤波器设计和应用是信号处理领域的常见任务。

通过选择适当的滤波器类型和参数,可以实现对信号的滤波处理,满足各种应用的需求。

MATLAB提供了丰富的函数和工具,便于设计、实施和应用IIR滤波器。

基于MATLAB的IIR数字滤波器设计

基于MATLAB的IIR数字滤波器设计

2.数字滤波器
• • •


























数字滤波器概念
• 滤波器是指用来对输入信号进行滤波的硬件和软 件。所谓数字滤波器,指输入、输出均为数字信 号,通过一定运算关系改变输入信号所含频率成 分的相对比例或者滤除某些频率成分的器件。
• 优点:数字滤波器精度和稳定性高;系统函数
• 巴特沃斯低通滤波器设计:
巴特沃斯(Butterworth)低通滤波器是将巴特沃斯函数作为滤波器的传
递函数,它的平方幅度函数为:
|
G(
j)
|2

1

1
c
2
N
式中, 为滤波器频率,c 为3dB截止频率,N表示滤波器的阶次。
巴特沃斯滤波器的幅频特性(基于MATLAB实现)
|H(jw)|2
C
N
是 的切比雪夫多项式,它的定义为:
C
N


cosN arccos,| coshNar cosh,
| 1 | | 1
而切比雪夫II型(Chebyshev-II)滤波器平方幅度响应函数为:
| A( j) |2
1
1


2
C
2 N


c
2.IIR滤波器设计及MATLAB实 现
• IIR数字滤波器技术设计最通用的方法是借助于模拟滤波器的设计方 法。滤波器设计最重要的是寻找一个稳定、因果的系统函数去逼近 滤波器的技术指标,因此模拟滤波器的设计十分重要。有三种广泛

基于MATLAB的IIR和FIR滤波器的设计与实现要点

基于MATLAB的IIR和FIR滤波器的设计与实现要点

基于MATLAB的IIR和FIR滤波器的设计与实现要点IIR和FIR滤波器是数字信号处理中常用的滤波器设计方法,它们分别基于无限脉冲响应(IIR)和有限脉冲响应(FIR)的理论基础。

本文将对基于MATLAB的IIR和FIR滤波器的设计与实现要点进行详细的介绍。

1.滤波器设计方法IIR滤波器设计方法主要有两种:基于模拟滤波器的方法和基于离散系统的方法。

前者将模拟滤波器的传递函数转化为离散滤波器的传递函数,常用方法有:脉冲响应不变法、双线性变换法等,MATLAB中提供了相关函数实现这些方法。

后者直接根据滤波器的要求设计离散系统的传递函数,常用方法有:Butterworth、Chebyshev等,MATLAB中也提供了相应的函数实现这些方法。

2.滤波器参数的选择选择合适的滤波器参数是IIR滤波器设计中的关键步骤。

根据滤波器的型号和设定的滤波器规格,主要需要选择的参数包括:滤波器阶数、截止频率、通带和阻带的衰减等。

一般情况下,滤波器阶数越高,滤波器的性能越好,但计算量也会增加,所以需要进行权衡。

3.滤波器实现方法基于MATLAB的IIR滤波器可以通过直接的形式或级联形式实现。

直接形式直接使用传递函数的表达式计算输出样本;级联形式则将传递函数分解为多个较小的子滤波器,逐级计算输出样本,并将各级输出进行累加。

选择哪种形式取决于具体的应用需要和滤波器的阶数。

4.滤波器性能评估设计好IIR滤波器后,需要对其性能进行评估,判断滤波器是否满足要求。

主要评估指标包括:幅频响应、相频响应、群延迟等。

MATLAB提供了多种绘制频域和时域响应曲线的函数,可以用来评估IIR滤波器的性能。

1.滤波器设计方法FIR滤波器设计主要有两种方法:窗函数法和最优化法。

窗函数法是最简单的设计方法,它通过对理想滤波器的频率响应进行窗函数加权来获得滤波器的时域响应,常用的窗函数有:矩形窗、汉宁窗、布莱克曼窗等。

最优化法则通过优化其中一种准则函数,如最小二乘法、Chebyshev等,得到最优的FIR滤波器。

基于Matlab的IIR数字滤波器设计(论文)

基于Matlab的IIR数字滤波器设计(论文)

摘要在现代通信系统中,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的,而数字滤波器是通过数值运算实现滤波,具有处理精度高、稳定、灵活、不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊滤波功能。

数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)数字滤波器和有限长冲激响应(FIR)数字滤波器。

实现IIR滤波器的阶次较低,所用的存储单元较少,效率高,精度高,而且能够保留一些模拟滤波器的优良特性,因此应用很广。

Matlab软件以矩阵运算为基础,把计算、可视化及程序设计有机融合到交互式工作环境中,并且为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。

尤其是Matlab中的信号处理工具箱使各个领域的研究人员可以直观方便地进行科学研究与工程应用。

本文首先介绍了数字滤波器的概念,分类以及设计要求。

接着利用MATLAB函数语言编程,用信号处理图形界面FDATool来设计滤波器以及Sptool界面设计的方法,并用FDATool模拟IIR 数字滤波器处理信号。

重点设计Chebyshev I型和Chebyshev II型数字低通滤波器,并介绍最优化设计。

【关键字】IIR 滤波器FDATool Sptool SimulinkABSTRACTIn modern communication systems,Because often mixed with various signal complex components,So many signal analysis is based on filters, and the digital filter is realized through numerical computation, digital filters filter with high precision, stability and flexibility, don't exist, can realize the impedance matching simulating the special filter cannot achieve filter function. Digital filter according to its impulse response function and characteristics of the time can be divided into two kinds, namely the infinite impulse response (IIR) digital filter and finite impulse response (FIR digital filters). The order of realizing IIR filter is used, low and high efficiency less storage unit, high precision, and can keep some simulation characteristics of filter, so it is widely used. Matlab software based on matrix computation, the calculation, visualization and program design of organic integration to interactive environment for digital filter, and the research and application of provides an intuitive, efficient and convenient tool. Especially in the Matlab signal processing to all areas of research toolbox personnel can easily for scientific research and engineering application. This paper introduces the concept of digital filter, classification and design requirements. Then using MATLAB language programming, with functions of signal processing FDATool graphical interface design of interface design and Sptool filter, and FDATool analog signal processing IIR digital filter. Key design Chebyshev type I and II digital Chebyshev lowpass filter, and introduces optimization design.【Keywords】IIR Filter FDATool Sptool Simulink目录前言 ............................................................. 1第一章数字滤波器 ................................................. 2第一节数字滤波器的概念........................................ 2第二节数字滤波器的分类........................................ 2第三节数字滤波器的设计要求.................................... 4第二章 IIR数字滤波器设计方法...................................... 5第一节 IIR数字滤波器的设计步骤................................. 5第二节用脉冲相应不变法设计IIR数字滤波器...................... 6一、设计原理................................................ 6二、脉冲响应不变法优缺点.................................... 8第三节双线性变换法设计IIR数字滤波器.......................... 9一、设计原理................................................ 9二、双线性变换法优缺点.................................... 11第三章 IIR滤波器的MATLAB设计................................... 13第一节 IIR数字滤波器的典型设计法............................. 14第二节 IIR数字滤波器的直接设计法............................. 18第三节 FDATool介绍和界面设计................................. 23第四节 FDATOOL设计IIR数字滤波器............................. 24第五节 SIMULINK 仿真IIR滤波器............................... 26总结 ........................................................... 29致谢 ........................................................... 30参考文献 ........................................................ 31结束语 .......................................................... 32前言随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。

基于MATLAB的IIR数字滤波器设计与仿真

基于MATLAB的IIR数字滤波器设计与仿真

基于MATLAB的IIR数字滤波器设计与仿真一、概述在现代数字信号处理领域中,数字滤波器扮演着至关重要的角色。

其通过对输入信号的特定频率成分进行增强或抑制,实现对信号的有效处理。

无限脉冲响应(IIR)数字滤波器因其设计灵活、实现简单且性能优良等特点,得到了广泛的应用。

本文旨在基于MATLAB平台,对IIR数字滤波器的设计与仿真进行深入研究,以期为相关领域的研究与应用提供有益的参考。

IIR数字滤波器具有无限长的单位脉冲响应,这使得其在处理信号时能够展现出优秀的性能。

与有限脉冲响应(FIR)滤波器相比,IIR滤波器在实现相同性能时所需的阶数更低,从而减少了计算复杂度和存储空间。

在需要对信号进行高效处理的场合,IIR滤波器具有显著的优势。

MATLAB作为一款功能强大的数学软件,提供了丰富的函数和工具箱,使得数字滤波器的设计与仿真变得简单而高效。

通过MATLAB,我们可以方便地实现IIR滤波器的设计、分析和优化,从而满足不同应用场景的需求。

本文将首先介绍IIR数字滤波器的基本原理和特性,然后详细阐述基于MATLAB的IIR数字滤波器的设计方法和步骤。

接着,我们将通过仿真实验验证所设计滤波器的性能,并对其结果进行分析和讨论。

本文将总结IIR数字滤波器设计与仿真的关键技术和注意事项,为相关领域的研究人员和工程师提供有益的参考和启示。

1. IIR数字滤波器概述IIR(Infinite Impulse Response)数字滤波器是数字信号处理中常用的一类滤波器,它基于差分方程实现信号的滤波处理。

与FIR (Finite Impulse Response)滤波器不同,IIR滤波器具有无限长的单位脉冲响应,这意味着其输出不仅与当前和过去的输入信号有关,还与过去的输出信号有关。

这种特性使得IIR滤波器在实现相同的滤波效果时,通常具有更低的计算复杂度,从而提高了处理效率。

IIR滤波器的设计灵活多样,可以根据不同的需求实现低通、高通、带通和带阻等多种滤波功能。

基于MATLAB的FIR和IIR数字滤波器的设计

基于MATLAB的FIR和IIR数字滤波器的设计

基于MATLAB的FIR和IIR数字滤波器的设计一、本文概述随着数字信号处理技术的飞速发展,数字滤波器作为其中的核心组件,已经广泛应用于通信、音频处理、图像处理、生物医学工程等诸多领域。

在数字滤波器中,有限脉冲响应(FIR)滤波器和无限脉冲响应(IIR)滤波器是最常见的两种类型。

它们各自具有独特的优点和适用场景,因此,对这两种滤波器的深入理解和设计掌握是工程师和研究人员必备的技能。

本文旨在通过MATLAB这一强大的工程计算工具,详细介绍FIR 和IIR数字滤波器的设计原理、实现方法以及对比分析。

我们将简要回顾数字滤波器的基本概念和分类,然后重点阐述FIR和IIR滤波器的设计理论,包括窗函数法、频率采样法、最小均方误差法等多种设计方法。

接下来,我们将通过MATLAB编程实现这些设计方法,并展示如何根据实际应用需求调整滤波器参数以达到最佳性能。

本文还将对FIR和IIR滤波器进行性能对比,分析它们在不同应用场景下的优缺点,并提供一些实用的设计建议。

我们将通过几个典型的应用案例,展示如何在MATLAB中灵活应用FIR和IIR滤波器解决实际问题。

通过阅读本文,读者将能够深入理解FIR和IIR数字滤波器的设计原理和实现方法,掌握MATLAB在数字滤波器设计中的应用技巧,为未来的工程实践和研究工作打下坚实的基础。

二、FIR滤波器设计有限脉冲响应(FIR)滤波器是一种数字滤波器,其特点是其脉冲响应在有限的时间后为零。

因此,FIR滤波器是非递归的,没有反馈路径,从而保证了系统的稳定性。

在设计FIR滤波器时,我们主要关注的是滤波器的阶数、截止频率和窗函数的选择。

在MATLAB中,有多种方法可以用来设计FIR滤波器。

其中,最常用的方法是使用fir1函数,该函数可以设计一个线性相位FIR滤波器。

该函数的基本语法是b = fir1(n, Wn),其中n是滤波器的阶数,Wn是归一化截止频率,以π为单位。

该函数返回一个长度为n+1的滤波器系数向量b。

基于matlab的IIR数字滤波器设计(doc 19页)

基于matlab的IIR数字滤波器设计(doc 19页)

在MATLAB 中,模拟滤波器的系统函数 H(S)=)()()1()((.....)2()1()1()(......)2()1(11S A S B N A S N A S A S A M B S M B S B S B N N M M =++++++++++--数字滤波器的系统函数 H(Z)=)()()1()(.....)2()1()1()(.....)2()1()1(1)1(1Z A Z B Z N A Z N A Z A A Z M B Z M B Z B B N N M M =++++++++++--------在实际工程中,需要的设计结果是系数向量B 和A ,用B 和A 来综合滤波器的硬件实现结构或软件运算结构,为了直观的看出设计结果,本文的实例均以滤波器幅频响应曲线作为设计结果输出。

如果需要滤波器系数,在运行程序后,只要在MATLAB 命令窗口键入系数向量名,则相应的系数就显示出来了。

2.1.2.程序设计实例分析(a )设计高通和带通Butterworth 数字滤波器我们给出四阶归一化 Butterworth 模拟滤波器的系统函数16131.24142.36131.21)(234++++=S S S S S H用双线性变换法从Ha (s )设计四阶带通butterworth数字滤波器)(Z H BP ,并图示|)(jw BP e H |,设计采样周期T=1s ,指标如下 ππ65.0,35.01==uc c w w现在我们分步进行:■建模由于本例主要涉及三个问题:(1) 由数字滤波器指标求相应的模拟滤波器指标;(2) 模拟滤波器频率变换(因为已给定阶数和模拟滤波器的归一化低通原型);(3) 由相应的模拟滤波器到数字滤波器(双线性变换法)。

由于调用bilinear 函数将模拟滤波器转换成数字滤波器非常容易,并且有效抑制频率失真的问题,本例给定了数字滤波器指标,所以首先要设计处与该指标相应的四阶Butterworth 模拟滤波器,然后调用bilinear 函数将其转换为数字滤波器即可,应当特别注意的是,对于双线性变换法,由数字边界频率求相应的模拟边界频率时,一定要考虑预畸变矫正。

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

《数字信号处理》课程设计报告专业:班级:学号:姓名:指导教师:二0一二年六月十四日目录一:课程设计目的 (4)二:课程设计的题目描述和要求 (4)1:设计题目的描述 (4)2:课程设计描述 (4)3:课程设计要求 (4)三:课程设计报告内容 (5)1:总体设计 (5)1.1:采集语音信号 (5)1.2:声音信号的时域和频域分析 (5)1.3:设计一个余弦噪声,并产生噪声的时域和频域图,并分析 (5)1.4:对声音信号加噪声 (6)1.5:设计B——F低通滤波器,并对其进行频谱分析 (6)1.6:对加噪声的信号滤波,并回放,并分析频谱 (7)2:软件仿真调试结果分析 (7)2.1:运行语音信号程序 (8)2.2:运行噪声信号 (8)2.3:运行加噪声后的语音信号 (9)2.4运行滤波器程序 (10)2.5:滤波后的语音信号 (11)四:设计总结 (12)源程序代码: (13)一:课程设计目的1:通过对课程设计任务的完成,进一步巩固数字信号处理的基本概念、理论、分析方法和实现方法;2:进一步扩展我们掌握的基本理论和分析方法方面的知识,能有效地将理论和实际紧密结合;3:同时增强自己的软件编程实现能力和解决实际问题的能力。

4:练习能够熟练地用Matlab语言编程实现IIR数字滤波器和FIR数字滤波器,进一步明确数字信号处理的工程应用。

二:课程设计的题目描述和要求1:设计题目的描述基于matlab的IIR的Butterworth滤波器设计目标:(1)语音采集(2)设计滤波器,将采集的语音信号进行IIR滤波.(3)回放语音信号2:课程设计描述要求录制一段自己的语音信号后,格式为WAV。

在MATLAB软件中采集语音信号、回放语音信号。

画出语音信号的时域波形和频谱图,对所采集的信号加入干扰噪声,要求噪声在3000Hz以上,对加入噪声进行播放,并进行时域和频谱分析,对比加噪声前后的时域图和频谱图,对比加噪声音信号和通过低通滤波器处理的音频信号不同的时域和频域波形。

3:课程设计要求通过本次课程设计加深我对所学知识的理解和认识。

并通过的实验来验证仿真自己的理解。

理解了总体滤波器的设计。

运用matlab观察信号的处理操作过程。

在加深自己matlab动手实验能力的同时,独立运用自己的数字信号处理知识来处理音频信号。

通过本次课程设计基本掌握matlab软件的编程方法。

并进行相应的拓展。

练习matlab GUI的编写,通过按钮来调用程序,进行操作。

三:课程设计报告内容1:总体设计1.1:采集语音信号通过录音机,录一段自己的声音,存名为xx.wav保存到桌面上1.2:声音信号的时域和频域分析通过wavread函数读取录制的声音文件,进行FFT转换。

显示其时域和频域的波形1.3:设计一个余弦噪声,并产生噪声的时域和频域图,并分析1.4:对声音信号加噪声对声音信号加一个频率在3000Hz以上的余弦信号,然后对加噪声以后的信号进行时域和频域分析1.5:设计B——F低通滤波器,并对其进行频谱分析1.6:对加噪声的信号滤波,并回放,并分析频谱2:软件仿真调试结果分析2.1:运行语音信号程序结果分析:观察上图可以看到,在采集的原始信号进行付氏变换后所得的频域波形就是原语音信号的频谱。

2.2:运行噪声信号结果分析:可以看到噪声的频谱是对称的冲击2.3:运行加噪声后的语音信号结果分析:观察上图可以看见加噪的音频时域频域波形均出现了很大的变化,通过MATLAB软件所播放的加噪声音也是相应的出现了很大的噪声。

加噪程序成功。

2.4:运行滤波器程序结果分析:观察上图可以清晰的看到器幅频特性为低通滤波器,还可以分析上图得我们所设置的采样频率、通带截止频率、阻带截止频率和阶数。

2.5:滤波后的语音信号结果分析:通过观察两个不同信号的频谱我们可以清晰的看到在截止频率周围器频谱的变化。

因为是IIR滤波器的缘故,其频谱是相应周期延托。

故而低通滤波器处理信号结果是如同上右下图的。

试验成功。

四:设计总结通过这次数字信号处理的课程设计,我懂得了理论与实际相结合的重要性,从理论中得出结论,从实践中提高自己。

才能真正的锻炼自己,虽然这次的课程设计经历了半个月,但是我还是学会了很多很多的东西,在巩固以前所学过的知识同时,而且学到了很多在书本上所没有学到过的知识。

通过这次设计,进一步加深了真正培养了自己的独立思考能力与动手能力。

这次试验也让我认识到了自身的很多不足。

其一就是对于数字信号处理课程知识的不透彻,让我在一些基础东西的处理上显得不是很游刃有余。

特别是在编写程序时,发现自己还是有很大的提升空间的。

实验虽然结束了,但我们学习还在继续。

我将更加努力。

虽然也受了很多的挫折,不过也正是这些的挫折让我收获了更多,不只是信心的提升。

同样强化了我以后面对挫折的不懈心态。

这次课程设计收获很多。

源程序代码:原始语音信号[y,fs,nbits]=wavread ('C:\Users\Administrator\Desktop\qjs.wav');%读取语音信号的数据,赋给变量ysound(y,fs,nbits); %播放语音信号N=length (y) ; %计算采样点的长度Y=fft(y,N); %fft变换subplot(2,1,1);plot(y);title('原始信号波形');xlabel('时间\n');ylabel('幅值');subplot(2,1,2);plot(abs(Y));title('原始信号频谱');xlabel('频率\Hz');ylabel('幅值');噪声信号[y,fs,nbits]=wavread ('C:\Users\Administrator\Desktop\qjs.wav');%读取语音信号的数据,赋给变量yN=length (y) ; %计算采样点的长度t=0:1/44100:(size(y)-1)/44100; %将所加噪声信号的点数调整到与原始信号相同Au=0.08d=[Au*cos(2*pi*3500*t)]; %噪声为3.5kHz的余弦信号y1=d';%将噪声进行转置,以便使噪声与信号的行列相同,进行相加sound(y1,fs,nbits);Y1=fft(d,3800); %fft变换subplot(2,1,1);plot(d);title('噪声的波形');subplot(2,1,2);plot(abs(Y1));title('噪声的频谱');加噪声之后的语音信号[y,fs,nbits]=wavread ('C:\Users\Administrator\Desktop\qjs.wav');%读取语音信号的数据,赋给变量y%sound(y,fs,nbits); %播放语音信号N= length (y) ; %计算采样点的长度Y=fft(y,N); %fft变换subplot(2,2,1);plot(y);title('原始信号波形');subplot(2,2,2);plot(abs(Y));title('原始信号频谱');t=0:1/44100:(size(y)-1)/44100; %将所加噪声信号的点数调整到与原始信号相同Au=0.08d=[Au*cos(2*pi*3500*t)]; %噪声为3.5 kHz的余弦信号y1=d';%将噪声进行转置,以便使噪声与信号的行列相同,进行相加x1=y+y1;sound(x1,fs,nbits);subplot(2,2,3);plot(x1);title('加噪语音信号的时域波形');S=fft(x1); %傅里叶变换subplot(2,2,4);plot(abs(S)); title('加噪语音信号的频域波形');滤波器的程序wp=0.08*pi;ws=0.1*pi;%滤波器的指标Rp=1;%通带内的最大衰减Rs=15;%阻带内的最小衰减Fs=44100;Ts=1/Fs;wp1=2/Ts*tan(wp/2); %将数字指标转换成模拟指标ws1=2/Ts*tan(ws/2);[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');%选择滤波器的最小阶数[Z,P,K]=buttap(N); %创建butterworth模拟滤波器[Bap,Aap]=zp2tf(Z,P,K);[b,a]=lp2lp(Bap,Aap,Wn); %低通到低通[bz,az]=bilinear(b,a,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换[H,W]=freqz(bz,az); %绘制频率响应曲线figure(1)plot(W*Fs/(2*pi),abs(H))grid;%网格xlabel('频率/Hz');ylabel('频率响应幅度')title('Butterworth');滤波的程序[y,fs,nbits]=wavread ('C:\Users\Administrator\Desktop\qjs.wav');%读取语音信号的数据,赋给变量yN=length (y) ; %计算采样点的长度t=0:1/44100:(size(y)-1)/44100; %将所加噪声信号的点数调整到与原始信号相同Au=0.08d=[Au*cos(2*pi*3500*t)]; %噪声为3.5 kHz的余弦信号y1=d';%将噪声进行转置,以便使噪声与信号的行列相同,进行相加x1=y+y1;wp=0.08*pi;ws=0.1*pi;Rp=1;Rs=15;Fs=44100;Ts=1/Fs;wp1=2/Ts*tan(wp/2); %将数字指标转换成模拟指标ws1=2/Ts*tan(ws/2);[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s');%选择滤波器的最小阶数[Z,P,K]=buttap(N); %创建butterworth模拟滤波器[Bap,Aap]=zp2tf(Z,P,K);[b,a]=lp2lp(Bap,Aap,Wn);[bz,az]=bilinear(b,a,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换[H,W]=freqz(bz,az); %绘制频率响应曲线subplot(2,3,1)plot(W*Fs/(2*pi),abs(H))gridxlabel('频率/Hz')ylabel('频率响应幅度')title('Butterworth')f1=filter(bz,az,x1);sound(f1,fs,nbits);subplot(2,3,2)plot(t,x1) %画出滤波前的时域图title('滤波前的时域波形');subplot(2,3,3)plot(t,f1); %画出滤波后的时域图title('滤波后的时域波形');f=fs*(0:511)/2048;y2=fft(x1,2048);subplot(2,3,4);plot(f,abs(y2(1:512))); %画出滤波前的频谱图title('滤波前的频谱')xlabel('频率/Hz');ylabel('幅值i');F0=fft(f1,2048);subplot(2,3,5)F1=plot(f,abs(F0(1:512))); %画出滤波后的频谱图title('滤波后的频谱')xlabel('频率/Hz');ylabel(' 幅值');。

相关文档
最新文档