MATLAB切比雪夫带通滤波器

MATLAB切比雪夫带通滤波器原始信号由5Hz,50Hz,110Hz三种频率的正弦信号构成,并含有直流分量。原始信号为:y=sin(5*2*pi*x)+sin(50*2*pi*x)+sin(110*2*pi*x)+0.5;​图1 原始信号 ​使用通带为[10,100]Hz的切比雪夫滤波器,滤波后的信号时域曲线为:图2 滤波信号​对原始信号和滤波信号作傅里叶变换,观察频谱的变化(左图为原始信号…

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

原始信号由5Hz,50Hz,110Hz三种频率的正弦信号构成,并含有直流分量。

原始信号为:y=sin(5*2*pi*x)+sin(50*2*pi*x)+sin(110*2*pi*x)+0.5;​

MATLAB切比雪夫带通滤波器图 1   原始信号 

​使用通带为[10,100]Hz的切比雪夫滤波器,滤波后的信号时域曲线为:

MATLAB切比雪夫带通滤波器图 2   滤波信号

​对原始信号和滤波信号作傅里叶变换,观察频谱的变化(左图为原始信号频谱,有图为滤波信号频谱)。

MATLAB切比雪夫带通滤波器图 3   频谱对比 

​对比图 3 可见,原始信号5Hz,110Hz的交流成分和直流成分都被滤掉了,只保留了50Hz交流成分,并且幅值吻合。

附切比雪夫II型带通滤波器程序

​function [X,Y]=Chebyshev2bp(x,y,fp,fs,Rp,Rs)

% fp 通带边界频率,单位Hz

% fs 阻带边界频率,单位Hz

% Rp 通带波纹,单位分贝(通常取值为1,该值越小通带幅值越平稳,但过渡带宽也越大)

% Rs 阻带衰减,单位分贝(从30附近试取,该值越大阻带幅值越小,但过渡带宽也越大)

wp=fp*2*pi;

ws=fs*2*pi;

[N,Wn]=cheb2ord(wp,ws,Rp,Rs,’s’);  % 根据滤波器要求,求得滤波器最小阶数(计算也越慢)和截止频率(万永革 例5-17)

N

%%% 关于滤波器阶数N的说明

% 理论上,滤波器阶数越高越接近理想滤波器,但滤波器阶数达到一定值后再增加阶数,其逼近程度并不再显著提高,但计算量依然增加,所以理论上不需要无穷大的阶数

% 实际编程中,随着阶数无限升高,更根本的问题是计算机积累误差凸显,将使其与理想滤波器相去甚远,最终时域幅值严重失真,所以实际应用中滤波器阶数也不是越高越好

[z,p,k]=cheb2ap(N,Rs);  %设计Chebyshev II型原型低通滤波器(万永革 例5-8)

[b,a]=zp2tf(z,p,k);  % 将零点极点增益形式转换为传递函数形式

Wo=sqrt(Wn(1)*Wn(2));  % 计算中心点频率(万永革 例5-14)

Bw=Wn(2)-Wn(1);  % 计算频带宽度

[bt,at]=lp2bp(b,a,Wo,Bw);  % 频率转换。将模拟原先低通滤波器转换为带通滤波器

H=[tf(bt,at)];  % 在MATLAB中表示此滤波器(万永革 例5-13)

[Y,X]=lsim(H,y,x);

 

https://www.cnblogs.com/alimy/p/9140695.html

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136146.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Oracle 函数 wm_concat 将列转行 用法 实例

    Oracle 函数 wm_concat 将列转行 用法 实例

  • sqlserver数据库数据迁移_mysql 数据库迁移

    sqlserver数据库数据迁移_mysql 数据库迁移前言:在我们开发某些项目后,难免会遇到更换服务器,重新部署数据库的时候,那么问题来了?究竟怎么如何操作才能达到最佳效果;起源:(1):起初仅仅是为了测试用,所以迁移的时候不必把数据库中的数据全部迁移过去,仅仅需要数据库的架构即可;(2):某些时候需要更换服务器,那么此时已经在内部存储了大量数据了,此时只能把架构+数据全部迁移过来;解说:以本地“Login”数据库为例,帮助大…

    2022年10月19日
  • JVM内存逃逸[通俗易懂]

    JVM内存逃逸[通俗易懂]JVM内存逃逸第一次听到JVM内存逃逸的名词时还是很懵逼的,于是赶紧各种查资料,终于搞懂了这个地方。JVM的内存分配主要在是运行时数据区(RuntimeDataAreas),而运行时数据区又分为了:方法区,堆区,PC寄存器,Java虚拟机栈(就是栈区,官方文档还是叫Java虚拟机栈),本地方法区,而内存逃逸主要是对象的动态作用域的改变而引起的,故而内存逃逸的分析就是分析对象的动态作…

  • BCG库的一个bug[通俗易懂]

    BCG库的一个bug[通俗易懂]作者:朱金灿来源:http://blog.csdn.net/clever101            同事在使用BCG库图表组件(BCG库的版本为BCGCBPRO1510)时遇到一个问题,就是图表标题总是出现乱码,具体如下图:我查看了一下BCG库的源码,发现BCG库的绘制接口是采用D2D的接口。D2D是微软推出的一个二维绘制的com组件,只支持unicode字符,非unicode字符需要转换

  • js常见问题

    js常见问题

  • war包解压与压缩_ls命令linux

    war包解压与压缩_ls命令linux下面要给大家介绍到的就是和war包解压以及java项目打包成war包相关的内容,一起来具体的看看吧!1、javawar打包、解压命令在Window上war包的解压,经常会将工程打包成war包,如下://将当前目录打包成war包jarcvftemp.war*/.命令格式:javacvf打包文件名称要打包的目录打包文件保存路径解压自然就是:jarxvftemp.warjar和li…

发表回复

您的电子邮箱地址不会被公开。

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