低通滤波器和高通滤波器的程序实现原理推导

article/2025/9/14 0:03:31

傅立叶变换,拉普拉斯变换和Z变换

对于信号分析而言,傅立叶变换是必不可少的,我们都知道傅立叶变换是把系统从时域变换到频域进行分析,那么拉普拉斯变换和Z变换是干什么的?简单的来说,由于傅里叶变换的收敛有一个狄利克雷条件,要求信号绝对可积/绝对可和。对于那些不符合狄利克雷条件的信号该怎么办呢,我们将频域的概念扩展到复频域.首先要说明的是傅立叶变换大致有两种,连续时间的傅立叶变换(CTFT)和离散的傅立叶变换(DTFT).而对于CTFT而言,拉普拉斯变换就是将连续时间系统的傅立叶变换扩展了;而对于DTFT而言,Z变换就是将离散时间系统的傅立叶变换扩展了.知乎上有一个很好的对三种变换的解释:傅立叶变换、拉普拉斯变换、Z变换的联系


RC一阶低通滤波器的算法推导

一阶的RC电路如下:
这里写图片描述
这里直接给出其s域的传递函数:

VoutVin=1RCs+1,(s=jω) V o u t V i n = 1 R C s + 1 , ( s = j ω )

对其进行z变换(一阶后差分):
s=1z1T,T s = 1 − z − 1 T , T 表 示 采 样 周 期
则传递函数变为:
Y(z)X(z)=TRC(1Z1)+T Y ( z ) X ( z ) = T R C ( 1 − Z − 1 ) + T

又因为 Y(z)=Y(n)zn,Y(n1)Y(n)=z1 Y ( z ) = Y ( n ) z − n , 且 Y ( n − 1 ) Y ( n ) = z − 1 , X(z)=X(n)zn,X(n1)X(n)=z1 X ( z ) = X ( n ) z − n , 且 X ( n − 1 ) X ( n ) = z − 1 ,代入到上式的传递函数得:
Y(n)=TT+RCX(n)+RCT+RCY(n1) Y ( n ) = T T + R C X ( n ) + R C T + R C Y ( n − 1 )

其中:
X(n): X ( n ) : 本 次 采 样 值
Y(n1): Y ( n − 1 ) : 上 次 滤 波 值
a=TT+RCTRC=ωT=2πfT a = T T + R C ≈ T R C = ω T = 2 π f T
则滤波公式为:
Y(n)=aX(n)+(1a)Y(n1) Y ( n ) = a ∗ X ( n ) + ( 1 − a ) ∗ Y ( n − 1 )

这与px4代码的lib库中低通滤波是一样的:

float BlockLowPass::update(float input)
{if (!PX4_ISFINITE(getState())) {setState(input);}float b = 2 * float(M_PI) * getFCut() * getDt();float a = b / (1 + b);setState(a * input + (1 - a)*getState());//input:本次采样值 getState():上次滤波值return getState();
}

一阶RC高通滤波器

RC高通滤波器原理图如下,它和低通相反,电阻两端的电压作为输出,则其s域的传递函数为:

VoutVin=RCsRCs+1 V o u t V i n = R C s R C s + 1

z z 变换(一阶后向差分):
s=1z1T

得到 z z 域的传递函数为:
Y(z)X(z)=RC(1z1)RC(1z1)+T

同样的, Y(z)=Y(n)zn,Y(n1)Y(n)=z1 Y ( z ) = Y ( n ) z − n , 且 Y ( n − 1 ) Y ( n ) = z − 1 , X(z)=X(n)zn,X(n1)X(n)=z1 X ( z ) = X ( n ) z − n , 且 X ( n − 1 ) X ( n ) = z − 1 ,则有:
Y(n)=RCRC+T(X(n)X(n1)+Y(n1)) Y ( n ) = R C R C + T ( X ( n ) − X ( n − 1 ) + Y ( n − 1 ) )

其中:
X(n): X ( n ) : 本 次 采 样 值
X(n1): X ( n − 1 ) : 上 次 采 样 值
Y(n1): Y ( n − 1 ) : 上 次 滤 波 值
我们令令 b=TT+RCTRC=ωT=2πfT b = T T + R C ≈ T R C = ω T = 2 π f T , a=11+b a = 1 1 + b
则高通滤波的算法公式为:
Y(n)=b(X(n)X(n1)+Y(n1)) Y ( n ) = b ∗ ( X ( n ) − X ( n − 1 ) + Y ( n − 1 ) )

这与px4中的高通滤波是一样的:


float BlockHighPass::update(float input)
{float b = 2 * float(M_PI) * getFCut() * getDt();float a = 1 / (1 + b);setY(a * (getY() + input - getU()));//getY():上次滤波器输出值;getU():上次滤波器输入值setU(input);return getY();
}

这里写图片描述


总结

关于低通滤波和高通滤波,最关键的是学到了三类变换的关系以及离散化的方法,留下各位大佬的博客链接在此:
【滤波器学习笔记】一阶RC低通滤波
傅立叶变换、拉普拉斯变换、Z变换的联系
基础电路—RC组成的低通、高通滤波器
双线性变换
z变换


http://chatgpt.dhexx.cn/article/Y7TReBkl.shtml

相关文章

数字低通滤波器的原理及实现

