基于MATLAB的数字滤波器设计(DOC)

合集下载

基于matlab的数字滤波器设计

基于matlab的数字滤波器设计

基于matlab的数字滤波器设计一.概述本文重点介绍MATLAB 中用于数字滤波器设计的函数组。

MATLAB具备设计高性能滤波器的众多工具(toolbox),包括数字滤波器设计工具箱(Digital Filter Design T oolbox)、滤波系统仿真工具箱(Filter Design and Analysis Toolbox )以及信号处理工具箱(Signal Processing Toolbox),可以设计数字滤波器的结构和参数,并实现Advanced Digital Filter Design。

二.数字滤波器介绍数字滤波器,也称计算滤波器,是指利用现代计算机中的数字回授技术来进行信号处理的方法,是对计算机处理信号的一种技术。

数字滤波器是模拟滤波器组成的数字信号处理系统,是将模拟的通全在一个硬件上实现的数字信号处理系统,它的功能比模拟滤波器更加强大。

目前它们已经应用于通信、声音、镜头、图像处理、仪器仪表、数据采集等领域。

三.MATLAB 中的滤波器设计(1)首先,MATLAB中提供了丰富的函数来实现滤波器设计工作。

其中最常用的函数有:a. firpm:有限冲激响应滤波器设计,支持线性和非线性过滤器设计。

b. butter:Butterworth低通和高通滤波器设计。

c. fir1:有限冲激响应低通和高通滤波器设计。

d. cheby1:Chebyshev第一类低通和高通滤波器设计。

(2) MATLAB还可以实现进阶的数字滤波器设计,用户可以用以下函数实现自动设计是否优化的滤波器:a. fda:设计优化低通滤波器b. fda2:设计优化定带滤波器c. fda3:设计优化双带和多带滤波器d. gfd:设计优化频谱均衡滤波器四.总结数字滤波器是一种应用广泛的信号处理技术,对于一些信号处理应用有着至关重要的作用。

MATLAB 可以简便的实现滤波器设计,并可以同时考虑多个优化目标,这些特性使其成为进行数字滤波器设计的理想工具。

基于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的数字滤波器设计

基于MATLAB的数字滤波器设计

基于matlab的数字滤波器设计摘要:本文介绍的是数字滤波器在MATLAB环境下的设计方法。

数字滤波是数字信号处理的重要内容,在实际应用中有非常大的作用。

我们研究的数字滤波器可分为IIR和FIR两大类。

对于IIR数字滤波器的设计,我们需要借助模拟原型滤波器,然后再将模拟滤波器转化为数字滤波器,文中采用的设计方法是脉冲响应不变法、双向性变换法和完全函数设计法;对于FIR数字滤波器的设计,可以根据所给定的频率特性直接设计,文中采用的设计方法是窗函数法。

根据IIR 滤波器和FIR滤波器的特点,本文在MATLAB坏境下分别用双线性变换法设计IIR和用窗函数设计FIR数字滤波器,并让这两种滤波器对采集的语音信号进行分析和比较,经过分析,最后给出了IIR和FIR对语音滤波的效果,并总结这两种滤波器在MATLAB环境下设计方法的优缺点。

关键词:数字滤波器;IIR ;FIR ;MATLABThe Design of Digital Filter based on MATLAB Abstract:This article describes a digital filter in the MATLAB environment design. Digital filtering is an important part of digital signal processing which is playing a very big role in practice .The digital filter we studied can be divided into two categories——IIR and FIR. For the IIR digital filter design, we will need the help of simulation prototype filter, analog filters and then converted it into digital filter For the IIR digital filter design .The design methods used in the text is the same impulse response method, bi-sexual transformation and full function design ;We can based on the frequency characteristics of the given direct design, design method used in the text is the window function for FIR digital filter design. Based on the characteristics of IIR filter and FIR filters ,the bad paper in the MATLAB environment under the bilinear transformation method were used to design IIR and FIR with window function digital filter design and filters to capture both the voice signal analysis and compare. Through analysis of IIR and FIR Finally, the effect of filtering on the speech, and concluded the advantages and disadvantages in the two filter design methods in the MATLAB environment.Key words: Digital Filter ;IIR;FIR;MATLAB目录1引言 (1)2数字滤波器及MATLAB语言概述 (2)2.1数字滤波器的定义和分类 (2)2.2常用滤波器的性能指标 (3)2.3 MATLAB概述 (5)3IIR滤波器设计 (8)3.1双线性变换法设计IIR数字滤波器 (8)3.2脉冲响应不变法 (12)3.3完全设计函数法 (15)3.4语音滤波实例 (16)4 FIR滤波器设计 (21)4.1 窗函数法 (21)4.1.1用窗函数设计FIR数字滤波器的基本方法 (21)4.2 FIR滤波器滤波实例 (26)5总结 (30)[参考文献] (31)致谢 (32)1引言数字滤波在通信、图像编码、语音编码、雷达等许多领域中有着十分广泛的应用。

