Kaiser窗口FIR滤波器设计估算参数

您所在的位置:网站首页 窗函数设计fir滤波器例题 Kaiser窗口FIR滤波器设计估算参数

Kaiser窗口FIR滤波器设计估算参数

2024-07-17 14:05:30| 来源: 网络整理| 查看: 265

kaiserord函数的句法有如下几种: ①[n,Wn,beta,ftype] = kaiserord(f,a,dev) ②[n,Wn,beta,ftype] = kaiserord(f,a,dev,fs) ③c = kaiserord(f,a,dev,fs,'cell')

kaiserord函数返回一个滤波阶数n和beta参数来指定一个kaiser窗口,供后期的fir1函数使用。给定一组频域中的规范(其实就是给kaiserord函数一些参数,这些参数限定了kaiser窗的一些性质),kaiserord函数将会估计出近似满足给定规范的最小的滤波器阶数。同时,kaiserord函数将会把给定的规范转换为通带和阻带纹波,并将截止频率转换为窗口FIR滤波器设计所需的形式。

[n,Wn,beta,ftype] = kaiserord(f,a,dev) 得到近似阶数n,归一化的频带边缘Wn,并且满足输入规范的权重f、a和dev。f是一个band edge的矢量。a是一个矢量,指定由f定义的带上的期望幅度。f的长度是a的两倍(最小是两倍),f和a一起定义一个期望的分段常数响应函数。dev是一个向量,其大小与a相同,用于指定每个频带的输出滤波器的频率响应与其期望幅度之间的最大允许误差或偏差。dev指定通带纹波和阻带衰减。可以指定dev中的每个数都为正数,表示绝对滤波器增益(不是以分贝为单位)。注意:如果在向量dev中指定了不同的带偏差,则使用最小指定偏差,因为Kaiser窗口方法被限制为产生所有带中具有最小偏差的滤波器。

fir1函数可以使用kaiserord函数返回的阶数n、频率向量Wn、多频带幅度类型ftype和Kaiser窗口参数beta。ftype参数供fir1使用:对于高通滤波器,它等于'高';对于带阻滤波器,它等于'停止'。对于多频带滤波器,当第一频带是阻带(从f = 0开始)时,它可以等于'DC-0'或当第一频带是通带时它可以等于'DC-1'。

要设计一个大致符合kaiser参数f,a和dev给出的规格的FIR滤波器b,可以使用以下命令:

b = fir1(n,Wn,kaiser(n+1,beta),ftype,'noscale')

[n,Wn,beta,ftype] = kaiserord(f,a,dev,fs)使用以Hz为单位的采样频率fs。 如果未指定参数fs,或者将其指定为空向量[],则默认为2 Hz,奈奎斯特频率为1 Hz。 可以使用此语法指定缩放到特定应用程序采样频率的波段边缘。 f中的频带边缘必须从0到fs / 2。

c = kaiserord(f,a,dev,fs,'cell')是一个单元数组,c中元素是fir1的参数。注意:在某些情况下,kaiserord低估或高估了阶数n。 如果过滤器不符合规格,请尝试更高的阶数,例如n+1,n+2等,或尝试更低的阶数例如n-1,n-2等。如果截止频率或奈奎斯特频率接近0,或者如果dev很大(大于10%),则结果不准确。

看到这儿的时候,还是对这些参数很迷糊,不知道这些参数是干什么的、有什么意义。下面是用matlab做仿真,从仿真图上可以慢慢体会到这些参数在滤波器设计时的作用。

举例说明 Kaiser窗口低通滤波器设计

设计一个低通滤波器,通带定义为0到1 kHz,阻带定义为1.5kHz到4 kHz。指定5%的通带纹波和40 dB的阻带​​衰减。

fsamp = 8000; fcuts = [1000 1500]; mags = [1 0]; devs = [0.05 0.01]; [n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp); hh = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale'); freqz(hh)

仿真图如下: 

得到的仿真结果数据如下图:

 

Kaiser窗口带通滤波器设计 

设计一个奇数长度的带通滤波器。请注意,奇数长度表示偶数顺序,因此输入fir1必须是整偶数。

fsamp = 8000; fcuts = [1000 1300 2210 2410]; mags = [0 1 0]; devs = [0.01 0.05 0.01]; [n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp); n = n + rem(n,2); hh = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale'); [H,f] = freqz(hh,1,1024,fsamp); plot(f,abs(H)) grid

仿真图如下:

仿真的到的结果数据如下图所示:

 对参数的说明

现在是不是对kaiserord函数中的参数有了一些认识了? 下面就Kaiser窗口带通滤波器设计这个例子的程序来进行说明。

首先来看fsamp参数,当把这个参数的值改为4000会发生什么事情呢?

设置的fcuts是带边缘频率,最大达到2410,这个值是大于fsamp(fs)的二分之一的,所以报错。 那么把这个参数改为16000会如何呢?

右下角的值变为了8000(fs的二分之一) ,所以这个图显示了fs一半的情况,那还有一半的情况呢?其实另一半和这个情况是一样的,只不过是关于竖轴对称而已。

关于fcuts和mags参数,这个就比较好理解了。我们从带通滤波器设计的第一个仿真图来进行说明。参数设置为fcuts=[1000 1300 2210 2410]、mags=[0 1 0]。我们从图中可以看出,在1300-2210之间是通带,在1000-1300和2210-2410之间是通带向阻带转变的区间。我们可以这么理解,采样率为8000,它的一半为4000,在0-4000这个范围里面设置通或者阻,在这里我们设置阻带为0-1000(mags对应位置的参数为0),1000-1300向通带转变(就是一个过渡带,没有mags参数与之对应),1300-2210为通带(mags对应位置的参数为1),2210-2410向阻带转变,2410-4000为阻带(mags对应位置的参数为0)。如果将fcuts和mags设置为fcuts = [700 800 1200 1300 2700 2800 3200 3300]、mags = [0 1 0 1 0],结果会是怎样呢?如下图所示:

devs参数表示的是某一段波形的平整度。在带通的例子里,如果我们把devs设置为devs=[0.1 0.5 0.1],则仿真出来的图形如下:

可以看到,通带和阻带的部分,起伏都比较大。 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