matlab设计模拟带通滤波器

matlab设计模拟带通滤波器简单记录下在matlab上如何设计出模拟的带通滤波器,包括:巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器、椭圆型滤波器。代码如下:%设计带通滤波器%巴特沃斯、切比雪夫I型、切比雪夫II型、椭圆型滤波器clearall;%wp和ws分别是通带和阻带的频率(截止频率)。当wp>ws时,为高通滤波器;当wp和ws为二元矢量时,为带通或带阻滤波器,这是求出的Wn也是二元…

大家好,又见面了,我是你们的朋友全栈君。

简单记录下在matlab上如何设计出模拟的带通滤波器,包括:巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器、椭圆型滤波器。
代码如下:

%设计带通滤波器
%巴特沃斯、切比雪夫I型、切比雪夫II型、椭圆型滤波器


clear all;

%wp和ws分别是通带和阻带的频率(截止频率)。当wp和ws为二元矢量时,为带通或带阻滤波器,这时求出的Wn也是二元矢量;当wp和ws为一元矢量时,为低通或高通滤波器:当wp<ws时为低通滤波器,当wp>ws时为高通滤波器。

%wp和ws为二元矢量
wp=[0.1*2*pi 0.15*2*pi];                %设置通带频率
ws=[0.05*2*pi 0.2*2*pi];                %设置阻带频率

Rp=1;                                   %设置通带波纹系数
Rs=20;                                  %设置阻带波纹系数        

%巴特沃斯滤波器设计
[N,Wn]=buttord(wp,ws,Rp,Rs,'s');        %求巴特沃斯滤波器阶数,输出参数N代表满足设计要求的滤波器的最小阶数,Wn是等效低通滤波器的截止频率
%无论是高通、带通和带阻滤波器,在设计中最终都等效于一个截止频率为Wn的低通滤波器(我现在也不是很理解为啥是这样,毕竟我也是刚接触滤波器)
fprintf('巴特沃斯滤波器 N= %4d\n',N);    %显示滤波器阶数
[bb,ab]=butter(N,Wn,'s');               %求巴特沃斯滤波器系数,即求传输函数的分子和分母的系数向量
W=0:0.01:2;                             %设置模拟频率
[Hb,wb]=freqs(bb,ab,W);                 %求巴特沃斯滤波器频率响应
plot(wb/pi,20*log10(abs(Hb)),'b');      %作图
hold on

%切比雪夫I型滤波器设计
[N,Wn]=cheb1ord(wp,ws,Rp,Rs,'s');       %求切比雪夫I型滤波器阶数
fprintf('切比雪夫I型滤波器 N= %4d\n',N); %显示滤波器阶数
[bc1,ac1]=cheby1(N,Rp,Wn,'s');          %求切比雪夫I型滤波器系数,即求传输函数的分子和分母的系数向量
[Hc1,wc1]=freqs(bc1,ac1,W);             %求切比雪夫I型滤波器频率响应
plot(wc1/pi,20*log10(abs(Hc1)),'k');    %作图

%切比雪夫II型滤波器设计
[N,Wn]=cheb2ord(wp,ws,Rp,Rs,'s');       %求切比雪夫II型滤波器阶数
fprintf('切比雪夫II型滤波器 N= %4d\n',N);%显示滤波器阶数
[bc2,ac2]=cheby2(N,Rs,Wn,'s');          %求切比雪夫II型滤波器系数,即求传输函数的分子和分母的系数向量
[Hc2,wc2]=freqs(bc2,ac2,W);             %求切比雪夫II型滤波器频率响应
plot(wc2/pi,20*log10(abs(Hc2)),'r');    %作图

%椭圆型滤波器设计
[N,Wn]=ellipord(wp,ws,Rp,Rs,'s');       %求椭圆型滤波器阶数
fprintf('椭圆型滤波器 N= %4d\n',N);      %显示滤波器阶数
[be,ae]=ellip(N,Rp,Rs,Wn,'s');          %求椭圆型滤波器系数,即求传输函数的分子和分母的系数向量
[He,we]=freqs(be,ae,W);                 %求椭圆型滤波器频率响应
%作图
plot(we/pi,20*log10(abs(He)),'g');
axis([0 max(we/pi) -30 2]);
legend('巴特沃斯滤波器','切比雪夫I型滤波器','切比雪夫II型滤波器','椭圆型滤波器');
xlabel('角频率{\omega}/{\pi}');
ylabel('幅值/dB');
line([0 max(we/pi)],[-20 -20],'color','k','linestyle','--');%在画布上画线
line([0 max(we/pi)],[-1 -1],'color','k','linestyle','--');
line([0.2 0.2],[-30 2],'color','k','linestyle','--');
line([0.3 0.3],[-30 2],'color','k','linestyle','--');

