常用模拟低通滤波器的设计~经典 IIR 滤波器之巴特沃斯滤波器

目录

常用模拟低通滤波器的设计——巴特沃斯(Butterworth)滤波器

1、确定系统函数的极点

2、巴特沃斯(Butterworth)滤波器

2.1、buttap 函数

2.2、buttord 函数

2.3、butter 函数


常用模拟低通滤波器的设计~经典 IIR 滤波器之巴特沃斯(Butterworth)滤波器

       滤波器是一种具有频率选择作用的电路或运算处理系统,它具有区分区分输入信号的各种不同频率成分的功能,具有滤除噪声和分离各种不同信号的功能。综合一个滤波器的基本步骤分为逼近和实现。逼近方法有巴特沃斯逼近、切比雪夫逼近、椭圆逼近和贝塞尔逼近。这些逼近方法可直接用于低通滤波器综合,而对于高通、带通、带阻滤波器综合,要借助于频带变换。

1、确定系统函数的极点

      模拟滤波器的设计以几种典型的低通滤波器的原型函数为基础,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器等,有现成的设计数据以及曲线和图表可查,其设计工作量比较小。在设计一个IIR数字滤波器时,用户可以根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。

2、巴特沃斯(Butterworth)滤波器

       巴特沃斯(Butterworth)滤波器又称为“最平”的幅频响应滤波器,该滤波器的特点是在通带内具有最大平坦的幅度且随频率升高呈单调减小。

2.1、buttap 函数

2.2、buttord 函数

2.3、butter 函数

        N阶低通巴特沃斯滤波器的特性函数(振幅平方函数)为:

 【例5-8】采样速率为8000Hz,要求设计一个低通滤波器,fp=2100Hz,fs=2500Hz,Rp=3dB,Rs=25dB。

% 【例5-8】采样速率为8000Hz,要求设计一个低通滤波器,
% fp=2100Hz,fs=2500Hz,Rp=3dB,Rs=25dB。
clc, clear, close all
fn = 8000; fp = 2100; fs = 2500; Rp = 3; Rs = 25;
Wp = fp/(fn/2); %计算归一化角频率
Ws = fs/(fn/2);
% 计算阶数和截止频率
[n,Wn] = buttord(Wp,Ws,Rp,Rs);
% 计算H(z)分子、分母多项式系数
[b,a] = butter(n,Wn);
% 计算H(z)的幅频响应, freqz(b,a,计算点数,采样频率)
[H,F] = freqz(b,a,1000,8000);
subplot(211);
plot(F,20*log10(abs(H)));
xlabel('频率(Hz)'); ylabel('幅值(dB)');
title('低通滤波'); axis([0 4000 -30 3]);
grid on;

subplot(212);
pha = angle(H)*180/pi;
plot(F,pha);
xlabel('频率(Hz)'); ylabel('相位');
grid on;

  【例5-9】采样速率为8000Hz,要求设计一个高通滤波器,fp=1000Hz,fs=700Hz,Rp=3dB,Rs=20dB。

% 【例5-9】采样速率为8000Hz,要求设计一个高通滤波器,fp=1000Hz,fs=700Hz,Rp=3dB,Rs=20dB。
% clc, clear, close all
figure
fn = 8000; fp = 1000; fs = 700; Rp = 3; Rs = 20;
Wp = fp/(fn/2); %计算归一化角频率
Ws = fs/(fn/2);
% 计算阶数和截止频率
[n,Wn] = buttord(Wp,Ws,Rp,Rs);
% 计算H(z)分子、分母多项式系数
[b,a] = butter(n,Wn,"high");
% 计算H(z)的幅频响应, freqz(b,a,计算点数,采样频率)
[H,F] = freqz(b,a,1000,8000);
subplot(211);
plot(F,20*log10(abs(H)));
axis([0 4000 -30 3]);
xlabel('频率(Hz)'); ylabel('幅值(dB)');
title('高通滤波'); 
grid on;
subplot(212);
pha = angle(H)*180/pi;
plot(F,pha);
xlabel('频率(Hz)'); ylabel('相位');
grid on;

【例5-10】采样速率为10000Hz,要求设计一个带通滤波器,fp=[1000Hz,1500Hz],fs=[600Hz,1900Hz],Rp=3dB,Rs=20dB。

% 【例5-10】采样速率为10000Hz,要求设计一个带通滤波器,fp=[1000Hz,1500Hz],
% fs=[600Hz,1900Hz],Rp=3dB,Rs=20dB。
% clc, clear, close all
figure
fn = 10000; fp=[1000,1500]; fs=[600,1900]; Rp = 3; Rs = 20;
Wp = fp/(fn/2); %计算归一化角频率
Ws = fs/(fn/2);
% 计算阶数和截止频率
[n,Wn] = buttord(Wp,Ws,Rp,Rs);
% 计算H(z)分子、分母多项式系数
[b,a] = butter(n,Wn);
% 计算H(z)的幅频响应, freqz(b,a,计算点数,采样频率)
[H,F] = freqz(b,a,1000,10000);
subplot(211);
plot(F,20*log10(abs(H)));
axis([0 5000 -30 3]);
xlabel('频率(Hz)'); ylabel('幅值(dB)');
title('高通滤波'); 
grid on;
subplot(212);
pha = angle(H)*180/pi;
plot(F,pha);
xlabel('频率(Hz)'); ylabel('相位');
grid on;

 【例5-11】采样速率为10000Hz,要求设计一个带阻滤波器,fp=[1000Hz,1500Hz],fs=[1200Hz,1300Hz],Rp=3dB,Rs=30dB。

% 【例5-11】采样速率为10000Hz,要求设计一个带阻滤波器,fp=[1000Hz,1500Hz],
% fs=[1200Hz,1300Hz],Rp=3dB,Rs=30dB。
% clc, clear, close all
figure
fn = 10000; fp = [1000,1500]; fs = [1200,1300]; Rp = 3; Rs = 30;
Wp = fp/(fn/2); %计算归一化角频率
Ws = fs/(fn/2);
% 计算阶数和截止频率
[n,Wn] = buttord(Wp,Ws,Rp,Rs);
% 计算H(z)分子、分母多项式系数
[b,a] = butter(n,Wn,'stop');
% 计算H(z)的幅频响应, freqz(b,a,计算点数,采样频率)
[H,F] = freqz(b,a,1000,10000);
subplot(211);
plot(F,20*log10(abs(H)));
axis([0 5000 -35 3]);
xlabel('频率(Hz)'); ylabel('幅值(dB)');
title('高通滤波'); 
grid on;
subplot(212);
pha = angle(H)*180/pi;
plot(F,pha);
xlabel('频率(Hz)'); ylabel('相位');
grid on;

  • 15
    点赞
  • 177
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值