一种二阶Biquad滤波器

news2024/11/17 17:30:21

一、首先给出biquad的Z变换函数为:
在这里插入图片描述
为了计算方便可对上式进行归一化处理,分子分母同时除以a0,则得出如下:
在这里插入图片描述
对应的差分方程为:
在这里插入图片描述
二、用户定义参数如下
#ifndef LN2
#define LN2 0.69314718055994530942
#endif
#ifndef PI
#define PI 3.14159265358979323846
#endif
Fs:采样率
f0:中心频率
dbGain:即dbBoost,增益
bandwidth:带宽
三、中间变量如下:
A = pow(10, dbGain /40);
omega = 2 * PI * f0/Fs;
sin = sin(omega);
cos=cos(omega);
alpha = sin * sinh(LN2 /2 * bandwidth * omega /sin);
beta = sqrt(A + A);

四、系数计算:
4.1、低通滤波器
H(s) = 1 / (s^2 + s/Q + 1)

b0 = (1 - cos) /2;
b1 = 1 - cos;
b2 = (1 - cos) /2;
a0 = 1 + alpha;
a1 = -2 * cos;
a2 = 1 - alpha;

4.2、高通滤波器
H(s) = s^2 / (s^2 + s/Q + 1)

b0 = (1 + cos) /2;
b1 = -(1 + cos);
b2 = (1 + cos) /2;
a0 = 1 + alpha;
a1 = -2 * cos;
a2 = 1 - alpha;
4.3、带通滤波器
H(s) = s / (s^2 + s/Q + 1)//(constant 0 dB peak gain)

b0 = alpha;
b1 = 0;
b2 = -alpha;
a0 = 1 + alpha;
a1 = -2 * cos;
a2 = 1 - alpha;
4.4、NOTCH滤波器—Sigma中未介绍,可参考该公式
H(s) = (s^2 + 1) / (s^2 + s/Q + 1)

b0 = 1;
b1 = -2 * cos;
b2 = 1;
a0 = 1 + alpha;
a1 = -2 * cos;
a2 = 1 - alpha;
4.5、peaking滤波器—尖峰滤波,Sigma中未介绍,可参考该公式
H(s) = (s^2 + s*(A/Q) + 1) / (s^2 + s/(A*Q) + 1)

b0 = 1 + (alpha * A);
b1 = -2 * cos;
b2 = 1 - (alpha * A);
a0 = 1 + (alpha /A);
a1 = -2 * cos;
a2 = 1 - (alpha /A);
4.6、低架滤波
H(s) = A * (s^2 + (sqrt(A)/Q)s + A)/(As^2 + (sqrt(A)/Q)*s + 1)

b0 = A * ((A + 1) - (A - 1) * cos + beta * sin);
b1 = 2 * A * ((A - 1) - (A + 1) * cos);
b2 = A * ((A + 1) - (A - 1) * cos - beta * sin);
a0 = (A + 1) + (A - 1) * cos + beta * sin;
a1 = -2 * ((A - 1) + (A + 1) * cos);
a2 = (A + 1) + (A - 1) * cos - beta * sin;
4.7、高架滤波
H(s) = A * (A*s^2 + (sqrt(A)/Q)*s + 1)/(s^2 + (sqrt(A)/Q)*s + A)

b0 = A * ((A + 1) + (A - 1) * cos + beta * sin);
b1 = -2 * A * ((A - 1) + (A + 1) * cos);
b2 = A * ((A + 1) + (A - 1) * cos - beta * sin);
a0 = (A + 1) - (A - 1) * cos + beta * sin;
a1 = 2 * ((A - 1) - (A + 1) * cos);
a2 = (A + 1) - (A - 1) * cos - beta * sin;

参考来源:https://www.cnblogs.com/fellow1988/p/9136346.html

五、频响曲线
var phi=pow((sin(2.0PIf0/(2.0*FS))),2);

var r=pow(b0+b1+b2,2.0)-4.0*(b0b1+4.0b0b2+b1b2)phi+16.0b0b2phiphi(pow(1.0+a1+a2,2.0)-4.0(a1+4.0a1a2)phi+16.0a2phiphi);
r=(r<0)?0:r;

return sqrt( r );

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/184284.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

密码学技术导论篇

密码学技术前言基础术语不要使用保密的密码算法任何密码总有一天都会被破解对称密码&#xff08;共享秘钥密码&#xff09;AES总结公钥密码 --- 用公钥加密&#xff0c;私钥解密秘钥配送问题公钥密码中间人攻击认证单向散列函数--- 消息的指纹单向散列函数的实际应用单向散列函…

python接口自动化——unittest简介(详解)

简介 前边的随笔主要介绍的requests模块的有关知识个内容&#xff0c;接下来看一下python的单元测试框架unittest。熟悉 或者了解java 的小伙伴应该都清楚常见的单元测试框架 Junit 和 TestNG&#xff0c;这个招聘的需求上也是经常见到的。python 里面也有单元 测试框架-unitt…

Lua 垃圾回收

Lua 垃圾回收 参考至菜鸟教程。 Lua 采用了自动内存管理。 这意味着你不用操心新创建的对象需要的内存如何分配出来&#xff0c; 也不用考虑在对象不再被使用后怎样释放它们所占用的内存。 Lua运行了一个垃圾收集器来收集所有死对象&#xff08;即在Lua中不可能再访问到的对象&…

新能源——充电控制

一、交流充电——慢充 交流充电&#xff1a;电网输入给车辆的交流电&#xff0c;220V AC单向电或380V AC三相电。 车载充电机&#xff1a;交流电转化为直流电 二、直流充电——快充 三、充电模式 模式1——标准插座 模式2——带有交流电动汽车供电设备的标准插座 模式3——…

