matlab滤波器设计

合集下载

使用MATLAB进行数字滤波器设计的步骤与方法

使用MATLAB进行数字滤波器设计的步骤与方法

使用MATLAB进行数字滤波器设计的步骤与方法数字滤波器是用于信号处理的重要工具,它可以对信号进行去噪、频率调整等操作。

而MATLAB作为一种强大的数学计算软件,提供了丰富的数字信号处理工具箱,可以方便地进行数字滤波器的设计与仿真。

本文将介绍使用MATLAB进行数字滤波器设计的步骤与方法。

1. 了解数字滤波器的基本原理在进行数字滤波器设计之前,首先需要了解数字滤波器的基本原理。

数字滤波器根据其频率响应特性可以分为低通、高通、带通和带阻滤波器等。

此外,数字滤波器的设计还需要考虑滤波器的阶数、截止频率以及滤波器类型等因素。

在设计中,我们可以选择滤波器的类型和相应的参考模型,然后利用MATLAB工具箱提供的函数进行设计。

2. 导入MATLAB中的数字信号处理工具箱使用MATLAB进行数字滤波器设计需要先导入数字信号处理工具箱。

通过在MATLAB命令窗口输入`>> toolbox`即可打开工具箱窗口,并可以选择数字信号处理工具箱进行加载。

加载完成后,就可以调用其中的函数进行数字滤波器设计。

3. 设计数字滤波器在MATLAB中,常用的数字滤波器设计函数有`fir1`、`fir2`、`iirnotch`等。

这些函数可以根据系统特性需求设计相应的数字滤波器。

以FIR滤波器为例,可以使用`fir1`函数进行设计。

该函数需要输入滤波器的阶数和截止频率等参数,输出设计好的滤波器系数。

4. 评估滤波器性能设计好数字滤波器后,需要进行性能评估。

可以使用MATLAB提供的`fvtool`函数绘制滤波器的幅频响应、相频响应和群延迟等。

通过观察滤波器在频域的性能表现,可以判断设计的滤波器是否满足要求。

5. 对滤波器进行仿真在对滤波器性能进行评估之后,还可以使用MATLAB进行滤波器的仿真。

通过将需要滤波的信号输入设计好的滤波器中,观察输出信号的变化,可以验证滤波器的去噪效果和频率调整能力。

MATLAB提供了函数`filter`用于对信号进行滤波处理。

基于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技术滤波器设计工具

Matlab技术滤波器设计工具

Matlab技术滤波器设计工具概述:滤波器是信号处理中常用的工具,用于去除信号中的噪声或改变信号的频率响应。

Matlab是一个强大的数学工具,提供了丰富的滤波器设计函数和工具,使得滤波器设计变得简单易用。

本文将介绍Matlab中常用的滤波器设计函数和工具,帮助读者了解如何利用Matlab来设计不同类型的滤波器。

I. 常用滤波器设计函数Matlab提供了多个函数用于滤波器设计,包括FIR滤波器和IIR滤波器。

1. FIR滤波器设计函数FIR(Finite Impulse Response)滤波器是一种常见的线性相位滤波器,其特点是无反馈,具有线性相位和稳定的响应。

Matlab中常用的FIR滤波器设计函数包括fir1、fir2、firpm等。

- fir1函数可以设计标准的低通、高通、带通和带阻滤波器,可以指定截止频率、滤波器类型和滤波器阶数。

- fir2函数可以设计任意的线性相位FIR滤波器,可以指定滤波器的频率响应和频率区间。

- firpm函数可以设计最小最大化滤波器,可以指定滤波器的通带、阻带特性和响应类型。

2. IIR滤波器设计函数IIR(Infinite Impulse Response)滤波器是一种常见的递归滤波器,其特点是具有反馈,可以实现更高阶和更复杂的滤波器。

Matlab中常用的IIR滤波器设计函数包括butter、cheby1、cheby2、ellip等。

- butter函数可以设计巴特沃斯滤波器,可以指定滤波器的阶数和截止频率。

- cheby1和cheby2函数可以设计Chebyshev滤波器,可以指定滤波器的阶数、通带/阻带最大衰减和截止频率。

- ellip函数可以设计椭圆滤波器,可以指定滤波器的阶数、通带/阻带最大衰减和截止频率。

