设计数字低通滤波器(用matlab实现)
基于Matlab的巴特沃斯数字低通滤波器的设计

stga"TcM d m n a , Tc [ . . . ] ; e(c , i oe, aul i ,00 20 3051 ) X k X k
s (c , TcM d m n a , Tc [ t Rp1 ) e ga Y i oe, aul i ,0An i ] ; t k Y k
D( ) sD2s … D ( ) s =D () ( ) 5 () 7
当阶段 为奇数 时 : D() 。sD () :s… D () s =D () sD () s
1 2 巴特 沃斯 滤 波器 的特性 .
() 8
巴特沃斯 滤波 器 的特 点是 通频 带 的频率 响应 曲线 最平 滑 , 即频 率 响应 曲线 在 通 频带 内最 大 限度 平坦 , 有起伏 , 没 而在阻频 带则 逐渐 下降 为零 . 在振 幅 的对 数对 角频率 的波 特 图上 , 一 边界角 频率 开 从某 始, 振幅 随着角 频率 的增 加而逐 步减 少 , 于 负无穷 大 . 趋 利用 巴特沃 斯低 通 滤波 器 对 低 频段 的音 频信 号
对 音 频 信 号进 行 了处理 .
关键词 : 巴特沃斯 ; 滤波器; t bቤተ መጻሕፍቲ ባይዱ仿真 Maa ; l
中 图分 类 号 : P9 T33 文献标识码 : A 文 章 篇 号 :0 824 ( 0 2 0 -0 30 1o .4 1 2 1 ) 20 1 -3
M tb功能强大 , aa l 其信号处理工具箱( i a P cs n ol x 可 以快速有效地实现数字滤波器的 S nl r e i To o) g o s g b 设计与仿真 , 为滤波器的设计提供 了一个方便 的平台. 利用 M tb aa 设计数字滤波器在数字通信系统 和 l 计算机领域 中有着广阔的应用前景. 巴特沃斯 滤波器是 I I R数字滤波器 的一种【] 由于其在滤波的过 1, 程中通频带 内具有最大限度平坦 , 使得对音频信号进行平滑处理有较好的效果. 本文所设计的巴特沃斯 数字低通滤波器对一段音频信号进行了滤波处理 , 滤除了高频分量 , 音频信号的听觉效果经过滤波后变 得低 沉 , 明所 设计 的低 通滤 波器 是有 效 的. 表
基于MATLAB信号处理工具箱的数字滤波器设计与仿真

基于MATLAB信号处理工具箱的数字滤波器设计与仿真•简介:传统的数字滤波器的设计过程复杂,计算工作量大,滤波特性调整困难,影响了它的应用。
本文介绍了一种利用MATLAB信号处理工具箱(Signal Processing Toolbox)快速有效的设计由软件组成的常规数字滤波器的设计方法。
给出了使用MATLAB语言进行程序设计和利用信号处理工具箱的FDATool工具进行界面设计的详细步骤。
利用MATLAB设计滤波器,可以随时对比设计要求和滤波器特性调整参数,直观简便,极大的减轻了工作量,有利于滤波器设计的最优化。
本文还介绍了如何利用MATLAB环境下的仿真软件Simulink对所设计的滤波器进行模拟仿真。
•关键字:数字滤波器 MATLAB FIR IIR•一、引言:在电力系统微机保护和二次控制中,很多信号的处理与分析都是基于对正弦基波和某些整次谐波的分析,而系统电压电流信号(尤其是故障瞬变过程)中混有各种复杂成分,所以滤波器一直是电力系统二次装置的关键部件【1】。
目前微机保护和二次信号处理软件主要采用数字滤波器。
传统的数字滤波器设计使用繁琐的公式计算,改变参数后需要重新计算,在设计滤波器尤其是高阶滤波器时工作量很大。
利用MATLAB信号处理工具箱(Signal Proce ssing Toolbox)可以快速有效的实现数字滤波器的设计与仿真。
1 数字滤波器及传统设计方法数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。
数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。
IIR数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配。
所以IIR滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。
FIR数字滤波器的单位脉冲响应是有限长序列。
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中,可以使用信号处理工具箱提供的函数来设计滤波器。
常用的函数有:- `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('频域波形')```运行以上代码,可以得到原始信号和滤波后信号的时域和频域波形图。
FIR滤波器的MATLAB设计与实现