首先说一下,数字滤波器是怎么实现的 1.首先根据电路建立低通滤波器时域系统微分方程,得出低通滤波器t域模型 2.其次将对时域微分方程进行拉式变换,得出低通滤波器的s域模型 3.将模拟滤波器转换为数字滤波器,对连续系统进行离散化…

简单易理解的RC滤波器(含电路仿真)

滤波器 滤波器是对波进行过滤的器件,是一种让某一频带内信号通过,同时又阻止这一频带外信号通过的电路。 滤波器主要有低通滤波器、高通滤波器和带通滤波器三种,按照电路工作原理又可分为无源和有源滤波器两大类。本文主要对低通、高通还有带…

一文读懂:常见低通、高通、带通三种滤波器的工作原理

滤波器 滤波器是对波进行过滤的器件,是一种让某一频带内信号通过,同时又阻止这一频带外信号通过的电路。 滤波器主要有低通滤波器、高通滤波器和带通滤波器三种,按照电路工作原理又可分为无源和有源滤波器两大类。今天,小编主要…

利用Excel对数据进行标准化处理

采用的公式为x(x-min)/(Max-min),这样标准化后的数据最大值为1,最小值为0。

数据分析-数据规范化的一些方法

数据规范化的几种方法 1. Min-Max规范化 from sklearn import preprocessing import numpy as np #初始化数据,每一行表示一个样本,每一列表示为一个特征 x np.array([[0.,-3.,1.],[3.,1.,2.],[0.,1.,-1.] ]) #将数据进行[0,1]规范化 min_max_scaler …

数据预处理(四)——数据标准化

主要内容: 数据预处理的必要性 数据清洗 数据集成 数据标准化 数据规约 数据变换与离散化 利用sklearn进行数据预处理 小结 四、数据标准化 不同特征之间往往具有不同的量纲,由此造成数值间的差异很大。因此为了消除特征之间量纲和取值范围的差异可能会造…

数据的标准化处理——基于python

数据的标准化处理——基于R 归一化(normalization)python实现 标准化python实现 之前写过用R来进行标准化: 数据的标准化处理——基于R 归一化(normalization) 将数据缩放到[0,1]的(min—max Normalizati…

数据标准化实施

1.数据标准分类及制定 (1)数据标准的概念 数据标准:数据是企业资产。识别和定义业务数据,对关键数据制定并发布企业范围内的数据定义和标准。每一数据都有唯一指派的拥有者,负责定义数据的使用规则和保护规则。 根据…

python数据预处理 :数据标准化

何为标准化: 在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化。数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。数据同…

数据处理标准化方法

归一化(Normalization) 1.把数据变为(0,1)之间的小数。主要是为了方便数据处理,因为将数据映射到0~1范围之内,可以使处理过程更加便捷、快速。 2.把有量纲表达式变换为无量纲表达式&…

6 EXCEl格式标准化规范化

1 数值文本转数值 2 查找替换 使用SUBSTITUTE(B10,".","/") 3日期格式规范化 TEXT(F3,"##-##-00") 1数据-分列 最后选择日期 2TEXT(J3,"##-##-00") 4 格式刷

数据的标准化

数据的标准化 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指…

数据标准化处理

一、为什么进行标准化处理 在多指标评价体系中,由于各评价指标的性质不同,通常具有不同的量纲和数量级。当各指标间的水平相差很大时,如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削…

excel数据标准化

##加载程序包 from openpyxl import load_workbook #利用openpyxl程序包向指定excel单元格写入值 from sklearn.preprocessing import StandardScaler #利用StandardScaler数据标准化处理 import pandas as pd #利用pandas加载excel,得到dataframe结构 dataset pd.…

vue导出excel并修改表头样式

vue导出excel并修改样式 本文参考CSDN蓝色的落叶(侵删) DEMO下载 安装插件 npm install --save xlsx(修改样式需要下载npm install --save xlsx-style) npm install -S file-saver npm install -D script-loader 安装npm install --save xlsx-style会出…

vue 实现Excel 导出

前言 数据表格的导出,是实际开发的常见功能,前后端都可以实现表格导出,讲解自己在用的一种。 获取数据源,可以通过后端接口实现,也可以利用分页查询的表格接口来实现。 处理数据,对excel表格的表头&#…

vue导出excel并修改样式

1.首先安装以下三个安装包 npm install --save xlsx(修改样式需要下载npm install --save xlsx-style)npm install -S file-savernpm install -D script-loader 注意:如果安装了npm install --save xlsx-style 会报错:This relative module was not fo…

springboot vue导出excel 使用easypoi

springboot vue导出excel 处理后端返回的文件流&#xff0c;下载成excl文件 vue <el-button class"el-icon-download" type"success" click"exportExcel()">导出</el-button>没封装axios exportExcel() {axios({url: 请求地址, …

Vue导出Excel表格信息

一、安装两个依赖包 npm install -S file-saver xlsxnpm install -D script-loader二、项目中新建一个文件夹 里面放置两个文件Blob.js和 Export2Excel.js。 同时注意Export2Excel里引用Blob的路径是否正确。 三、使用案例 3.1、使用注意事项 表头对应的键要和传过来的数据…

vue导出excel表

方法一&#xff1a;vue2.0 element UI 中 el-table 数据导出Excel 。https://blog.csdn.net/u010427666/article/details/79208145 方法二&#xff1a; 1.安装2个依赖包&#xff08;其实是3个&#xff09; npm install -S file-saver xlsxnpm install -D script-loader 2.在…