必威体育Betway必威体育官网
当前位置:首页 > IT技术

使用matlab设计IIR巴特沃斯低通滤波器

时间:2019-09-09 20:40:00来源:IT技术作者:seo实验室小编阅读:54次「手机版」
 

巴特沃斯滤波器

目的和要求

  1. 设计IIR巴特沃斯低通滤波器
  2. 将滤波器用于加噪声信号的处理
  3. 改变参数指标比较不同

实验结果与分析

(1)滤波器频率特性如图

输入信号特性如图:

经过滤波器之后信号特性如图:

(2)改变指标后

Wp=0.3pi, Ws=0.6pi, Rp=0.5, As=40

可以看到过渡带向右移动了一点,并且衰减的过渡变长了,然后通带内频衰减变少了,阻带衰减变大了。这是由于Wp和Ws分别决定了过渡带的起讫位置,而Rp决定了通带内允许的最大衰减,As则决定了阻带允许的最小衰减。 程序代码:

%课本P395
%1、由模拟滤波器指标(Omegap、Omegas、Rp、As)计算巴特沃斯滤波器指标(阶数 N 和 3dB 截止频率Omegac)
%buttord可用于计算低通、高通、带通、带阻巴特沃斯滤波器指标
%Rp,As分别为通带最大衰减和组带最小衰减(dB),'s'表示模拟滤波器
%根据指标,求得符合指标的、滤波器应有的阶数和截止频率
clc;
Td=1;Fs=1/Td;
Wp=0.2*pi;Ws=0.3*pi;
Rp=1;
As=15;
Omegap=2/Td*tan(Wp/2);
Omegas=2/Td*tan(Ws/2);
[N,Omegac]=buttord(Omegap,Omegas,Rp,As,'s');
%2、计算连续系统系数a,b0
%归一化(模板巴特沃斯的截止频率Omegac=1)的模拟滤波器,零点、极点、增益
%级联式,z0,p0,k0分别为零点、极点、增益
%去归一化(求出真正滤波器的Omegac),得到级联式
%级联式转换为一般式(由根求系数):为由一般式为跳板,计算并联式
[z0,p0,k0]=buttap(N);
[Bap,Aap]=zp2tf(z0,p0,k0); 
[b,a]=lp2lp(Bap,Aap,Omegac);
[bz,az]=bilinear(b,a,Fs); 
[H,W]=freqs(bz,az);
figure;
plot(W/pi,20*log10(abs(H))); 
title('巴特沃斯滤波器')
xlabel('频率');
ylabel('增益(dB)');

f1=10;%第一个点频信号分量频率
f2=30;%第二个点频信号分量频率
f3=45;%第三个点频信号分量频率
fs=100;%采样率
T=2;%间隔长度
n=round(T*fs);%采样点个数
t=linspace(0,T,n);
y=cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t)+randn(size(t));
figure;
subplot(2,1,1);
plot(t,y);
title('输入信号时域图像');
xlabel('t/s');
ylabel('V');
fft_y=fftshift(fft(y));
f=linspace(-fs/2,fs/2,n);
subplot(2,1,2);
plot(f,abs(fft_y));
title('输入信号频域图像');
xlabel('f/Hz');
ylabel('V');
axis([ 0 50 0 100]);

figure;
final=filter(bz, az, y); 
subplot(2,1,1);
plot(t,final);  
title( '滤波后信号波形时域波形' );
xlabel('t/s');
ylabel('V');

finall=fftshift(fft(final));
subplot(2,1,2);
plot(f,abs(finall));
title( '滤波后信号频域波形' );
axis([ 0 50 0 100]);

注:课本指程佩青,数字信号处理教程,清华大学出版社。

相关阅读

设计总结:滑块控件

在滑块设计中需要注意“做什么”和“不应该做什么”呢?本文将来探讨下,enjoy~价格范围滑块,360度视图滑块,时间线滑块……在所有这些

十四个创意鼠标设计,深入解析空中鼠标!

曾经有个成为大神的机会,你没有好好珍惜,失去后才追悔莫及,如果上天再给我一次机会,对,就是现在,你一定要好好珍惜!你与大神的差距大概就

互联网公司的创意设计师,都在做什么?

创意人人都有,但创意设计师可不是谁都能当。互联网公司有很多设计师、体验设计师、界面设计师、创意设计师、视觉设计师、等等。体

大数据时代,如何利用数据来提升设计?

当你面对一个艰难的问题时,你是根据什么来进行抉择?直觉?还是遵从内心?难道是喜欢抛硬币?这些方法可能偶尔会给你正确的方法,但它们的有

MATLAB中plot函数的用法

使用plot绘制二维图像本文转自http://blog.sina.com.cn/s/blog_d8f783c90102woqb.html以及https://blog.csdn.net/alvern_zhang/a

分享到:

栏目导航

推荐阅读

热门阅读