FIR滤波器的MATLAB设计与实现FIR滤波器(Finite Impulse Response Filter)是一种数字滤波器,其特点是其响应仅由有限长度的序列决定。
在MATLAB中,我们可以使用信号处理工具箱中的函数来设计和实现FIR滤波器。
首先,需要明确FIR滤波器的设计目标,包括滤波器类型(低通、高通、带通、带阻)、通带和阻带的频率范围、通带和阻带的增益等。
这些目标将决定滤波器的系数及其顺序。
在MATLAB中,我们可以使用`fir1`函数来设计FIR滤波器。
该函数的使用方式如下:```matlabh = fir1(N, Wn, type);```其中,`N`是滤波器长度,`Wn`是通带边缘频率(0到0.5之间),`type`是滤波器的类型('low'低通、'high'高通、'bandpass'带通、'stop'带阻)。
该函数会返回一个长度为`N+1`的滤波器系数向量`h`。
例如,如果要设计一个采样频率为10kHz的低通滤波器,通带截止频率为2kHz,阻带频率为3kHz,可以使用以下代码:```matlabfc = 2000; % 通带截止频率h = fir1(50, fc/(fs/2), 'low');```上述代码中,`50`表示滤波器的长度。
注意,滤波器的长度越大,滤波器的频率响应越陡峭,但计算成本也更高。
在设计完成后,可以使用`freqz`函数来分析滤波器的频率响应。
例如,可以绘制滤波器的幅度响应和相位响应曲线:```matlabfreqz(h);```除了使用`fir1`函数外,MATLAB还提供了其他函数来设计FIR滤波器,如`fir2`、`firpm`、`firls`等,具体使用方式可以参考MATLAB的文档。
在实际应用中,我们可以将FIR滤波器应用于音频处理、图像处理、信号降噪等方面。
例如,可以使用FIR滤波器对音频信号进行去噪处理,或者对图像进行锐化处理等。
课程设计_低通滤波器设计(含matlab程序)

