FIR 带通滤波器设计

FIR 带通滤波器设计  %本文将针对一个含有5Hz、15Hz和30Hz的混和正弦波信号,设计一个FIR带通滤波器,%给出利用MATLAB实现的三种方法:程序设计法、FDATool设计法和SPTool设计法。参%数要求:采样频率fs=100Hz,通带下限截止频率fc1=10Hz,通带上限截止频率fc2=20Hz,过渡带宽6Hz,通阻带波动0.01…

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

 

FIR 带通滤波器设计

FIR 带通滤波器设计

 

%本文将针对一个含有 5Hz 、 15Hz 和 30Hz 的混和正弦波信号, 设计一个 FIR 带通滤波器,
%给出利用 MATLAB 实现的三种方法: 程序设计法、 FDATool 设计法和 SPTool 设计法。 参
%数要求:采样频率 fs=100Hz ,通带下限截止频率 fc1=10 Hz ,通带上限截止频率 fc2=20Hz ,过渡带宽 6 Hz,通阻带波动 0.01 ,采用凯塞窗设计。
fc1 =10 ;
fc2 =20 ;
fs=100 ;
[n,Wn,beta,ftype]=kaiserord([7 13 17 23],[0 1 0],[0.01 0.01 0.01],100);
%得出滤波器的阶数 n=38 , beta=3.4
w1=2*fc1/fs; w2=2*fc2/fs;% 将模拟滤波器的技术指标转换为数字滤波器的技术指
window=kaiser(n+1,beta);% 使用 kaiser 窗函数
b=fir1(n,[w1 w2],window); %使用标准频率响应的加窗设计函数 fir1
freqz(b,1,512);% 数字滤波器频率响应
t = (0:100)/fs;
s = sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);% 混和正弦波信号
sf = filter(b,1,s); %对信号 s 进行滤波

 

采用[n,Wn,beta,ftype] = kaiserord(f,a,dev)函数来估计滤波器阶数等,得到凯塞窗滤波器。

  这里的函数kaiserord(f,a,dev)或者kaiserord(f,a,dev,fs):

  f为对应的频率,fs为采样频率;当f用数字频率表示时,fs则不需要写。

  a=[1 0]为由f指定的各个频带上的幅值向量,一般只有0和1表示;a和f长度关系为(2*a的长度)- 2=(f的长度)

  devs=[0.05 10^(-2.5)]用于指定各个频带输出滤波器的频率响应与其期望幅值之间的最大输出误差或偏差,长度与a相等。

 

其中fir1(n,Wn)归一化频率的含义

Wn是一个归一化频率,在滤波器设计中是用fs/2进行归一。

在fir1滤波器设计时采用的是归一化频率。实际采样频率为fs,实际的截止频率为fc,设归一化截止频率为fcm,fcm=fc/(fs/2)。

filter函数   参考 https://blog.csdn.net/u012111020/article/details/73744234

b=fir1(n,Wn)返回截止频率为Wn的N阶FIR低通滤波系数行列向量b。

 

 

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

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

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

相关推荐

  • 程序心形曲线绘制_java输出心形图案

    程序心形曲线绘制_java输出心形图案代码如下:importjava.awt.Color;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Toolkit;importjavax.swing.JFrame;@SuppressWarnings(“serial”)publicclassDemoextendsJFrameimplementsRunna…

    2022年10月16日
  • win10 专业工作站激活码【在线破解激活】[通俗易懂]

    win10 专业工作站激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
  • matlab画三维图如何更改颜色,MATLAB画三维图像「建议收藏」

    matlab画三维图如何更改颜色,MATLAB画三维图像「建议收藏」姓名:刘肖珊学号:19021210919【嵌牛导读】:matlab是一款功能强大的编程软件,三维图像常用,文章介绍matlab如何画三维图像【嵌牛鼻子】:MATLAB、三维图【嵌牛提问】:matlab如何画三维图像?【嵌牛正文】:当我们学习surface命令时,已经看到了三维作图的一些端倪。在matlab中我么可以调用mesh(x,y,z)函数来产生三维图像。首先,我们用z=cos(x)sin(…

    2022年10月11日
  • php中函数 isset(), empty(), is_null() 的区别[通俗易懂]

    php中函数 isset(), empty(), is_null() 的区别

    2022年2月9日
  • 归并排序

    归并排序概要本章介绍排序算法中的归并排序。内容包括:1.归并排序介绍2.归并排序图文说明3.归并排序的时间复杂度和稳定性4.归并排序实现4.1归并排序C实现4.2归并排序C++实现4.3归并排序Java

    2022年7月3日
  • sm羞耻任务_羞耻驱动的发展

    sm羞耻任务_羞耻驱动的发展sm羞耻任务我一直渴望写出精巧的代码。在完成所有生产代码配对的日常工作中,我认为我们的质量很高。但是令人惊讶的是,当您独自编码时,您多么容易原谅自己并陷入不良习惯。配对时羞耻是品质背后的动力吗?我们有许多使用EasyMock编写的古老的单元测试;我们所有最近的单元测试都使用JMock。这笔小小的技术债务意味着,如果您要更改仅适用于EasyMock测试的代码,则首先必须决…

    2022年9月15日

发表回复

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

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