基于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的fir数字滤波器的设计

基于matlab的fir数字滤波器的设计

一、引言数字滤波器是数字信号处理中至关重要的组成部分,它能够对数字信号进行滤波处理,去除噪音和干扰,提取信号中的有效信息。

其中,fir数字滤波器作为一种常见的数字滤波器类型,具有稳定性强、相位响应线性等特点,在数字信号处理领域得到了广泛的应用。

本文将基于matlab软件,探讨fir数字滤波器的设计原理、方法和实现过程,以期能够全面、系统地了解fir数字滤波器的设计流程。

二、fir数字滤波器的基本原理fir数字滤波器是一种有限长冲激响应(finite impulse response, FIR)的数字滤波器,其基本原理是利用线性相位特性的滤波器来实现对数字信号的筛选和处理。

fir数字滤波器的表达式为:$$y(n) = \sum_{k=0}^{M}h(k)x(n-k)$$其中,y(n)为输出信号,x(n)为输入信号,h(k)为滤波器的系数,M为滤波器的长度。

fir数字滤波器的频率响应特性由其系数h(k)决定,通过设计合适的系数,可以实现对不同频率成分的滤波效果。

三、fir数字滤波器的设计方法fir数字滤波器的设计方法主要包括窗函数法、频率抽样法、最小最大法等。

在matlab中,可以通过信号处理工具箱提供的fir1函数和firls函数等来实现fir数字滤波器的设计。

下面将分别介绍这两种设计方法的基本原理及实现步骤。

1. 窗函数法窗函数法是fir数字滤波器设计中最为常见的方法之一,其基本原理是通过对理想滤波器的频率响应进行窗函数加权来满足设计要求。

在matlab中,可以使用fir1函数实现fir数字滤波器的设计,其调用格式为:h = fir1(N, Wn, type)其中,N为滤波器的阶数,Wn为滤波器的截止频率,type为窗函数的类型。

通过调用fir1函数,可以灵活地设计出满足特定要求的fir数字滤波器。

2. 频率抽样法频率抽样法是fir数字滤波器设计中的另一种重要方法,其基本原理是在频域上对理想滤波器的频率响应进行抽样,并拟合出一个最优的滤波器。

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

