MATLAB_数字信号处理_模拟滤波器_设计巴特沃斯滤波器

巴特沃斯滤波器-百度百科
巴特沃斯滤波器-维基百科
模拟滤波器的设计过程:
1、根据信号处理的要求确定设计指标。
2、选择滤波器类型。
3、计算滤波器阶数。
4、通过计算或者查表确定滤波器系统函数Ha(s)。
常用的典型的模拟滤波器有Butterworth滤波器、Chebyshev滤波器、Ellipse滤波器、Bessel滤波器,其中Butterworth具有单调下降的幅频特性,Chebyshev的幅频特性在通带内或在阻带有波动,可以提高选择性,Bessel在通带内有较好的线性相位特性,Ellipse在通带和阻带内都有波纹,其选择性相对前三种是最好的。
在这里插入图片描述

[Z,P,K]=buttap(N)%可以得到系统函数,计算归一化Butterworth滤波器系统函数中分子多项式和分母多项式向量
[N,wc]=buttord(wp,ws,Rp,As)%求滤波器的阶数N与3dB截止频率wc
wp=2*pi*5e3;ws=2*pi*12e3;Rp=2;As=30;
[N,wc]=buttord(wp,ws,Rp,As,'s');
[B,A]=butter(N,wc,'s');
k=0:511;fk=0:14000/512:14000;
wk=2*pi*fk;
Hk=freqs(B,A,wk);
figure
plot(fk/1000,20*log10(abs(Hk)),'linewidth',3); 
grid on;
xlabel('频率(kHz)’); ylabel(‘幅频特性(dB)')
axis([0,14,-40,5])

MATLAB_数字信号处理_模拟滤波器_设计巴特沃斯滤波器_第1张图片
Butterworth滤波器的缺点:频率特性曲线是频率的单调函数,当通带边界处满足指标要求时,通带内有余量。
更有效的设计方法:选择具有等波纹性的逼近函数,使精确度均匀分布在整个通带或阻带内,可降低阶数。
在这里插入图片描述

wp=2*pi*[4000,7000]; 
ws=2*pi*[2000,9000]; 
Rp=1; As=20; 
%设置带通滤波器指标参数
[N, wc]=buttord(wp,ws,Rp,As,'s');          
%计算带通滤波器阶数N3dB截止频率wc
[B, A]=butter(N,wc,'s');     	
%计算带通滤波器系统函数分子分母多项式系数向量

MATLAB_数字信号处理_模拟滤波器_设计巴特沃斯滤波器_第2张图片

MATLAB_数字信号处理_模拟滤波器_设计巴特沃斯滤波器_第3张图片

%使用函数buttord和butter直接设计巴特沃斯高通滤波器
wp=2*pi*20000;ws=2*pi*10000;Rp=3;As=15;%指标参数
[N,wc]=buttord(wp,ws,Rp,As,'s')%计算阶数N3dB截止频率
[BH,AH]=butter(N,wc,'high','s')%计算系统函数多项式

MATLAB_数字信号处理_模拟滤波器_设计巴特沃斯滤波器_第4张图片
由BH和AH可以写出高通滤波器的系统函数
在这里插入图片描述

wp=1;ws=10;Rp=1;As=20;%指标参数
[N,wc]=buttord(wp,ws,Rp,As,'s');%计算阶数N和3dB截止频率
[B,A]=butter(N,wc,'s');%计算系统函数多项式
wph=2*pi*100;
[BH,AH]=lp2hp(B,A,wph);

MATLAB_数字信号处理_模拟滤波器_设计巴特沃斯滤波器_第5张图片
由系数向量B和A写出归一化低通系统函数,由系数向量BH和AH写出高通滤波器系统函数。

%使用函数buttord和butter直接设计巴特沃斯高通滤波器
wp=pi*200;ws=pi*20;Rp=1;As=20;%指标参数
[N,wc]=buttord(wp,ws,Rp,As,'s')%计算阶数N和3dB截止频率
[BH,AH]=butter(N,wc,'high','s')%计算系统函数多项式

MATLAB_数字信号处理_模拟滤波器_设计巴特沃斯滤波器_第6张图片
由于butter函数采用了归一化处理,所以后者的计算误差小
Butterworth滤波器的设计步骤:
1、根据技术指标,求出滤波器的阶数。
2、求出归一化极点pk,得到归一化系统函数Ha§。也可根据阶数直接查表得到
3、讲Ha§去归一化,得到实际的滤波器系统函数Ha(s)。
MATLAB_数字信号处理_模拟滤波器_设计巴特沃斯滤波器_第7张图片
MATLAB_数字信号处理_模拟滤波器_设计巴特沃斯滤波器_第8张图片

你可能感兴趣的:(数字信号处理,matlab,matlab,数字信号处理)