II. 滤波器设计工具除了上述的滤波器设计函数外,Matlab还提供了几个可视化的滤波器设计工具,方便用户通过图形界面进行滤波器设计。

1. FDA工具箱Matlab中的FDA工具箱(Filter Design and Analysis)是一个图形界面工具,用于设计、分析和实现各种滤波器。

Matlab滤波器设计

Matlab滤波器设计

Matlab滤波器设计滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程。

滤波器的实现包括滤波器结构的选择和滤波器参数的计算。

只有完成了滤波器的设计和实现,才能最终完成数据的滤波。

滤波器设计的目标是实现数据序列的频率成分变更。

严格的设计规格需要指定通带波纹数、阻带衰减、过渡带宽度等。

更准确的指定可能需要实现最小阶数的滤波器、需要实现任意形状的滤波器形状或者需要用fir滤波器实现。

指定的要求不同,滤波器的设计也不同。

Matlab的信号处理工具箱软件提供了两种方式设计滤波器:面向对象的和非面向对象的。

面向对象的方法首先创建一个滤波器对象fdesign,然后调用合适的design参数设计。

如实现一个5阶的低通巴特沃斯滤波器,3dB截止频率为200Hz,采样频率1000Hz,代码如下Fs=1000; %Sampling Frequencytime = 0:(1/Fs):1; %time vector% Data vectorx = cos(2*pi*60*time)+sin(2*pi*120*time)+randn(size(time));d=fdesign.lowpass('N,F3dB',5,200,Fs); %lowpass filter specification object% Invoke Butterworth design methodHd=design(d,'butter');y=filter(Hd,x);非面向对象的方法则适用函数实现滤波器设计,如butter、firpm。

所有非面向对象的滤波器设计函数使用的是归一化频率,归一化频率[0, 1]之间,1表示πrad。

将Hz频率转化为归一化频率的方法为乘以2除以采样频率。

设计上面同样的滤波器,使用非面向对象的方法如下Wn = (2*200)/1000; %Convert 3-dB frequency% to normalized frequency: 0.4*pi rad/sample[B,A] = butter(5,Wn,'low');y = filter(B,A,x);滤波函数* filter:利用递归滤波器(IIR)或非递归滤波器(FIR)对数据进行数字滤波;* fftfilt:利用基于FFT的重叠相加法对数据进行滤波,只适用于非递归滤波器(FIR);* filter2:二维FIR数字滤波;* filtfilt:零相位滤波(IIR与FIR均可)。

MATLAB中的滤波器设计与应用指南

MATLAB中的滤波器设计与应用指南

MATLAB中的滤波器设计与应用指南导言滤波器(Filter)是信号处理中必不可少的一部分,它可以用来改变信号的频率、相位或幅度特性。

在MATLAB中,有丰富的工具和函数可以用于滤波器设计和应用。

本文将深入探讨MATLAB中滤波器的设计原理、常用滤波器类型以及实际应用中的一些技巧。

一、滤波器基本原理滤波器的基本原理是根据输入信号的特性,通过去除或衰减不需要的频率成分,获得所需频率范围内信号的输出。

根据滤波器的特性,我们可以将其分为低通滤波器、高通滤波器、带通滤波器和带阻滤波器。

低通滤波器(Low-pass filter)允许通过低于截止频率的信号成分,而衰减高于截止频率的信号成分。

这种滤波器常用于去除高频噪声,保留低频信号,例如音频信号的处理。

高通滤波器(High-pass filter)允许通过高于截止频率的信号成分,而衰减低于截止频率的信号成分。

这种滤波器常用于去除低频噪声,保留高频信号,例如图像边缘检测。

带通滤波器(Band-pass filter)允许通过两个截止频率之间的信号成分,而衰减低于和高于这个频率范围的信号成分。

这种滤波器常用于提取特定频率范围内的信号,例如心电图中的心跳信号。

带阻滤波器(Band-stop filter)允许通过低于和高于两个截止频率之间的信号成分,而衰减位于这个频率范围内的信号成分。

这种滤波器常用于去除特定频率范围内的信号,例如降噪。

二、MATLAB中的滤波器设计方法1. IIR滤波器设计IIR(Infinite Impulse Response)滤波器是一种常用的滤波器类型,其特点是具有无限长的冲激响应。

在MATLAB中,我们可以使用`butter`、`cheby1`、`cheby2`、`ellip`等函数进行IIR滤波器的设计。