2010/2011学年第 2 学期学院:信息与通信工程学院专业:电子信息科学与技术学生姓名:学号:课程设计题目:低通滤波器设计起迄日期: 6 月 13 日~6月 24日课程设计地点:指导教师:系主任:下达任务书日期: 2011 年 6 月12 日课程设计任务书课程设计任务书目录1 设计目的及要 (5)1.1设计目的 (5)1.2设计内容和要求 (5)2设计原理 (5)2.1 FIR滤波器 (5)2.2窗函数 (6)2.3矩形窗 (7)3设计过程 (8)3.1设计流程图 (8)3.2 产生原始信号并分析频谱 (8)3.3 使用矩形窗设计不同特性的数字滤波器 (10)3.4 信号滤波处理 (11)4 实验结果及分析 (12)5 课程设计心得体会 (12)6 参考文献 (13)附录: (14)低通滤波器的设计1 设计目的及要求1.1设计目的设计一种低通滤波器并对信号进行滤波。
低通滤波器的作用是滤去信号中的中频和高频成分,增强低频成分。
要求做到:1.了解MATLAB的信号处理技术;2.使用MATLAB设计低通滤波器,掌握其滤波处理技术;3.对滤波前和滤波后的波形进行时域和频域比较。
1.2设计内容和要求1.熟悉有关采样,频谱分析的理论知识,对信号作频谱分析;2.熟悉有关滤波器设计理论知识,选择合适的滤波器技术指标,设计低通滤波器对信号进行滤波,对比分析滤波前后信号的频谱;3.实现信号频谱分析和滤波等有关MATLAB函数;2设计原理本次课程设计,我们主要是基于矩形窗的FIR滤波器来设计一个低通滤波器。
2.1 FIR滤波器FIR滤波器即有限抽样响应因果系统,其单位抽样响应h<n>是有限长的;极点皆位于z=0处;结构上不存在输出到输入的反馈,是非递归型的。
其系统函数表示为:普通的FIR滤波器系统的差分方程为:式中:N为FIR滤波器的抽头数;x<n>为第n时刻的输入样本;h<i>为FIR滤波器第i级抽头系数。
滤波器设计示例(利用Matlab)
滤波器设计示例1、Matlab设计IIR基本示例 (1)(1)直接设计数字滤波器 (1)(2)脉冲相应不变法 (2)(3)双线性变换 (2)(4)双线形变换法设计chebyshev高通滤波器 (3)(5)使用MatLab6下的Filter Designed Tool (4)2、Matlab设计IIR高级示例 (4)(1)双线性变换实现ButterWorth低通 (4)(2)双线性变换法实现Chebyshev低通(I型) (5)(3)低通变换为高通 (6)(2)低通变换为带通 (7)(3)低通变换为带通(双线性变换) (8)3、Matlab窗函数设计FIR滤波器基本示例 (9)(1)低通滤波器实现 (9)(2)带通滤波器实现 (9)1、Matlab设计IIR基本示例[返回](1)直接设计数字滤波器[返回]低通,采样频率为1Hz,通带临界频率f p =0.2Hz,通带内衰减小于1dB(αp=1);阻带临界频率f s=0.3Hz,阻带内衰减大于25dB(αs=25)。
设计一个数字滤波器满足以上参数。
% Matlab使用归一化的频率参数(临界频率除以采样频率的1/2)。
%这样临界频率参数的取值范围在0和1之间,1代表Fs/2(用角频率表示的时候对应π)FS=1[n,Wn]=buttord(0.2/(FS/2),0.3/( FS /2),1,25);[b,a]=butter(n,Wn);freqz(b,a,512, FS);(2)脉冲相应不变法[返回]低通,采样频率为1Hz,通带临界频率f p =0.2Hz,通带内衰减小于1dB(αp=1);阻带临界频率f s=0.3Hz,阻带内衰减大于25dB(αs=25)。
设计一个数字滤波器满足以上参数。
FS=1[n,Wn]=buttord(0.2*2*pi,0.3*2*pi,1,25,'s'); %临界频率采用角频率表示[b,a]=butter(n,Wn,'s');%freqs(b,a) %设计模拟的[bz,az]=impinvar(b,a,FS); %映射为数字的freqz(bz,az,512,FS)(3)双线性变换[返回]低通,采样频率为1Hz,通带临界频率f p =0.2Hz,通带内衰减小于1dB(αp=1);阻带临界频率f s=0.3Hz,阻带内衰减大于25dB(αs=25)。
FIR滤波器的MATLAB设计与实现
时钟 输入模拟信号 输出模拟信号
DSP (TMS32 0C5410)
同步 FIFO
同步 FIFO
D/A 转换
A/D 转换
JTAG 接口
FLASE
RS232 接口 图3 系统总体框图
6
SRAM
JTAG(Joint Test Action Group) 联合测试行动小组)是一种国际标准测试协议 (IEEE 1149.1 兼容) ,主要用于芯片内部测试。基本原理是在器件内部定义一个 TAP(Test Access Port�测试访问口)通过专用的 JTAG 测试工具对内部节点进 行测试。JTAG 测试允许多个器件通过 JTAG 接口串联在一起,形成一个 JTAG 链, 能实现对各个器件分别测试。 FLASE 存储器具有性价比高,体积小,功耗低,可电擦写,使用方便等优点。 在 DSP 应用系统中采用 Flash 存储器和固定数据是一种比较好的选择。 SRAM 静态存储器,读写速度快,但价格较高。适合于外部存放需要经常访问 或更新的临时数据。 RS232 电平转换模块,将外部电平转换为适合 DSP 芯片内部要求的电平。 图3是系统的总体框图。主要包括输入信号缓冲及调理电路、A/D 变换器、输 入缓冲 FIFO、DSP及外围电路、输出缓冲FIFO、D/A变换器等几部分。其中DSP及 外围电路包括程序存储器、串行口、显示及键盘接口等。串行口用于实现和PC机 的通信,可以通过PC机对滤波器的控制。 假定输入模拟信号为带限信号。该信号经缓冲和调理后经A/D变换进入输入缓 冲FIFO,当 FIFO中的数据达到一定数量时产生中断,DSP将数据读入内存中并进 行计算和处理,这里DSP主要实现FIR滤波运算。处理后的数据写入输出FIFO中, 之后通过D/A变换后输出模拟信号。输出的信号是低通滤波后的结果。 4.3 用DSP实现FIR滤波器的关键问题 4.3.1 定点数的定标 在滤波器的实现过程中,DSP所要处理的数可能是整数,也可能是小数或混合 小数;然而,DSP在执行算术运算指令时,并不知道当前所处理的数据是整数还是 小数,更不能指出小数点的位置在哪里。因此,在编程时必须指定一个数的小数 点处于哪一位,这就是定标。通过定标,可以在16位数的不同位置上确定小数点, 从而表示出一个范围大小不同且精度也不同的小数。 4.3.2 误差问题 因为在用定点DSP实现时,所有的数据都是定长的,运算也都是定点运算,因 而会产生有限字长效应。所产生的误差主要包括:数模转换引起的量化误差、系 数量化引起的误差以及运算过程中的舍入误差。在用定点DSP时,产生误差是不能 避免的。
基于Matlab的FIR低通滤波器设计及simulink仿真实现
基于Matlab的FIR低通滤波器设计及simulink仿真实现2012题目基于Matlab的FIR低通滤波器设计及simulink仿真实现学院自动化与电气工程学院专业测控技术与仪器班级 083 学号108034063 学生姓名 xxx 指导教师 xxx 完成日期 2012年5月25日xxx 科技学院本科毕业论文(2012届)题目基于Matlab的FIR低通滤波器设计及simulink 仿真实现学院自动化与电气工程学院专业测控技术与仪器083 班级学号 108034063学生姓名 xxx指导教师 xxx完成日期 2012年5月25号xxx科技学院毕业设计、学位论文版权使用授权书本人 xxx 学号 108034063 声明所呈交的毕业设计、学位论文《基于Matlab 的FIR低通滤波器设计及simulink仿真实现》,是在导师指导下进行的研究工作及取得的研究成果。
除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,与我一同工作的人员对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。
本毕业设计、学位论文作者愿意遵守xxx科技学院关于保留、使用学位论文的管理办法及规定,允许毕业设计、学位论文被查阅。
本人授权 xxx科技学院可以将毕业设计、学位论文的全部或部分内容编入有关数据库在校园网内传播,可以采用影印、缩印或扫描等复制手段保存、汇编毕业设计、学位论文。
(保密的学位论文在解密后适用本授权书)论文作者签名:xxx 导师签名: xxx签字日期: 2012 年5月 25日签字日期: 2012 年 5 月 25日浙江科技学院本科毕业设计摘要数字滤波器是数字信号处理的一个重要的技术分支。
在现代电子系统中,FIR 数字滤波器以其良好的线性特性被广泛使用,属于数字信号处理的基本模块之一。
在工程实践中,一般对信号处理要求有实时性和灵活性,而已有的一些软件和硬件计算和实现方式则难以同时达到这两方面的要求。
IIR数字滤波器的MATLAB实现
第6章 IIR 数字滤波器的MATLAB 实现6.1 实验目的● 要求掌握IIR 数字滤波器的设计原理、设计方法和设计步骤; ● 能根据给定的滤波器指标进行滤波器设计;● 掌握数字巴特沃斯滤波器、数字切比雪夫滤波器的设计原理和步骤;6.2 实验原理及实例分析6.2.1 IIR 数字滤波器的传递函数及特点设IIR 滤波器的输入序列为x(n),则IIR 滤波器的输入序列x(n)与输出序列y(n)之间的关系可以用下面的方程式表示:)()()(1j n x a i n x b n y Nj j M i i -+-=∑∑==其中,j a 和i b 是滤波器的系数,其中j a 中至少有一个非零。
与之相对应的差分方程为:NN M M z a z a z b z b b z X z Y Z H ------++==....1....)()()(11110由传递函数可以发现无限常单位冲激响应滤波器有如下特点: (1) 单位冲激响应h(n)是无限长的。
(2) 系统传递函数H(z)在有限z 平面上有极点存在。
(3) 结构上存在着输出到输入的反馈,也就是结构上是递归型的。
6.2.2 IIR 数字滤波器的设计与实现IIR 数字滤波器的设计有多种方法,如频率变换法、数字域直接设计以及计算辅助设计等。
下面只介绍频率变换设计法。
首先考虑由模拟低通滤波器到数字低通滤波器的转换,其基本的设计过程如下:(1) 将数字滤波器的技术指标转换为模拟滤波器的技术指标; (2) 设计模拟滤波器G(S);(3) 将G(S)转换成数字滤波器H(Z);在低通滤波器的设计基础上,可以得到数字高通、带通、带阻滤波器的设计流程如下:(1)给定数字滤波器的设计要求(高通、带阻、带通);(2)转换为模拟(高通、带阻、带通)滤波器的技术指标;(3)转换为模拟低通滤波器的指标;(4)设计得到满足第三步要求的低通滤波器传递函数;(5)通过频率转换得到模拟(高通、带阻、带通)滤波器;(6)变换为数字(高通、带阻、带通)滤波器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSP设计滤波器报告 姓名:张胜男 班级:07级电信(1)班 学号:078319120 一·低通滤波器的设计 (一)实验目的:掌握IIR数字低通滤波器的设计方法。
(二)实验原理: 1、滤波器的分类 滤波器分两大类:经典滤波器和现代滤波器。
经典滤波器是假定输入信号)(nx中的有用成分和希望取出的成分各自占有不同
的频带。这样,当)(nx通过一个线性系统(即滤波器)后可讲欲去除的成分有效的去除。 现代滤波器理论研究的主要内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。 经典滤波器分为低通、高通、带通、带阻滤波器。每一种又有模拟滤波器(AF)和数字滤波器(DF)。对数字滤波器,又有IIR滤波器和FIR滤波器。 IIR DF 的转移函数是:
NkkkMrrrzazbzXzYzH101)(
)()(
FIR DF的转移函数是: 10)()(NnnznhzH
FIR滤波器可以对给定的频率特性直接进行设计,而IIR滤波器目前最通用的方法是利用已经很成熟的模拟滤波器的设计方法进行设计。 2、滤波器的技术要求
低通滤波器:p:通带截止频率(又称通带上限频率) s:阻带下限截止频率 p:通带允许的最大衰减 s:阻带允许的最小衰减 (p,s
的单位dB) p:通带上限角频率 s:阻带下限角频率
(sppT,sssT)即 CppF2 CssF2 3、IIR 数字滤波器的设计步骤: 1)按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标。
2)根据转换后的技术指标设计模拟低通滤波器)(sG;
3)再按一定的规则将)(sG转换成)(zH。 4)若是高通、带通或带阻数字滤波器则将它们的技术指标先转化为低通模拟滤波器的技术指标,然后按上述步骤2)设计出低通)(sG,再将)(sG转
换为所需的)(zH。 4.几种不同类型的滤波器的介绍: 因为我们设计的滤波器的冲击响应一般都为实数,所以有
2*)()()()()(sjsjGsGsGsGsG
这样,如果我们能由p,p,s,s求出2)(jG,那么就容易得到所需要的)(sG。
不同类型的2)(jG的表达式,代表了几种不同类型的滤波器。 (1)巴特沃思(Butterworth)滤波器:
nCjG)(11)(222
C为待定常数,N为待定的滤波器阶次。 (2)切比雪夫I型(Chebyshev – I )滤波器:
)(11)(222nCjG
5.巴特沃思模拟低通滤波器的设计 由于每一个滤波器的频率范围将直接取决于设计者的应用目的,因此必然是千差万别。为了使设计规范化,我们需要将滤波器的频率参数作归一化处理。设所给
的实际频率为(或f),归一化后的频率为,对低通模拟滤波器,令 =p/
显然,1p,pss/。又令归一化复数变量为p,jp,显然 ppsjjp// 所以巴特沃思模拟低通滤波器的设计可按以下三个步骤来进行。 (1)将实际频率规一化 (2)求C和N 11010/2PC
sp
sNlg110110lg10/10/
这样C和N可求。 若令p=3dB,则C=1,这样巴特沃思滤波器的设计就只剩一个参数N,这时
NpNjG222)/(1111)(
(3)确定)(sG 因为jp,根据上面公式有
NNNpjppGpG22)1(11)/(11)()(
由 0)1(12NNp解得 )2212exp(NNkjpk,k=1,2,···,2N
这样可得
1)212cos(21))((1)(21NNkpppppppGkNkk
求得)(pG后,用ps/代替变量p,即得实际需要得)(sG。 6.用双线性Z变换法设计IIR数字低通滤波器 s平面到z平面的映射关系
112zzTss 称为双线性Z变换,由此关系求出
sTsTzss)2/(1)2/(1
及 )2/cos()2/sin(2sTjj 即 )2/tan(2sT )2/arctan(2sT 因为设计滤波器时系数sT2会被约掉,所以又有 ssz11
)2/tan( arctan2
(三)实验内容 题一:试用双线性Z变换法设计一低通数字滤波器,给定技术指标是100pfHz,300sfHz,3pdB,20s dB,抽样频率1000sFHz。
提示:首先应该得到角频率,然后再 (1) 将数字滤波器的技术要求转换为模拟滤波器的技术要求。
(2) 设计低通滤波器)(sG
由=p/依次求出p,s,再求出N,可得)(pG
然后由psppGsG)()(转换成)(sG (3) 由)(sG求)(zH
源程序: fp=100; fs=300; ap=3; %通带最大衰减 as=20; %阻带最小衰减 Fs1=1000; %抽样频率 wp=2*pi*fp/Fs1; ws=2*pi*fs/Fs1; %数字角频率 Fs=Fs1/Fs1; T=1/Fs; Op=2/T*tan(wp/2); Os=2/T*tan(ws/2); %角频率畸变 [N Wn]=buttord(Op,Os,ap,as,'s'); %N代表滤波器阶数,Wn代表滤波器的截止频率。简单来说就是在wp处,通带内波
纹系数或者说是通带内达到最大衰减为Rp,如(3db),而在Ws处,阻带达到最小衰减为Rs(如40db),而我们默认求得的Wn是在(-3db)时的频率 [z p k]=buttap(N); %G(p)的零点,极点,增益用于计算N阶归一化
(3dB截止频率Ωc=1)模拟低通原型滤波器系统函数的零、极点和增益因子。 [b a]=zp2tf(z,p,k); %G(p)的分子、分数系数从零、极点模型得到
系统函数的分子、分母多项式系数向量ba、aa [B A]=lp2lp(b,a,Op); %H(s)的分子、分数系数改变低通模拟滤波器的
截止频率,原滤波器是以多项式系数Bap,Aap给出的,改后的滤波器是带截止频率Wn的 [Bz Az]=bilinear(B,A,Fs*T/2); %H(z)的分子、分数系数 [H w]=freqz(Bz,Az,256,Fs*Fs1); %H频率响应 plot(w,abs(H),'r'); title('低通滤波器'); grid on;
实验结果:
05010015020025030035040045050000.20.40.60.811.2低通滤波器
同理可以设计出低通滤波器和带通及带阻滤波器。 MATLAB参考程序和仿真内容
%*******************************************************************% function[x]=ffts(mode,M) Nfft=2^M; x=zeros(1,Nfft); %定义一个长度为Nfft的一维全0数组 if mode= =1 for n=0:Nfft-1 x(n+1)=sin(2*pi*n/Nfft); end end %定义一个长度为Nfft的单周期正弦序列 if mode= =2 for n=0:Nfft-1 x(n+1)=sin(4*pi*n/Nfft); end end %定义一个长度为Nfft的双周期正弦序列 if mode= =3 for n=0:Nfft/2-1 x(n+1)=sin(4*pi*n/Nfft); end end %定义一个长度为Nfft/2的正弦序列,后面一半为0序列。 if mode= =4 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end end if mode= =5 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end end if mode= =6 for n=0:Nfft/2-1 x(n+1)=square(4*pi*n/Nfft); end end n=0:Nfft-1; subplot(2,1,1); stem(n,x); axis([0 Nfft-1 1.1*min(x) 1.1*max(x)]); xlabel('Points-->'); ylabel('x(n)');