%本函数利用窗函数法设计带通滤波器,主要用来滤出单一频率,即中心频率

%data是输入的数据, centerFre是带通的中心频率, offsetFre是频偏,最终带通为centerFre +- offsetFre/2

%,sampFre是采样率

function y = BPassFilter(data, centerFre, offsetFre, sampFre)

%设计I型带通滤波器

M = 0 ;    %滤波器阶数(必须是偶数)

Ap = 0.82; %通带衰减

As = 45;   %阻带衰减

Wp1 = 2*pi*(centerFre - offsetFre)/sampFre;  %算出下边频

Wp2 = 2*pi*(centerFre + offsetFre)/sampFre;  %算出上边频

% (1)矩形窗

N = ceil(3.6*sampFre/offsetFre);             %计算滤波器阶数,采用矩形窗,3dB截频在中心频率到上下边频的中点

M = N - 1;

M = mod(M,2) + M ; %使滤波器为I型(偶数)

%单位脉冲响应的下脚标

h = zeros(1,M+1);  %单位冲击响应变量赋初值

for k = 1:(M+1);

if (( k -1 - 0.5*M)==0)

h(k) = Wp2/pi - Wp1/pi;

else

h(k) = Wp2*sin(Wp2.*(k - 1 - 0.5*M))/(pi*(Wp2*(k -1 - 0.5*M))) -

Wp1*sin(Wp1*(k - 1 - 0.5*M))/(pi*(Wp1*(k -1 - 0.5*M)));

end

end

% (2) Hann Window

%   N = ceil(12.4*sampFre/offsetFre);             %计算滤波器阶数,采用矩形窗,3dB截频在中心频率到上下边频的中点

%   M = N - 1;

%   M = mod(M,2) + M ; %使滤波器为I型(偶数)

%       h = zeros(1,M+1);  %单位冲击响应变量赋初值

%     for k = 1:(M+1);

%         if (( k -1 - 0.5*M)==0)

%             h(k) = Wp2/pi - Wp1/pi;

%         else

%

h(k) = Wp2*sin(Wp2.*(k - 1 - 0.5*M))/(pi*(Wp2*(k -1 - 0.5*M))) -

Wp1*sin(Wp1*(k - 1 - 0.5*M))/(pi*(Wp1*(k -1 - 0.5*M)));

%         end

%     end

%   K = 0:M;

%   w = 0.5 - 0.5*cos(2*pi*K/M);

%   h = h.*w;

% (3)Hamming Window

%   N = ceil(14*sampFre/offsetFre);             %计算滤波器阶数,采用矩形窗,3dB截频在中心频率到上下边频的中点

%   M = N - 1;

%   M = mod(M,2) + M ; %使滤波器为I型(偶数)

%     h = zeros(1,M+1);  %单位冲击响应变量赋初值

%     for k = 1:(M+1);

%         if (( k -1 - 0.5*M)==0)

%             h(k) = Wp2/pi - Wp1/pi;

%         else

%

h(k) = Wp2*sin(Wp2.*(k - 1 - 0.5*M))/(pi*(Wp2*(k -1 - 0.5*M))) -

Wp1*sin(Wp1*(k - 1 - 0.5*M))/(pi*(Wp1*(k -1 - 0.5*M)));

%         end

%     end

%   K = 0:M;

%   w = 0.54 - 0.46*cos(2*pi*k/M);

%   h = h.*w;

% (4)Blackman window

%   N = ceil(22.8*sampFre/offsetFre);             %计算滤波器阶数,采用矩形窗,3dB截频在中心频率到上下边频的中点

%   M = N - 1;

%   M = mod(M,2) + M ; %使滤波器为I型(偶数)

%     h = zeros(1,M+1);  %单位冲击响应变量赋初值

%     for k = 1:(M+1);

%         if (( k -1 - 0.5*M)==0)

%             h(k) = Wp2/pi - Wp1/pi;

%         else

%

h(k) = Wp2*sin(Wp2.*(k - 1 - 0.5*M))/(pi*(Wp2*(k -1 - 0.5*M))) -

Wp1*sin(Wp1*(k - 1 - 0.5*M))/(pi*(Wp1*(k -1 - 0.5*M)));

%         end

%     end

%   K = 0:M;

%   w = 0.42 - 0.5*cos(2*pi*K/M) + 0.08*cos(4*pi*K/M);

%   h = h.*w;

y = filter(h,[1],data);