以`butter`函数为例,其用法如下:```matlabfs = 1000; % 采样频率fc = 100; % 截止频率[b, a] = butter(4, fc/(fs/2), 'low'); % 设计4阶低通滤波器```上述代码中,`b`和`a`分别是滤波器的分子和分母系数,`4`是滤波器的阶数,`fc/(fs/2)`是归一化截止频率,`'low'`表示低通滤波器。

Matlab中的多种滤波器设计方法介绍

Matlab中的多种滤波器设计方法介绍

Matlab中的多种滤波器设计方法介绍引言滤波器是数字信号处理中常用的工具,它可以去除噪声、改善信号质量以及实现其他信号处理功能。

在Matlab中,有许多不同的滤波器设计方法可供选择。

本文将介绍一些常见的滤波器设计方法,并详细说明它们的原理和应用场景。

一、FIR滤波器设计1.1 理想低通滤波器设计理想低通滤波器是一种理论上的滤波器,它可以完全去除截止频率之上的频率分量。

在Matlab中,可以使用函数fir1来设计理想低通滤波器。

该函数需要指定滤波器阶数及截止频率,并返回滤波器的系数。

但是,由于理想低通滤波器是非因果、无限长的,因此在实际应用中很少使用。

1.2 窗函数法设计为了解决理想滤波器的限制,窗函数法设计了一种有限长、因果的线性相位FIR滤波器。

该方法利用窗函数对理想滤波器的频率响应进行加权,从而得到实际可用的滤波器。

在Matlab中,可以使用函数fir1来实现窗函数法设计。

1.3 Parks-McClellan算法设计Parks-McClellan算法是一种优化设计方法,它可以根据指定的频率响应要求,自动选择最优的滤波器系数。

在Matlab中,可以使用函数firpm来实现Parks-McClellan算法。

二、IIR滤波器设计2.1 Butterworth滤波器设计Butterworth滤波器是一种常用的IIR滤波器,它具有平坦的幅频响应,并且在通带和阻带之间有宽的过渡带。

在Matlab中,可以使用函数butter来设计Butterworth滤波器。

2.2 Chebyshev滤波器设计Chebyshev滤波器是一种具有较陡的滚降率的IIR滤波器,它在通带和阻带之间有一个相对较小的过渡带。

在Matlab中,可以使用函数cheby1和cheby2来设计Chebyshev滤波器。

2.3 Elliptic滤波器设计Elliptic滤波器是一种在通带和阻带上均具有较陡的滚降率的IIR滤波器,它相较于Chebyshev滤波器在通带和阻带上都具有更好的过渡特性。

滤波器设计MATLAB

滤波器设计MATLAB

滤波器设计MATLAB滤波器的设计在信号处理中具有重要的作用,可以用于去除噪声、增强信号等。

MATLAB是一种强大的工具,可以用于滤波器设计和分析。

本文将介绍如何使用MATLAB进行滤波器设计,并通过示例展示具体的过程。

在MATLAB中,可以使用信号处理工具箱提供的函数来设计滤波器。

常用的函数有:- `fir1`:设计FIR滤波器。

- `butter`:设计巴特沃斯滤波器。

- `cheby1`:设计切比雪夫I型滤波器。

- `cheby2`:设计切比雪夫II型滤波器。

- `ellip`:设计椭圆滤波器。

这些函数的输入参数包括滤波器类型、阶数、截止频率等。

根据具体的需求选择不同的函数来设计滤波器。

下面以设计一个低通滤波器为例,演示如何使用MATLAB进行滤波器设计。

首先,创建一个信号作为输入。

可以使用`sin`函数生成一个正弦信号作为示例。

代码如下:```matlabfs = 1000; % 采样率t = 0:1/fs:1; % 时间向量f=50;%信号频率x = sin(2*pi*f*t); % 输入信号```接下来,使用`fir1`函数设计一个低通滤波器。

该函数的输入参数`n`表示滤波器的阶数,`Wn`表示归一化的截止频率。

代码如下:```matlabn=50;%滤波器阶数Wn=0.2;%截止频率b = fir1(n, Wn);```然后,使用`filter`函数对输入信号进行滤波。

该函数的输入参数是滤波器的系数和输入信号。

