EDA365电子论坛网

标题: 基于matlab的各类滤波器设计 [打印本页]

作者: Lionoon    时间: 2020-3-3 13:49
标题: 基于matlab的各类滤波器设计
一. 采用fir11 N$ d$ y  ^' t6 R! t

          采用了窗函数设计方法

$ X* E$ ^/ Y) K6 Q: ^$ `% h

          语法如下:

各项参数意义:


" j* g! r! D. P

          b:返回的FIR滤波器单位脉冲响应,脉冲响应为偶对称,长度为n+1

$ z/ E7 X  K/ h$ o! ?

          n:滤波器的阶数,需要注意的是,设计出的滤波器长度为n+1

' J/ X0 ]7 I! f, o1 v7 s/ k- a, C

          Wn:滤波器的截止频率(归一化)。需要注意的是,wn的取值范围为0《wn《1,1对应为信号采样频率的1/2;

( v9 L$ |: o" l- o

          如果wn是单个数值,且ftype参数为low,则表示设计截止频率为wn的低通滤波器,如ftype参数为high,则表示设计截止频率为wn的高通滤波器;


( O& |) g4 J6 a2 n, Z7 u+ ^

          如果wn是由两个数组成的向量[wn1,wn2],ftype为stop,则表示设计带阻滤波器,ftype为bandpass,则表示设计带通滤波器;

9 B: M- d3 E8 [! l" n

          如果wn是由多个数组成的向量,则表示根据ftype的值设计多个通带或阻带范围的滤波器,ftype为DC-1,表示设计的第一个频带为通带,ftype为DC-0,表示设计的第一个频带为阻带。

; d( I& t( ^" }- F7 F1 r

          4.window:指定使用的窗函数向量,默认为海明窗(Hamming),最常用的窗函数有汉宁窗(Hanning),海明窗(Hamming),布拉克曼窗(Blackman)和凯塞窗(Kaiser),可通过输入help window查找(当凯塞窗函数的贝塔值取7.856时,凯塞窗具有最好的性能)


( T. i+ h% l: b; {3 a: Z! E

          5.noscale:指定是否归一化滤波器的幅度

/ S/ g# z1 d( O% F# \

          注意:fir1函数智能选择滤波器的截止频率和阶数,不能选择滤波器通带,阻带衰减,过渡带宽等参数。

二. 采用kaiserord函数设计1 ]: G0 s4 G8 n: @  p; J+ i

          语法如下:[n,wn,beta,filtype]=kaiserord(f,a,dev,fs)


" N# }) _0 U/ J1 m

          参数意义:

; h7 g/ Q! A# Q0 f2 e1 ?

          f及fs:f是一个向量,其中的元素为待设计滤波器的过渡带的起始点和结束点。如果没有fs参数,f中元素的取值范围为0~1,即相对于采样频率一半的归一化频率;如果有fs参数,则fs为信号采样频率,f中元素即为实际的截止频率。如,设计滤波器的过渡带宽为1000~1200hz,2000~2100hz,信号采样频率为8000hz;如没有设置fs参数,则f=[0.25 0.3 0.5 0.525];如设置fs为8000,则f=[1000 1200 2000 2100]

' R4 ~1 R3 f5 A% K1 H$ y+ O% ~

          a:指定这些频率段的理想幅度值。通带为1,阻带为0.a与f相对应。以上例子,应该设置为a=[1 0 1],则表示设计带阻滤波器。


7 S# B( }& d0 J

          dev:指定通带或阻带内的容许误差。同样是上面的例子,要求通带容许误差为0.01,阻带容许误差为0.02,则dev=[0.01 0.02 0.01]


2 p2 T2 z1 R: Q/ Z! g! C

          n:n为滤波器的最小阶数


  ]4 S  l7 G/ X+ h) u# c( X, D

          wn:得到滤波器的截止频率点


, w. h3 ?9 F* J" i5 e

          beta:计算得到的beta值

' N7 X( P# D; G# M1 r" J; A/ y% c

          ftype:获得滤波器的类型参数

三. 采用fir2函数设计; U6 @; [" z/ a

          使用fir2函数,可以完成任意响应滤波器的设计,即滤波器的幅度频率响应在指定的频段范围内有不同的幅值。,如在0~0.1的理想幅值为1,0.2~0.4的幅值为0.5等。

5 U" o, j# D" z2 [/ Y4 [" Z

          语法如下:


: Y7 G1 }) Y. t2 g5 K' x1 H  r

          参数意义:

: R' Z" l! i- @! v1 m; f

          n及b:滤波器的阶数。注意,根据FIR滤波器的结构特点,当设计的滤波器在归一化频率为1处的幅度值部位0时,n不能为奇数。

* i+ `: u4 T4 d; P

          f及m:f的取值为0~1,对应于滤波器的归一化频率,m用于设置对应频段范围内的理想幅值。如要求的滤波器在0~0.125内幅值为1,0.125~0.25为0.5,0.25~0.5为0.25,0.5~1为0.125,则f=[0 0.125 0.125 0.25 0.25 0.5 0.5 1],m=[1 1 0.5 0.5 0.25 0.25 0.125 0.125]

