求 MATLAB 巴特沃思 低通滤波器程序。

求 MATLAB 巴特沃思 低通滤波器程序。,第1张

冲击响应不变法函数

[bz,az]=impinvar(b,a,Fs)

[bz,az]=impinvar(b,a)

例如:取采样频率f=1KHz,用双线性变换法设计五阶Butterworth低通数字滤波器,绘出模拟滤波器与数字滤波器的幅频与相频特性,MATLAB程序如下:

[z,p,k]=buttap(5) % 设计五阶Butterworth低通模拟滤波器原型

[zd,pd,kd]=bilinear(z,p,k,1000)%双线性变换得到低通数字滤波器

[b,a]=zp2tf(zd,pd,kd)%滤波器类型转换

w=128

freqs(b,a,w)

figure

freqz(b,a,w)

实例:1、设带通滤波镇拆器的滤波器中心频率为W0=2KHz,带宽为BW=100Hz, 取采样频率f=10kHZ,用脉冲相应不变法设计,设计五阶带通Butterworth数字滤波器,绘出数字滤波器的频谱特性

[z,p,k]=buttap(5)

[b,a]=zp2tf(z,p,k)

w=128

w0=2000

[bt,at]=lp2bp(b,a,w0,10000)

[bz,az]=impinvar(b,a,w)

freqz(bt,at,w)

2、直接设计五阶butterworth带通滤波器,绘出频谱图。(高端与低端截止频率分别为0.2和0.9)

figure

w=[0.2,0.9]

[b,a]=butter(5,w)

freqz(b,a)

3、设高通截止频率为w0=10000Hz, 取采样频率f=20000,用指正双线性变换法设计六阶高通Butterworth数字滤波器,绘出数字滤波器的频谱特性

[z,p,k]=besselap(6)

[b,a]=zp2tf(z,p,k)

w=128

w0=10000

[bt,at]=lp2hp(b,a,w0)

[bz,az]=bilinear(bt,at,20000)

freqz(bz,az,w)

4、取采样频率f=100Hz,用双线性变换法设计五阶Butterworth低通数字滤波器,绘出模拟滤波器与数字滤波器的幅频与相频特性

 御逗枣 [z,p,k]=buttap(5)

[zd,pd,kd]=bilinear(z,p,k,100)

[b,a]=zp2tf(zd,pd,kd)

w=128

freqs(b,a,w)

figure

freqz(b,a,w)

具体的得根据情况自己确定

y=0.03 0.14 0.01 0.20 0.09 0.12 0.11 0.20 0.23 0.20 0.14 0.12 0.17 0.13 0.07 0.10就是上面代码的yt,

你可以这么写:

clc,clear

y=[0.03 0.14 0.01 0.20 0.09 0.12 0.11 0.20 0.23 0.20 0.14 0.12 0.17 0.13 0.07 0.10]

yt=y'n=length(yt)

alpha=[0.2 0.5 0.8]m=length(alpha)

yhat(1,1:m)=(yt(1)+yt(2))/2

for i=2:n

yhat(i,:)=alpha*yt(i-1)+(1-alpha).*yhat(i-1,:)

end

yhat

err=sqrt(mean((repmat(yt,1,m)-yhat).^2))

xlswrite('lilv.xls',yhat)

yhat2014=alpha*yt(n)+(1-alpha).*yhat(n,:)

x是时间,在这里没什么用

最后运行结果是:

yhat =

0.08500.08500.0850

0.07400.05750.0410

0.08720.09880.1202

0.07180.05440.0320

0.09740.12720.1664

0.09590.10860.1053

0.10070.11430.1171

0.10260.11210.1114

0.12210.15610.1823

0.14370.19300.2205

0.15490.19650.2041

0.15190.16830.1528

0.14560.14410.1266

0.15040.15710.1613

0.14640.14350.1363

0.13110.10680.0833

err =

0.06320.06430.0718

yhat2014 =

0.12490.10340.0967

%当1KHz≤f≤2KHz时,衰减至少为18 dB,当f≤500Hz,肆巧缺f≥3KHz时,波纹在3dB内,采样频率fs为10KHz。

%要求采用巴特沃斯型模拟滤波器进行设计,画出所设计裂辩滤波器的幅度特性曲线,并写出其系统函数H(z)的表达式宽友。 f和pi之间怎么转化呢?f≤500Hz,f≥3KHz这在程序中怎么表示?求完整程序 急!!!

clear all

close all

clc

fs=10*1e+3

fsl=1*1e+3

fsh=2*1e+3

% fpl=500

fpl=800

fph=3*1e+3

alphal=18

alphah=3

ws1=fsl/fs

ws2=fsh/fs

wp1=fpl/fs

wp2=fph/fs

wp=[wp1 wp2]

ws=[ws1 ws2]

[n,Wn] = buttord(wp,ws,alphah,alphal)

[z,p,k] = buttap(n)

b=poly(z)

a=poly(p)

Wo=sqrt(2*pi*fpl*2*pi*fph)

Bw=2*pi*fph-2*pi*fpl

[bt,at] = lp2bs(b,a,Wo,Bw)

[numd,dend] = bilinear(bt,at,fs)

[H,w]=freqz(numd,dend)

plot(w/pi*fs/2,abs(H))

grid


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12361820.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存