代码如下:```matlaby = filter(b, 1, x);```最后,绘制原始信号和滤波后的信号的时域和频域波形。

代码如下:```matlab%时域波形subplot(2, 1, 1)plot(t, x)hold onplot(t, y)legend('原始信号', '滤波后信号') xlabel('时间 (s)')ylabel('幅值')title('时域波形')%频域波形subplot(2, 1, 2)f = linspace(-fs/2, fs/2, length(x)); X = abs(fftshift(fft(x)));Y = abs(fftshift(fft(y)));plot(f, X)hold onplot(f, Y, 'r')legend('原始信号', '滤波后信号') xlabel('频率 (Hz)')ylabel('幅值')title('频域波形')```运行以上代码,可以得到原始信号和滤波后信号的时域和频域波形图。

matlab频率采样法设计滤波器

matlab频率采样法设计滤波器

一、介绍频率采样法设计滤波器的背景和意义1.1 频率采样法设计滤波器的概念及其在数字信号处理中的作用 1.2 频率采样法设计滤波器与其他设计方法的比较1.3 频率采样法设计滤波器的优势和适用范围二、频率采样法设计滤波器的原理和方法2.1 频率采样法设计滤波器的基本原理2.2 频率采样法设计滤波器的设计步骤2.3 频率采样法设计滤波器的常用工具和软件三、matlab频率采样法设计滤波器的实现步骤3.1 设定滤波器的规格和要求3.2 使用matlab进行频域设计3.3 使用matlab进行时域设计3.4 验证设计的滤波器性能四、matlab频率采样法设计滤波器的案例分析4.1 案例一:低通滤波器设计4.1.1 滤波器规格要求4.1.2 频率采样法设计滤波器的实现步骤4.1.3 设计参数及性能分析4.2 案例二:带通滤波器设计4.2.1 滤波器规格要求4.2.2 频率采样法设计滤波器的实现步骤4.2.3 设计参数及性能分析五、matlab频率采样法设计滤波器的应用前景和挑战5.1 应用前景分析5.2 技术发展趋势5.3 面临的挑战和解决方案六、总结与展望6.1 频率采样法设计滤波器的优势和不足6.2 matlab工具在频率采样法设计滤波器中的应用6.3 未来发展方向和趋势在数字信号处理中,滤波器设计是一项重要的工作。

频率采样法设计滤波器是其中一种常用的设计方法,在matlab软件中进行频率采样法设计滤波器具有高效、便捷的特点。

本文将介绍频率采样法设计滤波器的原理、方法以及在matlab中的实现步骤,通过案例分析和应用前景展望来全面解析这一设计方法的优势和发展趋势。

在数字信号处理领域,滤波器设计是至关重要的一环。

而频率采样法设计滤波器作为一种常用的设计方法,在matlab软件中具有高效、便捷的特点。

接下来,我们将深入探讨频率采样法设计滤波器的原理、方法以及在matlab中的实现步骤,并通过案例分析和应用前景展望来全面解析这一设计方法的优势和发展趋势。

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

长安大学数字信号处理综合设计专业_______电子信息工程_______班级__24030602___________姓名_______张舒_______学号2403060203指导教师陈玲日期_______2008-12-27________一、课程设计目的:1. 进一步理解数字信号处理的基本概念、基本理论和基本方法;2.熟悉在Windows环境下语音信号采集的方法;3.学会用MATLAB软件对信号进行分析和处理;4.综合运用数字信号处理理论知识,掌握用MATLAB软件设计FIR和IIR数字滤波器的方法;5. 提高依据所学知识及查阅的课外资料来分析问题解决问题的能力。

二、课程设计内容:1.语音信号的采集利用windows下的录音机录制一段自己的话音,时间控制在1秒左右;并对语音信号进行采样,理解采样频率、采样位数等概念。

2.语音信号的频谱分析利用函数fft对采样后语音信号进行快速傅里叶变换,得到信号的频谱特性。

3.设计数字滤波器采用窗函数法和双线性变换法设计下列要求的三种滤波器,根据语音信号的特点给出有关滤波器的性能指标:1)低通滤波器性能指标,fp=1000Hz,fc=1200Hz, As=100dB,Ap=1dB;2)高通滤波器性能指标,fc=4800Hz,fp=5000Hz ,As=100dB,Ap=1dB;3)带通滤波器性能指标,fp1=1200Hz,fp2=3000Hz,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB。