idea maven打包编译报错 java.lang.AssertionError: input.getType

今天使用idea打包编译maven项目&#xff0c;出现如下报错 构建报错时&#xff0c;最先显示的是这个报错。查了一圈下来&#xff0c;我的配置是没有问题的。 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project…

WackoPicko通关教程

7.WackoPicko通关教程 首先进入网站&#xff0c;整体浏览网页&#xff0c;看网站的功能点 本着见框就插的原则&#xff0c;我们可以在搜索框进行查询 构造payload&#xff1a; <script>alert(/xss/)</script> 查看网站&#xff0c;成功触发弹窗 之后进入留言板…

45.Isaac教程--地图编辑器

地图编辑器 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录地图编辑器运行地图编辑器编辑现有地图层添加新的航点或多边形修改现有航点和多边形创建一个新的 WaypointMapLayer创建一个新的 PolygonMapLayer删除图层启用/禁用图层地图编辑…

【Python】request.session的cookie如何导入aiohttp._cookie_jar

request.session的cookie导入aiohttp._cookie_jar的教程 1.起因 我的 kook-valorant-bot 使用了两个开源库&#xff0c;用于riot账户的登录并获取token 其中最主要用的是基于aiohttp的floxay/python-riot-auth&#xff0c;但这个仓库不支持2fa用户&#xff08;开启了邮箱双重…

1999—2019年地级市人口变动数据(增长率\出生人口\死亡人口)

人口数据是我们在各项研究中最常使用的数据&#xff0c;而统计年鉴是人口数据的重要来源&#xff01;之前我们介绍过基于2000-2021年《中国城市统计年鉴》整理的1999年—2020年全国地级市的人口指标&#xff0c;包括户籍人口、常住人口、户数等指标&#xff08;可查看之前发布的…

史上最强strace命令详解

系列文章目录 文章目录系列文章目录前言一、strace是什么&#xff1f;二、strace怎么用总结前言 一、strace是什么&#xff1f; 按照 strace 官网的描述&#xff0c;strace 是一个可用于诊断、调试和教学的 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互&…

网络编程 -- socket 套接字

文章目录socket 套接字UDP 和 TCP 区别1. 有连接 VS 无连接2. 可靠传输 VS 不可靠传输3. 面向字节流 VS 面向数据报4. 全双工UDP 数据报套接字编程TCP 数据报套接字编程socket 套接字 本文就来学习一下 网络编程&#xff0c; 既然谈到了网络编程&#xff0c;那么要如何进行呢 &…

三层交换机报文转发过程

如图所示&#xff0c;假如主机A想访问主机B&#xff0c;首先主机A会将自己的IP地址和子网掩码做与操作,得出网路地址(如:Host-A的IP地址100.1.1.2与自身掩码255.255.255.0做与操作后,得到的网络号是100.1.1.0).然后判断目的IP地址(即Host-B的IP地址)与自己的网络地址是不是在同…

Linux下查看多线程进程下的线程

Linux内核在执行程序时&#xff0c;将所有运行时信息写到了/proc/{pid} 目录下。下面我们以以下python的2线程程序为例&#xff0c;详细说一下Linux系统下如何查看1&#xff0c;某个进程有几个线程2&#xff0c;某个进程里具体有哪些线程我们通过如下代码&#xff08;threaddem…

1606_PC汇编语言_简介以及8086系列的平台信息梳理

全部学习汇总&#xff1a; GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 看得出来外国高校教育中的质量&#xff0c;一个课程涉及到的资料特别庞大。我感觉掌握起来比较缓慢吃力&#xff0c;当然&#xff0c;这不排除语音障碍带来的影响。…

【选择IT培训机构时,我们应该注意的点有哪些?】

之前写过一篇关于是否还有靠谱IT培训机构的内容&#xff0c;很多小伙伴也发表了各自不同的看法&#xff0c;有赞同&#xff0c;有反对&#xff0c;还有讽刺的。其中不免有培训的受害者&#xff0c;想要培训的人&#xff0c;恶意抹黑培训的人&#xff0c;也有少部分培训的受益者…

jenkins docker 部署-02

镜像说明 镜像ponylee/jenkins-centos7:v2.0基于镜像ponylee/jenkins-centos7:v1.0&#xff08;镜像ponylee/jenkins-centos7:v1.0基于jenkins/jenkins:lts-centos7-jdk8, 添加 git maven jdk8 等java部署常用的工具。同时改变运行用户jenkins为root&#xff0c;放大权限&#…

【GD32F427开发板试用】基于GD32F427的纳姆轮小车

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;Ljfly 目标&#xff1a; 做一个四轮驱动小车&#xff0c;实现通过GD32F427控制小车前进&#xff0c;后退&#xff0c;左移&#xff0c;右移&a…

一起自学SLAM算法:12.1 ros-navigation导航系统

连载文章&#xff0c;长期更新&#xff0c;欢迎关注&#xff1a; 可以说ros-navigation是ROS系统中最重要的组件之一&#xff0c;绝大部分自主移动机器人的导航功能都是基于ros-navigation导航系统实现的。下面将从原理分析、源码解读和安装与运行这3个方面展开讲解ros-navigat…

一篇五分生信临床模型预测文章代码复现——FIgure 9.列线图构建,ROC分析,DCA分析 (一)

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

拉伯证券|2023年净利“超十倍潜力股”揭秘

本年成绩有望暴增的个股有哪些&#xff1f; 2022年各首要指数调整较大&#xff0c;但2023年开年以来A股体现继续强势&#xff0c;三大股指到目前涨幅均超5%&#xff0c;创业板指更是大涨超10%&#xff0c;医药、消费、科技等赛道轮番体现。 外资也对A股进行新一轮的加仓调仓&a…