matlab仿真一阶低通滤波器幅频特性和相频特性
matlabfir滤波器设计

matlabfir滤波器设计MATLAB是一个高级编程语言和交互式环境,被广泛应用于各种科学和工程问题的数值分析、数据可视化和编程开发等领域。
FIR滤波器是数字信号处理中经常使用的一种滤波器,它是基于有限长冲激响应的滤波器。
在MATLAB平台上,我们可以使用fir1函数来设计FIR滤波器。
一、FIR滤波器设计基础1.1 什么是FIR滤波器FIR滤波器是有限长冲激响应滤波器,由于其具有线性相位特性和可控阶数等优点,在数字信号处理中得到了广泛的应用。
一般来说,FIR滤波器的频率响应特性由滤波器的系数函数确定。
FIR滤波器的设计一般采用窗函数法、最小二乘法、频率抽取法等方法。
窗函数法是最常见的一种方法,大部分情况下选择的是矩形窗、汉宁窗、布莱克曼窗等。
1.3 fir1函数介绍fir1函数是MATLAB中用于FIR滤波器设计的函数,用法为:h = fir1(N, Wn, type)N为滤波器的阶数,Wn是用于指定滤波器截止频率的参数,type指定滤波器类型,可以是低通、高通、带通、带阻等。
二、使用fir1函数设计FIR滤波器2.1 设计要求采样率为300Hz;滤波器阶数为50;截止频率为50Hz。
2.2 实现步骤(1)计算规范化截止频率规范化截止频率是指在数字滤波器设计中使用的无单位量,通常范围为0到1。
在本例中,我们需要将50Hz的截止频率转化为规范化截止频率。
Wn = 2*50/300 = 1/3根据计算出的规范化截止频率和滤波器阶数,我们可以使用fir1函数来进行滤波器设计。
此处滤波器的阶数为50,规范化截止频率为1/3,类型为低通。
(3)绘制滤波器的幅频响应图为了验证设计的低通FIR滤波器是否符合要求,我们需要绘制其幅频响应图。
freqz(h,1,1024,300)经过上述步骤后,我们就得到了一张低通FIR滤波器的幅频响应图,如下图所示:图1.低通FIR滤波器的幅频响应图三、总结通过上述例子,我们可以看出在MATLAB中与fir1函数可以非常方便的进行FIR滤波器的设计。
使用MATLAB设计FIR滤波器