4.对语音信号进行滤波比较用两种方法设计的各滤波器的性能,然后用性能好的滤波器分别对采集的语音信号进行滤波;并比较滤波前后语音信号的波形及频谱,分析信号的变化。

5.回放语音信号,感觉滤波前后的声音变化。

三、实验原理(一)基于双线性Z变换法的IIR数字滤波器设计由于的频率映射关系是根据推导的,所以使jΩ轴每隔2π/Ts便映射到单位圆上一周,利用冲激响应不变法设计数字滤波器时可能会导致上述的频域混叠现象。

为了克服这一问题,需要找到由s平面到z平面的另外的映射关系,这种关系应保证:1) s平面的整个jΩ轴仅映射为z平面单位圆上的一周;2) 若G(s)是稳定的,由G(s)映射得到的H(z)也应该是稳定的;3) 这种映射是可逆的,既能由G(s)得到H(z),也能由H(z)得到G(s);4) 如果G(j0)=1,那么。

双线性Z变换满足以上4个条件的映射关系,其变换公式为双线性Z变换的基本思路是:首先将整个s平面压缩到一条从–π/Ts到π/Ts的带宽为2π/Ts的横带里,然后通过标准的变换关系将横带变换成整个z平面上去,这样就得到s平面与z平面间的一一对应的单值关系。

在MATLAB中,双线性Z变换可以通过bilinear函数实现,其调用格式为:[Bz,Az]=bilinear(B,A,Fs);其中B,A为模拟滤波器传递函数G(s)的分子分母多项式的系数向量,而Bz,Az为数字滤波器的传递函数H(z)的分子分母多项式的系数向量。

(二)窗函数法设计FIR数字滤波器窗函数法就是设计FIR数字滤波器的最简单的方法。

它在设计FIR数字滤波器中有很重要的作用,正确地选择窗函数可以提高设计数字滤波器的性能,或者在满足设计要求的情况下,减小FIR数字滤波器的阶次。

常用的窗函数有以下几种:矩形窗(Rectangular window)、三角窗(Triangular window)、汉宁窗(Hanning window)、海明窗(Hamming window)、布拉克曼窗(Blackman window)、切比雪夫窗(Chebyshev window)、巴特里特窗(Bartlett window)及凯塞窗(Kaiser window)。

在MATLAB中,实现矩形窗的函数为boxcar和rectwin,其调用格式如下:w=boxcar(N)w=rectwin(N)其中N是窗函数的长度,返回值w是一个N阶的向量,它的元素由窗函数的值组成。

实际上,w=boxcar(N)等价于w=ones(N,1)。

在MATLAB中,实现三角窗的函数为triang,调用格式为:w=triang(N)在MATLAB中,实现汉宁窗的函数为hann,调用格式如下:w=hann(N)w=hann(N,’sflag’)Hann函数中的参数sflag为采样方式,其值可取symmetric(默认值)或periodic。

当sflag=symmetric时,为对称采样;当sflag=periodic时,为周期采样,此时hann函数计算N+1个点的窗,但是仅返回前N个点。

在MATLAB中,实现海明窗的函数为hamming,调用格式分别如下:w=hamming (N)w=hamming (N,'sflag')其中sflag的用法同上。

在MATLAB中,实现布拉克曼窗的函数为blackman,调用格式如下:w=blackman (N)w=blackman (N,'sflag')在MATLAB中,实现切比雪夫窗的函数为chebwin,调用格式为:w=chebwin (N,r)其中r 表示切比雪夫窗函数的傅里叶变换旁瓣幅度比主瓣低rdB(其默认值为100dB),且旁瓣是等纹波的。

在MATLAB中,实现巴特里特窗的函数为bartlett,调用格式为:w=bartlett (N)在MATLAB中,实现凯塞窗的函数为kaiser,调用格式为:w=kaiser (N,beta)其中beta为窗函数的参数β。

四、设计及仿真实现过程:(一)语音信号的采集在matlab平台下,利用函数wavread对语音信号进行采样。

程序如下:说明:(1)用电脑录音的过程及进行了数据的时域采集,故其中的设置已经决定了以下参数8000KHz,8位,单声道。

[y,fs,bits]=wavread中的采样频率fs是指单位时间内的采样次数。

