简单记录下在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

matlab设计模拟带通滤波器相关推荐

  1. matlab设计模拟高通滤波器

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

  2. matlab设计理想数字带通滤波器,基于matlab的数字带通滤波器课程设计报告

    基于matlab的数字带通滤波器课程设计报告 1 西安文理学院机械电子工程系 课程设计报告 专业班级 08级电子信息工程1班 题 目 基于 MATLAB 的数字带通滤波器 学 号 学生姓名 指导教师 ...

  3. 模拟低通原型滤波器的MATLAB设计

    一.实验目的 1.掌握巴特沃兹.切比雪夫Ⅰ.Ⅱ型和椭圆型模拟滤波器的特性和技术指标. 2.掌握用MATLAB 设计巴特沃兹.切比雪夫Ⅰ.Ⅱ型和椭圆型低通滤波器的方法. 二.实验原理 1.巴特沃兹低通数 ...

  4. [Matlab]双线性变换法设计数字带通滤波器

    测试代码: %%****bin_bp.m*******************%% %% 使用双线性变换法设计带通滤波器 %% 2018年6月13日 16:30:34 %% author:Alimyc ...

  5. matlab模拟角度调制系统的仿真与设计,基于Matlab的模拟通信系统的仿真设计

    <基于Matlab的模拟通信系统的仿真设计>由会员分享,可在线阅读,更多相关<基于Matlab的模拟通信系统的仿真设计(25页珍藏版)>请在人人文库网上搜索. 1.目录摘要-第 ...

  6. 在matlab中实现累乘,如何利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现...

    设计要求 利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现. 1.滤波器指标:过渡带带宽分别为100~300HZ,500~700HZ,阻带允许误差为0.02,通带允许误差为0.01 ...

  7. matlab 设计带阻型陷波滤波器_Q值可调、最大增益恒定的带通滤波器

    带通滤波器(BPF)被广泛用于通带非常窄.通带以外任何其它频率被衰减的应用. 公式(1)是带通滤波器的二阶带通传输函数: 其中,K代表恒定的滤波器增益,Q代表滤波器的品质因数. 在H.Martinez ...

  8. 【信号处理】数字信号处理Matlab设计附GUI界面和报告

    1 简介​ 信号处理是现代信息处理的基本内容,数字信号的处理更是重中之重.数字信号处理的研究内容主要是语音信号和图像信号,而研究语音信号对于现代语音通信有着积极的意义.研究语音信号又分为时域和频域两个 ...

  9. matlab 模拟滤波器设计与实现,转一个讲matlab设计模拟滤波器的文章2(转)

    图5-9 椭圆模拟原型滤波器平方幅频图 程序运行结果见图5-9.可见阶数为4的椭圆滤波器的过渡带已相当窄(陡),但这种特性的获得是以牺牲通带和阻带的单调平滑特性为代价的.可以看到滤波器的阶数越高平方幅 ...

  10. dpsk调制matlab,2dpsk信号调制解调的matlab设计和仿真

    2dpsk信号调制解调的matlab设计和仿真 2DPSK调制与解调系统的仿真 摘 要 设计了差分编码移相键控(2DPSK) 调制解调系统的工作流程图,并利用 Matlab 软件对该系统的动态进行了模 ...

最新文章

  1. 公司电脑安装操作系统遇到的一个坑
  2. python二十四:python练习题
  3. RabbitMQ学习总结(1)——基础概念详细介绍
  4. java你如何保证事务的完整性_基于Java工作事务提醒系统设计.doc
  5. python df共有几行_从zero到hero,一款Python自然语言处理效率利器!
  6. 安装ps时无法验证订阅状态_关于宝马B38/B48发动机无法启动的技术通报
  7. html中body呈现属性,HTML body 标签
  8. 点击按钮对两个div的隐藏与显示进行切换
  9. NullableTypes for .NET
  10. 与骗子约会:浅谈欺诈性约会APP的生态
  11. 东芝打印机共享怎么设置_东芝 e-studio181怎么设置网络打印机
  12. 014基于SSH航空订票系统air
  13. 论文笔记(一):Temporal Network Embedding with High-Order Nonlinear Information
  14. linux 声卡设备文件夹,Linux ALSA声卡驱动之三:PCM设备的创建
  15. 计算机键盘重复,win7系统电脑键盘打字时总是出现重复字符的解决方法
  16. mysql列插入数据
  17. 双机热备ppt_中兴通讯4G产品介绍(PPT)
  18. 富文本编辑器 CKeditor 配置使用+上传图片
  19. qq浏览器打开word 技术原理_实操:QQ群排名技术原理
  20. C语言学习笔记——指针章节

热门文章

  1. SOA 普元EOS 工作流开发
  2. php 不恒等,php运算符==怎么使用以及与===恒等的区别是什么?
  3. t3-财务通计算机名称,用友T3用友通财务软件操作方法
  4. MyEclipse添加反编译工具
  5. awvs 中文手册详细版
  6. B站上的github视频教程笔记(包含两个B站视频,我觉得看这两个B站视频,github从原理到操作都可以会了)
  7. 手把手教你在Linux环境下安装Python3
  8. Python3 安装RobotFramework
  9. Java编程练习题4
  10. matlab调用refprop完全说明,Matlab调用REFPROP完