基于Matlab的数字滤波器的设计
滤波器 。 打 开 Malb 新 建 一 个 md 文 件 , 向 其 中 添 t , a l 并
1 数 字 滤 波 器 的设 计
数 字滤 波器根 据其 冲激 响应 的时域 特征可 分为 2种 : 限 长 冲激 响 应滤 波 器 和有 限长 冲激 响应 滤 无 波器 。本 文将 以 F R 为例 来 说 明 F Ato 带 来 的 I D ol 极大便 利 。
制 约 了 数 字 滤 波 器 的 发 展 。 本 文 介 绍 了 一 种 利 用
() 1
很 明显 , 这是 一个乘 累加 的 函数 , 只要知道 了这
个 滤 波 器 的 系 数 b, 滤 波 器 的 实 现 就 只 剩 下 进 行 那 乘 法和 加法计 算 了 。 设计 一个 简单 的低通 滤 波器 , 性能 指标 为 : 其 采
摘要 : 数字滤波器的优越性使得其应用领域不断拓展 , 是其 复杂 的设计过程却在一定程度上制约 了它的发展。介 但
绍 了一 种 基 于 Mal t b的 F Ato 设 计 数 字 滤 波 器 的 新 方 法 , 利 用 Smu i a D ol 并 i l k对 设 计 好 的 滤 波 器 进 行 仿 真 , 后 利 n 最
用 一个 硬件 系统 进 行 验 证 。结 果 表 明 , 种 方 法 设 计 的滤 波 器 方 便 、 这 准确 、 靠 。 可
关键 词 : 数字滤波器 ; 真; 证 仿 验
中 图 分 类 号 : N 1. T 737
文 献 标 识 码 : B
文 章 编 号 : N 21 (01O一16 2 C 3—H321)l 1— 0 0
F R数 字 滤 波 器 的 特 点 是 滤 波 器 的 输 出 值 I u KT) ( 与输 出 的过 去 值 U K丁~是 无 关 , 表 达 ( 丁) 其

基于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。

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

目录1 引言 (1)2 设计任务 (2)2.1设计内容 (2)2.2设计要求 (2)3 语音信号的采集及时频分析 (3)3.1语音信号的采集 (3)3.2语音信号的时频分析 (3)4 基于MATLAB的数字滤波器的设计 (5)4.1数字滤波器的设计 (5)4.1.1数字滤波器的基本概念 (5)4.1.2 IIR滤波器设计思想 (5)4.2IIR数字滤波器设计 (5)4.2.1 IIR低通滤波器设计 (5)4.2.2 IIR带通滤波器设计 (7)4.2.3 IIR带通滤波器设计 (9)5 合成信号及其滤波 (12)5.1合成信号 (12)5.2合成信号滤波 (13)6 设计系统界面 (15)6.1系统界面设计工具—GUI概述 (15)6.2界面设计及使用说明 (15)7 心得体会 (18)参考文献 (19)附录 (20)1 引言数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。

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

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

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

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

数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。

数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应( FIR,Finite Impulse Response)滤波器和无限冲激响应( IIR,Infinite Impulse Response)滤波器。

IIR滤波器采用递归型结构,即结构上带有反馈环路。

IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。

同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。

MATALB 可以创建图形用户界面GUI (GraphicalUser Interface) ,它是用户和计算机之间交流的工具。

MATLAB 将所有GUl 支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。

而且具有强大的绘图功能,可以轻松的获得更高质量的曲线图。

滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。

随着MATLAB软件及信号处理工具箱的不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件。

它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设计的最优化。

2 设计任务2.1设计内容设计题目为基于MATLAB的数字滤波器设计所设计的数字滤波器应完成以下功能:1.设计低通、带通、高通数字滤波器;2.可以对合成信号(含低频、中频、高频分量)、语音信号进行滤波;3.通过GUI界面进行控制。

2.2设计要求1.根据题目要求进行数字滤波器总体设计。

2.完成数字滤波器具体设计。

(1)输入信号的选定。

(2)确定设计方法、设计指标。

3.滤波器程序的设计。

(1)完整源程序。

(2)运行结果图。

4.书写设计说明书。

3 语音信号的采集及时频分析3.1语音信号的采集利用PC 机上的声卡和WINDOWS 操作系统可以进行数字信号的采集。

将话筒输入计算机的语音输入插口上,启动录音机。

按下录音按钮,接着对话筒说话“语音信号处理”,说完后停止录音,屏幕左侧将显示所录声音的长度。

点击放音按钮,可以实现所录音的重现。

以文件名“ppp”保存入F :\ MATLAB \ work 中。

可以看到,文件存储器的后缀默认为. wav ,这是WINDOWS 操作系统规定的声音文件存的标准。

3.2语音信号的时频分析利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。

再对其进行采样,记住采样频率和采样点数。

下面介绍Wavread 函数几种调用格式。

1.y=wavread(file)功能说明:读取file所规定的wav文件,返回采样值放在向量y中。

2.[y,fs,nbits]=wavread(file)功能说明:采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。

3.y=wavread(file,N)功能说明:读取钱N点的采样值放在向量y中。

4.y=wavread(file,[N1,N2])功能说明:读取从N1到N2点的采样值放在向量y中。

接下来,对语音信号OriSound.wav进行采样。

其程序如下:>> [y,fs,nbits]=wavered (‘OriSound’); %把语音信号加载入Matlab 仿真软件平台中然后,画出语音信号的时域波形,再对语音信号进行频谱分析。

MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下:Xk=fft(xn,N)参数xn为被变换的时域序列向量,N是DFT变换区间长度,当N大于xn的长度时,fft函数自动在xn后面补零;当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。

在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。

其程序如下:[y,fs,nbits]=wavread ('F:\ppp.wav ');sound(y,fs,nbits);N= length (y) ;Y=fft(y,N);axes(handles.axes1);plot(abs(Y));title('原始信号频谱');程序结果如下图:图 3.1 语言信号波形及频谱4 基于MATLAB的数字滤波器的设计4.1数字滤波器的设计4.1.1数字滤波器的基本概念滤波器从功能上分类可以分为经典滤波器和现代滤波器,经典滤波器主要用于在频率域的滤波选取,现代滤波器是通过复杂的统计学理论,用于在大量的同频率信号中选取需要的信号数据,数字滤波器从实现方法上可以分为无限冲击响应滤波器和有限冲击响应滤波器。

它们是用单位采样响应h(n)的特性来区分的,IIR滤波器的h(n)是无限长序列,而FIR滤波器的h(n)是有限长序列。

4.1.2 IIR滤波器设计思想IIR滤波器设计思想是:利用已有的模拟滤波器设计理论,首先根据设计指标设计一个合适的模拟滤波器,然后再通过脉冲响应不变法或双线性变换法,完成从模拟到数字的变换。

常用的模拟滤波器有巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev) 滤波器、椭圆(Ellipse)滤波器、贝塞尔(Bessel)滤波器等,这些滤波器各有特点,供不同设计要求选用。