采样位数bits是记录每次采样值数值大小的位数.(2)、fft函数用于计算矢量或矩阵的离散傅立叶变换。

格式:fft=(x,n)采用n点FFT。

plot是线性绘图函数;abs是求绝对值的函数。

24681012x 104-1-0.8-0.6-0.4-0.200.20.40.60.81原时域波形a m p l i t u d en050010001500200025003000350040000.511.522.53原频谱特性a m p l i t u d efrequency(hz)(二)双线性变换法设计滤波器(1)双向性变换法设计巴特沃斯低通滤波器,程序和频率响应如下(2)双向性变换法设计巴特沃斯高通滤波器,程序和频率响应如下(3)双向性变换法设计切比雪夫带通滤波器,程序和频率响应如下4Frequency (Hz)P h a s e (d e g r e e s )ω/π|H (z )|ω/π增益.d B(三)窗函数设计滤波器由于所给滤波器的模拟指标要求阻带的最小衰减As=100dB,所以只能选择kaiser窗,且kaiser 窗的参数a=10.056,过渡带宽w为10.8*pi,选取阶数N=49。

(1)窗函数法低通滤波器设计程序及频率响应如下:(2)窗函数法带通滤波器设计程序及频率响应如下: wn=kaiser(49);fc1=1000;fc2=3200;fs=8000; wc1=2*fc1/fs;wc2=2*fc2/fs; b=fir1(48,[wc1 wc2],wn); freqz(b,1)title('窗函数带通滤波器响应')00.10.20.30.40.50.60.70.80.91-3000-2000-100001000Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )00.10.20.30.40.50.60.70.80.91-100-5050Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )窗函数带通滤波器响应(3)窗函数法高通滤波器设计程序及频率响应如下:(四).用滤波器对信号滤波,比较滤波前后语音信号波形频谱(1)滤波程序1.巴特沃斯低通滤波器滤波程序(2)FIR 和IIR滤波效果的比较05001000150020002500300035004000123窗函数低通滤波后频谱05001000150020002500300035004000123窗函数低通滤波前频谱对比图1 低通滤波由上图窗函数滤波后频谱阻带的波纹较大一些,但基本不易看出两种滤波器的性能优劣。

5001000150020002500300035004000窗函数高通滤波后频谱05001000150020002500300035004000窗函数高通滤波前频谱对比图2 高通滤波由上图可以很明显看出窗函数在阻带的波纹较大,即滤波效果不如巴特沃斯滤波器。

500100015002000250030003500400000.511.52窗函数带通滤波后频谱05001000150020002500300035004000123窗函数带通滤波前频谱对比图3 带通滤波由以上图可以看出 ,切比雪夫滤波频谱比较尖锐,只能通过很小频段的波形,而窗函数能通过适当范围的频率波形,且滤波效果较为理想。

(五)两种滤波器比较及结论窗函数法中相位响应有严格的线性,不存在稳定性问题, 设计简单。

双线性变换不会出现由于高频部分超过折叠频率而混淆到低频部分去的现象,但会产生频率混碟现象,使数字滤波器的频响偏移模拟滤波器的频响。

在对语音信号进行滤波的时候,双线性低通滤波器的滤波效果最好,滤波后的语音信号失真比较小,高通和带通的失真都较大。

由此可知人的语音信号的能量主要集中在低频部分。

在用窗函数设计滤波器的时候,由于所给指标的阻带衰减比较大,对所选窗的要求比较苛刻,而且很难达到所给指标。

由公式N>=a*fc/|fp-fs|或公式N=1+(As-7.95)*fc/[14.36*|fp-fs|]可算得阶数N>=3。

但实际在仿真的过程中发现要想达到阻带的最小衰减为100,阶数N得选很大,约在800左右。

因为对如此大阶数的滤波器在实现的时候很困难,所以在本设计中选择N=49。

由滤波器的频谱图和滤波前后的语音信号的频谱图对比可知本设计选用双线性变换法设计的IIR滤波器比较好。

在同样的技术指标的要求下,IIR滤波器所要求的阶数N也比较小,实现起来比较容易。

事实上,IIR滤波器系统函数的极点可以在单位圆内的任何位置,实现IIR滤波器的阶次较低,所用的存储单元较少,效率高,且IIR数字滤波器能够保留一些模拟滤波器的优良特性。

相关文档
最新文档