2 H( y6 S2 Z- Y! d

          windom:指定窗函数的种类,其长度为滤波器长度n+1,默认为海明窗。


" m9 q" T1 R( g* z* X( Z% Q* u$ Q) d

          npt:指定在对幅度响应进行插值的插值点个数,其默认为512


5 Q4 E# l7 V" O! h/ @$ h4 m

          lap:指定对幅度响应进行插值时,对于不连续点转变成连续时的点数,其默认值是25

* L  n( k& x0 u, b/ a

          区别:


4 G6 f8 v1 d6 a6 o8 h# G

          1.stem和plot

5 n( g- X# M$ s8 b' g& |

          stem是离散函数,plot是连续函数


! B4 {* p8 i' G1 H/ V

          常用的信号处理函数:


/ _1 p7 y9 T; F& m! Z

          1. 随机信号函数

" N0 x" U/ m% L- t

          随机信号函数:Rand(1,N)和randn(1,N)

7 X& v1 Y5 {8 A' [) X! h

          2. 方波信号函数


; M9 I7 E/ p$ t: t, V

          Square(T)和Square(T,DUTY),其实DUTY为正值区域在一个周期的比例,如DUTY=50时,产生方波。


: u; j3 C( ^# E6 \( G

          3. 锯齿波信号函数

. b$ u' P5 m8 b5 s* ?4 B2 P

          Sawtooth(T)和sawtooth(T,WIDTH)

& J# b: |$ m0 Z2 N- H; U& p

          4. 正弦波信号函数

* d" ?* y% R- c0 [0 Y$ j! C

          Sin(2*pi*f*t)


0 F: V( O, j" K( g; W. E" [         常用信号分析级处理函数
8 E5 W) O% h; j) H1 u% H) k

          1. 滤波函数

; z7 X5 X& `5 v; N) f

          Filter(b,a,x):分子项系数依次从大到小排列成一个行矩阵b,分母项系数依次从大到小排列成一个行矩阵a,x为输入信号序列。


' M9 y. Y8 @* Y! ?8 T3 K, r* U" r! x

          2. 单位抽样响应函数

: Z# f  x4 ^0 g

          Impz(b,a,p),其中a,b同上,p为计算的数据点数


' b4 E# ^0 `3 @

          3. 频率抽样响应函数

7 g- P: S! G! }  t# z& g6 O) V1 Z

          Freqz(b,a,n,Fs): 其中a,b同上,n为在[0 Fs/2]范围内计算的频率点数量,Fs为采样频率。


9 ]# |& y& {$ a

          4. 零极点增益函数

2 ^; \  H+ q9 U$ _5 m* X5 j

          Root函数计算系统的零极点,zplane函数画出系统的零极点。


! e: c% C3 H2 \2 T
8 n, A2 [; I7 H! }; V( ^7 s
作者: xixihahaheihei    时间: 2020-3-3 16:14
matlab还能做滤波器设计啊




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2