滤波器的模拟数字变换,通常是复变函数的映射变换,也必须满足一定的要求。

利用双线性变化法设计滤波器的变换原理:双线性变换法是使数字滤波器的频率响应与模拟滤波器的频率响应相似的一种变换方法。

为了克服脉冲响应不变法的多值映射这一缺点,首先把整个s平面压缩变换到某一中介的s1平面的一横带里,然后再通过标准变换关系将此横带变换到整个z平面上去,这样就使s平面与z平面是一一对应关系,消除了多值变换性,同时也就消除了频谱混叠现象。

利用完全设计法设计数字滤波器的步骤:1.将设计指标归一化处理。

2.根据归一化频率,确定最小阶数N 和频率参数Wn。

可供选用的阶数选择函数有:buttord,cheblord,cheb2ord,ellipord 等。

3.运用最小阶数N 设计模拟低通滤波器原型。

根据最小阶数直接设计模拟低通滤波器原型,用到的函数有:butter, chebyl,cheby2, ellip 和bessel。

如[B,A] = butter(N,Wn,'type') 设计'type'型巴特沃斯(Butterworth)滤波器filter。

N为滤波器阶数,Wc为截止频率,type 决定滤波器类型,type= high,设计高通IIR滤波器,ftype= stop,设计带阻IIR滤波器。

4.再用freqz 函数验证设计结果。

4.2 IIR数字滤波器设计4.2.1 IIR低通滤波器设计根据数字滤波器的设计原理,首先将数字域的指标转化为模拟域的指标设计模拟低通滤波器,然后应用双线性变换法将模拟滤波器转化为数字滤波器将指标转换成归一化模拟低通滤波器的指标,通过归一化的模拟低通滤波器阶数N和3dB截止频率的计算,将模拟域频率变换成模拟低滤波器H(s),并用双线性变换法将H(s)转换成数字低通滤波器H(z),由此得到低通数字滤波器。

IIR低通滤波器的设计程序为:Ft=8000;Fp=1000;Fs=1200;As=100 ;Ap=1;wp=2*pi*Fp/Ft;ws=2*pi*Fs/Ft;fp=2*Fp*tan(wp/2);fs=2*Fs*tan(ws/2);[n11,wn11]=buttord(wp,ws,1,50,'s');[b11,a11]=butter(n11,wn11,'s');[num11,den11]=bilinear(b11,a11,0.5);[h,w]=freqz(num11,den11);axes(handles.axes1);plot(w*8000*0.5/pi,abs(h));legend('用butter设计');图 4.1 IIR低通滤波器读入信号对信号傅里叶变换进行频谱分析,利用filter函数滤波,对得到的信号傅里叶变换进行频谱分析,与滤波前进行比较。

并在滤波前后用sound函数播放语音信号,观察滤波前后的变化。

图 4.2 滤波前后信号的波形和频谱比较分析滤波前后信号的变化,波形图变窄,频谱变化表明:信号的低频率段被保留,高频率段被滤除。

分析滤波前后的声音变化,滤波后声音明显变低而沉闷,这说明滤波器设计基本符合指标要求。

4.2.2 IIR带通滤波器设计IIR带通滤波器的设计程序为:Ft=8000;Fp1=1200;Fp2=3000;Fs1=1000;Fs2=3200;As=100;Ap=1;wp1=tan(pi*Fp1/Ft);wp2=tan(pi*Fp2/Ft);ws1=tan(pi*Fs1/Ft);ws2=tan(pi*Fs2/Ft);w=wp1*wp2/ws2;bw=wp2-wp1;wp=1;ws=(wp1*wp2-w.^2)/(bw*w);[n12,wn12]=buttord(wp,ws,1,50,'s');[b12,a12]=butter(n12,wn12,'s');[num2,den2]=lp2bp(b12,a12,sqrt(wp1*wp2),bw);[num12,den12]=bilinear(num2,den2,0.5);[h,w]=freqz(num12,den12);axes(handles.axes1);plot(w*8000*0.5/pi,abs(h));axis([0 4000 0 1.5]);legend('用butter设计');图 4.3 IIR带通滤波器读入信号对信号傅里叶变换进行频谱分析,利用filter函数滤波,对得到的信号傅里叶变换进行频谱分析,与滤波前进行比较。

相关文档
最新文档