matlab 带通滤波,MATLAB窗函数实现带通滤波器相关推荐

  1. matlab 带通相应,matlab butter 带通

    ? 利用'Help BUTTER'在MATLAB命令窗口 可得到相关信息. 39... matlab功能解释_计算机软件及应用_IT/计算机_专业资料.%设计低通滤波器: [N,Wc...[a,b]= ...

  2. matlab 多通滤波,带通滤波 matlab

    巴特沃斯: 1.带阻滤波器设计 带阻滤波器指标: 阻带上边界频率:5Kz: 阻带下边界频率:7Kz: 通带上边界频率:2Kz: 通带下边界频率:9Kz: 通带最大衰减:1dB: 阻带最小衰减:20dB ...

  3. iir matlab 带通,基于Matlab的带通IIR数字滤波器设计与仿真

    1引言数字滤波技术是数字信号分析.处理技术的重要分支[1].无论是信号的获取.传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传输是至关重要的.在所有的电子系统和各类控制系统中 ...

  4. matlab仿真的窄带带通滤波算法移植单片机没有达到仿真效果-总结

    问题描述: 设计6阶0.1-0.6Hz的带通滤波器,并得到滤波系数 const int NL = 7; const real64_T NUM[7] = {2.282056841956e-07, 0,- ...

  5. 【matlab】butter高通/低通/带通滤波

    butter step1:设计滤波器 即计算滤波器系数[B,A] [B,A] = BUTTER(N,Wn,'high') %高通滤波 [B,A] = BUTTER(N,Wn,'low') %低通滤波 ...

  6. matlab 对图像进行低通滤波,matlab图像处理实现低通滤波

    matlab图像处理实现低通滤波 matlab图像处理实现低通滤波 clc; clear all; img=imread('lena.jpg'); img_noise = imnoise(img, ' ...

  7. python源码 高通滤波、低通滤波、带通滤波

    创作不易,如果此文使您有收获,记得点赞哦! 一. 傅里叶变化原理: https://www.cnblogs.com/wojianxin/p/12529809.html 二. 高通滤波.低通滤波.带通滤 ...

  8. 带通滤波中零相位和最小相位_相位器在Perl 6中的工作方式

    带通滤波中零相位和最小相位 这是关于将代码从Perl 5迁移到Perl 6 的系列文章中的第六篇 .本文着眼于Perl 5中的特殊块 ,例如BEGIN和END ,以及Perl中所谓的相位器在语义上的细 ...

  9. 200Hz-10KHz带通滤波

    200Hz-10KHz带通滤波 本专栏的内容都是作者多年前制作的电路小模块,仅供新手参考,应该都是调通了的,做个纪念.将就看,需要原工程可以联系我.

  10. 【Python气象绘图临摹】处理数据(上):读入输出nc数据、截取夏季/冬季数据、ButterWorth带通滤波、计算方差

    前言 2022.9学习绘图 利用python进行气象绘图,本文为学习绘制期间记录笔记,分为上.下两部分:处理数据和图像绘制.处理数据流程:读入olr资料,截取夏季/冬季数据,进行10-30dButte ...

最新文章

  1. MAX_DEPTH, MAX_ROUTERS and MAX_CHILDREN
  2. html js页面传参
  3. HDU - 2594 Simpsons’ Hidden Talents(KMP的next数组)
  4. 牛客练习赛46 A 华华教奕奕写几何 (简单数学)
  5. execel公式 java工具_PAP-快速开发框架:JAVA 计算器 自定义公式 解决EXCEL计算公式问题...
  6. Java快速提升_java快速复习 一 基础语法
  7. 编写监控脚本,监控集群内所有服务存活状态,内存、磁盘剩余率检测,异常则发送报警邮件...
  8. adafruit1306_Adafruit的2015年最佳开源可穿戴设备
  9. 撬动百亿VRAR产业,让VR们“造”起来
  10. 【QT】QT从零入门教程(七):图像适应窗口
  11. 【转】JavaScript顶级对象参考模型
  12. EditPlus 3使用技巧收集
  13. 计算机网络释疑与解答第六版 pdf,计算机网络释疑与习题解答第5版.pdf
  14. 基于SSH框架的电影订票系统网站的设计与实现
  15. pageoffice如何离线申请_pageoffice常见问题
  16. Traffic Shifting
  17. 一篇文章讲透控制反转和依赖注入
  18. 前端寒假css(100-181)
  19. SQL语句---创建表
  20. iOS及Mac开源资料

热门文章

  1. 客房管理系统C语言——课程设计实习
  2. linux otl mysql_Linux下用OTL操作MySql(包含自己封装的类库及演示样例代码下载)...
  3. MYSQL中linux的前戏
  4. Draco使用笔记(1)——图形解压缩
  5. 杭州电子科技大学acm--2006
  6. lcd改led背光有光斑_LCD改LED背光,详细干活教程!
  7. 机器人学回炉重造(1):正运动学、标准D-H法与改进D-H法的区别与应用(附ABB机械臂运动学建模matlab代码)
  8. 微信小程序使用赞赏码功能
  9. “数字人体”宫颈癌风险智能诊断大会小结
  10. CentOS系统编译部署nginx-http-flv-module模块搭建流媒体服务器