运行结果如下:

巴特沃斯滤波器 N=    4
切比雪夫I型滤波器 N=    3
切比雪夫II型滤波器 N=    3
椭圆型滤波器 N=    2

在这里插入图片描述

注:
1、求各种滤波器的传输函数的分子和分母向量系数的函数,例如:

[bc1,ac1]=cheby1(N,Rp,Wn,'s');          %求切比雪夫I型滤波器系数,即求传输函数的分子和分母的系数向量

这里的函数cheby1()中的参数为

cheby1(N,Rp,Wn,'type','s');

其中注意’type’可为高通:’high’或带阻:‘stop’,如果不填的话,默认是低通或者带通,至于是低通还是带通,主要看你前面的wp和ws是二元矢量还是一元矢量:二元矢量对应带通,一元矢量对应低通。

2、matlab中的line()函数简单介绍:
https://blog.csdn.net/qq_36554582/article/details/83352155

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135954.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 大数据开发的工具有哪些?

      作为一个大数据开发人员,每天要与使用大量的大数据工具来完成日常的工作,那么目前主流的大数据开发工具有哪些呢?下面为大家介绍下主流的大数据开发工具。1.HadoopHadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop是一个能够对大量数据进行分布…

    2022年4月8日
    76
  • B2C电商系统源码 在线商城源码[通俗易懂]

    B2C电商系统源码 在线商城源码[通俗易懂]B2C产品采用SSH+Jquery框架开发。具备构建大型电商平台的底层技术体系。支持Oracl与Mysql等多个主流数据库。一、商品系统支持实物与虚拟商品体系。无限制级商品分类与扩展。智能商品模板、个性定义商品属性与属性继承与关联。商品与资讯的智能关联、商品关键字维护,SEO效果更为高效、精准。二、订单系统完善订单流管理、精准跟踪状态与执行人分派。支持来自电商、电话以及渠道的多订单体系。支持订单全流程服务(订单打印、发运、到货、退货、换货、拒收)等。三、会员系统围绕会员精细服

    2022年9月19日
    0
  • 就业更看重本科学历还是研究生学历(大厂面试的员工什么水平)

    前言我是一个普通本科出身的Android程序员,我的学校也不过就是一个普通二本。嗯,我的学弟学妹们也是一样的,都是普通二本。但是和我不同的是,现在的社会越来越浮躁了,浮躁的让人沉不下心认真做事,让人忍不住去想各种有的没的。比如我的这些学弟学妹们。我已经不止一次收到来自他们的私信了,他们问的内容,无一不是表达对自己学历的自卑和对即将离开学校的自己的不自信,还有对面试被拒的伤心。千篇一律的问题,基本内容如下:面试挂了,大厂面试到底更看重学历还是技术?我这样的学历在求职中有什么需要注意点的点吗?

    2022年4月11日
    81
  • 可浮动placeholder,让你的登录不再枯燥

    可浮动placeholder,让你的登录不再枯燥前言在登录twitter的时候发现他的输入框的placeholder是可以浮动的。当输入框获取到焦点的时候,placeholder会跑到上面去。我觉得这样的登录方式的好处是:可以减少一个label,同时往上浮动又可以保证用户在输入的时候知道输入什么内容。pointer-eventspointer-events属性设置HTML元素如何响应鼠标/触摸事件/单击/点击事件以及光标是否可见。虽然pointer-events属性有11个可能的值,但其中8个值都用于SVG。任何HTMl元素的三个

    2022年7月13日
    13
  • 在线发送免费传真(五个网上免费发传真网站介绍)

    在线发送免费传真(五个网上免费发传真网站介绍)首先我们看到的是免费网络传真:faxZERO  官方网址是:http://faxzero.com/  这个免费传真适用于美国和加拿大,发送的传真上会自动附上广告,每次发传真只能发三页,也每天只可以发两次。  faxZERO无需你拥有一台传真机,也不需要注册用户即可在线发送免费网络传真,每天可发送2个免费网络传真,每个免费网络传真最多可发3个页面,支持.DOC(Word)和.

    2022年6月28日
    134
  • merge函数_c语言中的merge函数「建议收藏」

    merge函数_c语言中的merge函数「建议收藏」展开全部merge()是C++标准库的函数,主要实现函数的排序和合并,不仅仅是合并,具体要求参e5a48de588b63231313335323631343130323136353331333431373261照标准库。#include”stdafx.h”#include#include#include#includeusingnamespacestd;boolcomp(constinti,con…

    2022年6月11日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号