使⽤MATLAB设计FIR滤波器1. 采⽤fir1函数设计,fir1函数可以设计低通、带通、⾼通、带阻等多种类型的具有严格线性相位特性的FIR滤波器。
语法形式:b = fir1(n, wn)b = fir1(n, wn, ‘ftype’)b = fir1(n, wn, ‘ftype’, window)b = fir1(n, wn, ‘ftype’, window, ‘noscale’)参数的意义及作⽤:b:返回的FIR滤波器单位脉冲响应,脉冲响应为偶对称,长度为n+1;n:滤波器的介数;wn:滤波器的截⽌频率,取值范围为0<wn<1,1对应信号采样频率⼀半。
如果wn是单个数值,且ftype参数为low,则表⽰设计截⽌频率为wn的低通滤波器,如果ftype参数为high,则表⽰设计截⽌频率为wn的⾼通滤波器;如果wn是有两个数组成的向量[wn1wn2],ftype为stop,则表⽰设计带阻滤波器,ftype为bandpass,则表⽰设计带通滤波器;如果wn是由多个数组成的向量,则根据ftype的值设计多个通带或阻带范围的滤波器,ftype为DC-1,表⽰设计的第⼀个频带为通带,ftype为DC-0,表⽰设计的第⼀个频带为阻带;window:指定使⽤的窗函数,默认为海明窗;noscale:指定是否归⼀化滤波器的幅度。
⽰例:N=41; %滤波器长度fs=2000; %采样频率%各种滤波器的特征频率fc_lpf=200;fc_hpf=200;fp_bandpass=[200 400];fc_stop=[200 400];%以采样频率的⼀半,对频率进⾏归⼀化处理wn_lpf=fc_lpf*2/fs;wn_hpf=fc_hpf*2/fs;wn_bandpass=fp_bandpass*2/fs;wn_stop=fc_stop*2/fs;%采⽤fir1函数设计FIR滤波器b_lpf=fir1(N-1,wn_lpf);b_hpf=fir1(N-1,wn_hpf,'high');b_bandpass=fir1(N-1,wn_bandpass,'bandpass');b_stop=fir1(N-1,wn_stop,'stop');%求滤波器的幅频响应m_lpf=20*log(abs(fft(b_lpf)))/log(10);m_hpf=20*log(abs(fft(b_hpf)))/log(10);m_bandpass=20*log(abs(fft(b_bandpass)))/log(10);m_stop=20*log(abs(fft(b_stop)))/log(10);%设置幅频响应的横坐标单位为Hzx_f=0:(fs/length(m_lpf)):fs/2;%绘制单位脉冲响应%绘制单位脉冲响应subplot(421);stem(b_lpf);xlabel('n');ylabel('h(n)');subplot(423);stem(b_hpf);xlabel('n');ylabel('h(n)');subplot(425);stem(b_bandpass);xlabel('n');ylabel('h(n)');subplot(427);stem(b_stop);xlabel('n');ylabel('h(n)');%绘制幅频响应曲线subplot(422);plot(x_f,m_lpf(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);subplot(424);plot(x_f,m_hpf(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);subplot(426);plot(x_f,m_bandpass(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);subplot(428);plot(x_f,m_stop(1:length(x_f)));xlabel('频率(Hz)','fontsize',8);ylabel('幅度(dB)','fontsize',8);2. 采⽤fir2函数设计,函数算法是:⾸先根据要求的幅频响应向量形式进⾏插值,然后进⾏傅⾥叶变换得到理想滤波器的单位脉冲响应,最后利⽤窗函数对理想滤波器的单位脉冲响应激进型截断处理,由此得到FIR滤波器系数。
基于matlab模拟滤波器的设计与仿真

本科生毕业论文(设计)题目:基于matlab模拟滤波器的设计与仿真系部电子信息工程学院学科门类工科专业电子信息工程学号xxxxxxxxxxxxxxxxxx姓名XXX指导教师XXX2012年 5 月18 日基于matlab的模拟滤波器设计与仿真摘要几乎在所有的工程技术领域中都会涉及到信号处理问题,而滤波器信号处理的重要组成部分。
本论文首先介绍了滤波器的滤波原理以及模拟滤波器的设计方法,然后系统地介绍了模拟滤波器(包括巴特沃斯滤波器和切比雪夫滤波器)的设计原理和方法,并在此基础上论述了低通、高通、带通、带阻模拟滤波器的设计。
最后,采用MATLAB对所述滤波器进行建模仿真。
仿真结果表明用matlab设计的滤波器符合技术要求,且直观简便,有利于设计的优化。
关键字:模拟滤波器频率转换MATLAB装订线ABSTRACTIn almost all areas of engineering and technology, signal processing will be involved andsignal processing is an important component of filter signal processing. This paper will firstintroduce the principle of filter and the design method of analog filters. Then the paper willpresent the design principles and methods of analog filters (including the Butterworth filter andChebyshev filter) and on this basis, the analog filters (including low-pass, high-pass, band-pass,and band-stop) design will be discussed. Last is the use of virtual realization of analog filtersMATLAB. It can be seen that based on the simulation result, the filter designed by MATLAB iscoincident in technical requirements and handy in anchauung. What’s more, it is easy to adjustthe performance of filters.Key words:Filtering Analog filters MATLAB装订线第1章绪论 (1)1.1课题研究背景及意义 (1)1.2国内外研究现状及趋势 (1)1.3本文的主要工作安排 (2)第2章基本理论知识 (3)2.1滤波器的工作原理 (3)2.1.1模拟滤波器的工作原理 (3)2.1.2数字滤波器的工作原理 (4)2.2滤波器的基本特性 (5)2.2.1模拟滤波器与数字滤波器的基本特性 (5)2.2.2无限冲激响应IIR和有限冲激响应FIR滤波器 (7)2.3滤波器的主要性能指标 (8)第3章模拟滤波器的设计 (9)3.1模拟滤波器的分类 (9)3.2 模拟滤波器的设计方法 (9)3.3模拟原型滤波器及最小阶数选择 (11)3.3.1巴特沃斯滤波器及最小阶数选择 (11)3.3.2切比雪夫滤波器及最小阶数选择 (14)3.3.3椭圆滤波器及最小阶数的选择 (20)3.3.4贝塞尔滤波器 (21)第4章 MATLAB仿真 (22)4.1MATLAB简介 (22)4.2对低通模拟滤波器的仿真 (23)4.3 模拟高通滤波器的仿真 (25)4.4 模拟带通滤波器的仿真 (26)4.5 对带阻模拟滤波器的仿真 (28)第5章频率转换 (30)5.1低通至高通的转换 (30)5.2低通至带通的变换 (31)5.3低通至带阻的变换 (34)第6章总结与展望 (36)参考文献 (37)第1章绪论1.1课题研究背景及意义凡是有能力进行信号处理的装置都可以称为滤波器。
基于Matlab的FIR滤波器设计与实现

二、实验平台Matlab7.1三、实验原理以低通滤波器为例,其常用的设计指标有:1.通带边缘频率f p(数字频率为Ωp)2.阻带边缘频率f st (数字频率为Ωst)3.通带内最大纹波衰减δp=-20log10(1-αp),单位为dB4.阻带最小衰减αs=-20log10(αs),单位为dB5.阻带起伏αs6.通带峰值起伏αp其中,以1、2、3、4条最为常用。
5、6条在程序中估算滤波器阶数等参数时会用到。
数字频率= 模拟频率/采样频率四、实例分析例1 用凯塞窗设计一FIR低通滤波器,通带边界频率Ωp=0.3pi,阻带边界频率Ωs=0.5pi,阻带衰减δs不小于50dB。
方法一:手动计算滤波器阶数N和β值,之后在通过程序设计出滤波器。
第一步:通过过渡带宽度和阻带衰减,计算滤波器的阶数B和β值。
第二步:通过程序设计滤波器。
程序如下:b = fir1(29,0.4,kaiser(30,4.55));[h1,w1]=freqz(b,1);figure (1)plot(w1/pi, abs(h1));grid;xlabel('归一化频率/p') ;ylabel('幅度/dB') ;figure (2)plot(w1/pi,angle(h1));grid;xlabel('归一化频率/p') ;ylabel('相位') ;波形如下:例2 利用雷米兹交替算法设计等波纹滤波器,设计一个线性相位低通FIR数字滤波器,其指标为:通带边界频率fc=800Hz,阻带边界fr=1000Hz,通带波动阻带最小衰减At=40dB,采样频率fs=4000Hz。
一般调用MATLAB信号处理工具箱函数remezord来计算等波纹滤波器阶数N和加权函数W (ω),调用函数remez可进行等波纹滤波器的设计,直接求出滤波器系数。
函数remezord中的数组fedge为通带和阻带边界频率,数组mval是两个边界处的幅值,而数组dev是通带和阻带的波动,fs是采样频率单位为Hz。
基于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滤波器的三种方法

用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法摘要介绍了利用MATLAB信号处理工具箱进行FIR滤波器设计的三种方法:程序设计法、FDATool设计法和SPTool设计法,给出了详细的设计步骤,并将设计的滤波器应用到一个混和正弦波信号,以验证滤波器的性能。
关键词 MATLAB,数字滤波器,有限冲激响应,窗函数,仿真1 前言数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。
与IIR滤波器相比,FIR的实现是非递归的,总是稳定的;更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。
因此,它在高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。
2 FIR滤波器的窗函数设计法 FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。
窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:(1) 通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。
(2) 由性能指标确定窗函数W(n)和窗口长度N。
(3) 求得实际滤波器的单位脉冲响应h(n), h(n)即为所设计FIR滤波器系数向量b(n)。
(4) 检验滤波器性能。
本文将针对一个含有5Hz、15Hz和30Hz的混和正弦波信号,设计一个FIR带通滤波器,给出利用MATLAB实现的三种方法:程序设计法、 FDATool设计法和SPTool设计法。
参数要求:采样频率fs=100Hz,通带下限截止频率fc1=10 Hz,通带上限截止频率fc2=20 Hz,过渡带宽6 Hz,通阻带波动0.01,采用凯塞窗设计。
2 程序设计法MATLAB信号处理工具箱提供了各种窗函数、滤波器设计函数和滤波器实现函数。
基于MATLAB的低通滤波器的仿真设计

嵌入式应用软件园(),版权所有,请勿转载/销售。
基于 MATLAB 的低通滤波器的仿真设计 摘 要
II
嵌入式应用软件园(),版权所有,请勿转载/销售。
目
录
引言 .................................................................................................................................................. 1 第 1 章 绪论 ................................................................................................................................... 2 1.1 论文研究背景和意义 ...................................................................................................... 2 1.2 数字滤波器的发展动态 .................................................................................................. 2 1.3 数字滤波器的实现方法 .................................................................................................. 3 1.4 本论文研究的主要内容 .................................................................................................. 3 第 2 章 数字低通滤波器的设计方法 ......................................................................................... 5 2.1 数字滤波器的递归与非递归的实现 ............................................................................. 5 2.2 数字滤波器的技术要求及指标 ..................................................................................... 6 2.3 无限冲激响应数字滤波器介绍 ..................................................................................... 8 2.4 无限脉冲滤波器的设计 .................................................................................................. 9 2.4.1 由模拟滤波器到数字滤波器 .................................................................................. 9 2.4.2 对给定技术指标的逼近方法概述 ........................................................................ 10 2.4.3 巴特沃斯模拟低通滤波器设计方法 .................................................................... 12 2.4.4 脉冲不变法设计 IIR DF ....................................................................................... 19 2.4.5 双线性 z 变换法设计 IIR DF ................................................................................ 23 第 3 章 MATLAB 下的低通数字滤波器的设计 .................................................................... 26 3.1 MATLAB 语言概述 ........................................................................................................ 26 3.1.1 MATLAB 语言的发展 ............................................................................................ 26 3.1.2 MATLAB 语言的特点 ............................................................................................ 26 3.2 滤波器设计函数用法简介 ............................................................................................ 27 3.3 在 MATLAB 环境下 IIR 数字低通滤波器的设计 ................................................... 28 3.3.1 数字低通滤波器的程序设计 ................................................................................ 28 3.3.2 基于 Simulink 低通数字滤波器仿真 ................................................................... 37 结论与展望 ................................................................................................................................... 41 致谢 ................................................................................................................................................ 42 参考文献 ....................................................................................................................................... 43 附录 A:外文文献及译文 .......................................................................................................... 44 附录 B:主要参考文献的题录及摘要...................................................................................... 48
基于MATLAB的数字滤波器的设计

基于MATLAB 的数字滤波器的设计1 引言数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散线性非时变系统,其输入是一组(由模拟信号取样和量化的)数字量,其输出是经过变换或说处理的另一组数字量。
数字滤波器具有稳定性高、精度高、灵活性大等突出优点。
这里所说的数字滤波器是指理想带通,低通等的频率选择数字滤波器。
数字滤波器设计的一个重要步骤是确定一个可实现的传输函数H(z),这个确定传输函数H(z)的过程称为数字滤波器设计。
数字滤波器的一般设计过程为:(1)按照实际需要,确定滤波器的性能要求(通常在频域内给定数字滤波的性能要求)。
(2)寻找一满足预定性能要求的离散时间线性系统。
(3)用有限精度的运算实现所设计的系统。
(4)通过模拟,验证所设计的系统是否符合给定性能要求。
2 数字滤波器的设计滤波器分为两种,分别为模拟滤波器和数字滤波器。
数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化的过程中,使信号按预定的形式变化。
数字滤波器有多种分类,从数字滤波器功能上分可分为低通、高通、带阻、带通滤波器,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应滤波器(IIR )和有限长冲激响应滤波器(FIR )。
数字滤波器指标:一般来说,滤波器的幅频特性是分段常数的,以低通为例,在通带内逼近于1,阻带内逼近与0,实际设计的滤波器并非是锐截止的通带和阻带两个范围,两者之间总有一个过渡带。
在设计滤波器时事先给定幅频特性允许误差,在通带范围内幅度响应以误差逼近于1,在阻带内幅1σ度响应以误差逼近于0。
2σ (1)πσσ≤≤≤≤≤≤-w w e H w w e H r jwc jw ,2|)(|,1|)(|11式中wc 和wr 分别为通带边界频率和阻带边界频率,wr-wc 为过渡带。
在具体的技术指标中往往用通带波动来表示,用最小阻带衰减At 来表示,其具体的对应公式这里就不详述了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
freqs
模拟滤波器的频率响应
语法:
h = freqs(b,a,w)
[h,w] = freqs(b,a)
[h,w] = freqs(b,a,f)
freqs(b,a)
描述:
freqs 返回一个模拟滤波器的H(jw)的复频域响应(拉普拉斯格式)
请给出分子b和分母a
h = freqs(b, a, w) 根据系数向量计算返回模拟滤波器的复频域响应。
freqs 计算在复平面虚轴上的频率响应h,角频率w确定了输入的实向量,因此必须包含至少一个频率点。
[h, w] = freqs(b, a) 自动挑选200个频率点来计算频率响应h
[h, w] = freqs(b, a, f) 挑选f个频率点来计算频率响应h
例子:
找到并画出下面传递函数的频率响应
Matlab代码:
a = [1 0.4 1];
b = [0.2 0.3 1];
w = logspace(-1, 1);
logspace 功能:生成从10的a次方到10的b次方之间按对数等分的n个元素的行向量。
n如果省略,则默认值为50。
freqs(b, a, w);
You can also create the plot with:
h = freqs(b,a,w);
mag = abs(h);
phase = angle(h);
subplot(2,1,1), loglog(w,mag)
subplot(2,1,2), semilogx(w,phase)
To convert to hertz, decibels, and degrees, use:
f = w/(2*pi);
mag = 20*log10(mag);
phase = phase*180/pi;
算法:
freqs evaluates the polynomials at each frequency point, then divides the numerator response by the denominator response:
s = i*w;
h = polyval(b,s)./polyval(a,s)
一阶低通滤波器频响计算:
%**************************************************************************
%一阶低通滤波器
% 取fH = 1/(2Π*R*C)
% s=jw=j*2Π*f
% 1 1
%RC电路的电压增益AVH = ———————= —————————(传递函数)% 1 + sRC 1 + j(f/fH)
% 1 1
%电压增益的幅值(模)|AVH| = —————————= ————————(幅频响应) % /—————— /————————
% \ / 1 + (wCR)^2 \ / 1 + (f/fH)^2
% V V
%
%电压增益的相位角ΦH = - arctg(wRC) = - arctg(f/fH) (相频响应)
%**************************************************************************
R=10000; %电阻的值
C=0.0000001; %电容的值
fZ=1; %H(e^jw)表达式分子的系数向量
fM=[R*C,1]; %H(e^jw)分母的系数向量
%logspace 功能:生成从10的a次方到10的b次方之间按对数等分的n个元素的行向量。
n如果省略,则默认值为50。
w=logspace(-1,5); %设定频率的变化范围
%freqs 根据系数向量计算返回一个模拟滤波器的H(e^jw)的复频域响应(拉普拉斯格式)
g=freqs(fZ,fM,w); %求其频率响应
%angle()返回复数元素的相角,单位为弧度
x=angle(g); %求相频响应
%abs()对复数返回其幅值
y=abs(g); %求幅频响应
subplot(2,1,1),
%loglog()绘制双对数坐标,semilogx()/semilogy()绘制单对数坐标
semilogx(w,x*180/pi) %画相频响应的曲线
hw=line([0.1,1000],[-45,-45]);
set(hw,'LineWidth',1);
set(hw,'color','r');
xlabel('角频率/ (rad/s)');
ylabel('角度/ °');
grid on;
subplot(2,1,2), %画幅频响应的曲线
semilogx(w,20*log10(y))
h=line([0.1,10000],[-20,-20]);
set(h,'LineWidth',1);
set(h,'color','r');
xlabel('角频率/ (rad/s)'); ylabel('幅值/ dB');
grid on;。