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

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

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

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


相关推荐

  • 如何关闭占用的端口程序[通俗易懂]

    如何关闭占用的端口程序[通俗易懂]1、确认被占用的端口号,如:80、443等端口2、查看占用上述端口的程序id;步骤:a、快捷键win+R或者点击运行,输入cmd,出现cmd命令框;b、输入netstat-nao|findstr443,查看第二列ip后面数字为443的程序,最后一列是PID(程序id);——即查看含有443字符串的程序;3、关闭进程a、记录端口号为443的PID值,打开任

    2022年7月20日
    83
  • 什么是计算机补码_二进制原码反码补码

    什么是计算机补码_二进制原码反码补码计算机中数字都是用二进制来表示的,有三种编码方式:原码、反码、补码,而计算中用到最多的就是补码,原因是什么呢?让我们来看一下这三种方式的具体表示吧原码原码的表达很简单,最高位为符号位,0表示正数,1表示负数。其它位即为绝对值的二进制表示,非常直观。但是使用原码存在哪些问题呢?0的表示存在二义性如果按照上述的表示方式,那么0就可以分为+0和-0两种表示。即以8位字长来说+0的原码为00000000…

    2022年10月21日
    3
  • Python 十进制转换为二进制 高位补零

    Python 十进制转换为二进制 高位补零用到的内置函数为 format 具体方法如下 gt gt gt a 2 gt gt gt b 08b format a 输出结果为八位二进制 且高位补零 如果是 gt gt gt b 8b format a 输出结果为八位二进制 但是高位不补零 需要注意的是 输出的结果类型都为 str 类型

    2025年7月31日
    0
  • java之jce「建议收藏」

    java之jce「建议收藏」一、简介JavaCryptographyExtension(JCE)是一组包,它们提供用于加密、密钥生成和协商以及MessageAuthenticationCode(MAC)算法的框架和实现。它提供对对称、不对称、块和流密码的加密支持,它还支持安全流和密封的对象。它不对外出口,用它开发完成封装后将无法调用。在早期JDK版本中,由于受美国的密码出口条例约束,Java中涉及加解密功能…

    2022年6月16日
    95
  • Spring源码 – 核心接口BeanPostProcessor[通俗易懂]

    Spring源码 – 核心接口BeanPostProcessor[通俗易懂]Spring源码-核心接口BeanPostProcessor

    2022年8月12日
    6
  • python opencv入门 光流法(41)

    python opencv入门 光流法(41)内容来自OpenCV-PythonTutorials自己翻译整理目标:了解光流的概念,使用lucas-kanade估算方法使用cv2.calcOpticalFlowPyrLK()方法来追踪视频中的特征点光流:光流的概念是指在连续的两帧图像当中,由于图像中的物体移动或者摄像头的移动而使得图像中的目标的运动叫做光流。(说简单点,考虑摄像头不会动的情况,就是一个视频当中有一个…

    2022年7月23日
    17

发表回复

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

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