一阶低通滤波器

2024-01-13 00:04
文章标签 一阶 低通滤波器

本文主要是介绍一阶低通滤波器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一阶低通滤波器

在这里插入图片描述
X为输入,Y为滤波后得到的输出值;本次的输出结果主要取决于上次的滤波输出值,其中a是和滤波效果有关的一个参数,称为滤波系数;它决定新采样值在本次滤波结果中所占的权重;
在这里插入图片描述

滤波系数a越小,滤波结果越平稳,但是灵敏度低;
滤波系数a越大,滤波结果越不稳定,但是灵敏度高;

在这里插入图片描述

从幅值函数中可以看出:
当输入信号的频率小于截止频率时,幅值基本等于1,也就是输入信号能基本还原出有用信号的状态;
当输入信号的频率大于截止频率时,幅值就迅速小于1了,也就达到了衰减高频干扰信号的目的;
从相角函数中可以看出:
随着输入信号的频率的不断增大,输入信号的相位不断滞后,
当输入信号的频率等于截止频率时,相位滞后45度,
当输入信号的频率远大于截止频率时,相位滞后90度。

带宽截止频率的设计

在这里插入图片描述

相移设计

在这里插入图片描述

采样周期的选取

在这里插入图片描述
例子
在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>
#include <math.h>#define PI 3.14159265358979323846
//input 当前输入信号
//prev_output 上一个输出信号
//prev_input 上一个输入信号
//cutoff_freq 截止频率
//sample_rate 采样频率
double filter(double input, double prev_output, double prev_input, double cutoff_freq, double sample_rate) {double RC = 1.0 / (2.0 * PI * cutoff_freq);double alpha = 1.0 / (1.0 + RC * sample_rate);double output = alpha * (input + prev_input) + (1 - alpha) * prev_output;return output;
}int main() {double input_signal[] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0};double output_signal[10];double prev_output = 0.0;double prev_input = 0.0;double cutoff_freq = 10.0; // 11Hzdouble sample_rate = 10000.0; // 10 kHzint i;for (i = 0; i < 10; i++) {output_signal[i] = filter(input_signal[i], prev_output, prev_input, cutoff_freq, sample_rate);prev_output = output_signal[i];prev_input = input_signal[i];}for (i = 0; i < 10; i++) {printf("%f\n", output_signal[i]);}return 0;
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例子二


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PI (3.141592f)typedef struct
{float ts;       //采样周期(s)float fc;       //截至频率(hz)float lastYn;   //上一次滤波值float alpha;    //滤波系数
} low_pass_filter_t;low_pass_filter_t low_pass_filter={0};  //定义滤波器//初始化滤波系数
void Init_lowPass_alpha(low_pass_filter_t* const filter,const float ts, const float fc)
{float b=2*M_PI*fc*ts;filter->ts=ts;filter->fc=fc;filter->lastYn=0;filter->alpha=b/(b+1);
}
//低通滤波  给你data 你处理了返回一个数据
float Low_pass_filter(low_pass_filter_t* const filter, const float data)
{float tem=filter->lastYn+(filter->alpha*(data-filter->lastYn));filter->lastYn=tem;return tem;}int main()
{Init_lowPass_alpha(&low_pass_filter,10000,10);float input[10] = {1,2,3,4,5,6,8,9,10};float output[10] = {0};for(int i = 0;i<10;i++){output[i] = Low_pass_filter(&low_pass_filter,input[i]);printf("%f\n",output[i]);}}

在这里插入图片描述

这篇关于一阶低通滤波器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/599617

相关文章

【控制算法 数据处理】一阶滤波算法

简单介绍: 一阶滤波算法是比较常用的滤波算法,它的滤波结果=a*本次采样值+(1-a)*上次滤波结果,其中,a为0~1之间的数。一阶滤波相当于是将新的采样值与上次的滤波结果计算一个加权平均值。a的取值决定了算法的灵敏度,a越大,新采集的值占的权重越大,算法越灵敏,但平顺性差;相反,a越小,新采集的值占的权重越小,灵敏度差,但平顺性好。优点是对周期干扰有良好的抑制作用,适用于波动频率比较高的场合,它

一阶微分方程的解的存在唯一性定理

本篇笔记的内容来源 常微分方程(第四版) (王高雄,周之铭,朱思铭,王寿松) 高等教育出版社 利普希茨(Lipschitz)条件 考虑导数已解出的一阶微分方程 d y d x = f ( x , y ) (1) \frac{\mathrm{d}y}{\mathrm{d}x}=f(x,y)\tag{1} dxdy​=f(x,y)(1) 其中 f ( x , y ) f(x,y) f(

卡尔曼滤波实现一阶马尔可夫形式的滤波|价格滤波|MATLAB代码|无需下载,复制后即可运行

一节马尔可夫 一阶马尔可夫噪声是一种具有马尔可夫性质的随机过程。在这种噪声中,当前时刻的状态只与前一时刻的状态有关,与更早的状态无关。 一阶马尔可夫噪声可以用一个状态转移矩阵表示,矩阵的每个元素表示从一个状态转移到另一个状态的概率。 滤波模型 状态量的迭代模型如下: 观测量为X的第一维,所以观测方程也就是取X的第一维。 运行结果 应用背景为价格滤波,所以对比X真值和滤波值的第一维

GNN-节点向量(Node Embedding)的表征学习-发展:随机游走/一阶二阶相似度(静态表征)【直接学习出各个节点的向量表示】 -->图卷积(动态表征)【学习节点间聚合函数的参数】

静态表征 基于“随机游走”、“Word2vec”的:DeepWalk、Node2vec、Metapath2vec;基于“一阶相似度”、“二阶相似度”的:LINE、SDNE; 动态表征(GCN、GraphSAGE、GAT)【训练聚合函数的参数】

一阶差分时间序列分析

创作不易,您的关注、点赞、收藏和转发是我坚持下去的动力! 大家有技术交流指导、论文及技术文档写作指导、项目开发合作的需求可以私信联系我。 一阶差分是时间序列分析中的一种常用方法,用于转换非平稳时间序列数据,使其变得平稳。一阶差分的基本思想是计算连续两个观测值之间的差异。 具体来说,一阶差分 ( \Delta y_t ) 可以通过以下方式计算: [ \Delta y_t = y_t - y_{t

一阶RC低通滤波器杂记

本文转自:阿呆游乐园:http://www.eefocus.com/adaiplay/blog/ 关于一阶滤波器的种种有很多资料可查,像截止频率啊,相移啊什么的,这些在这里就不再重复了。本文主要阐述一下阿呆在学习过程中曾被困扰的地方,及本人的简要分析。 本文从无源RC低通滤波器说起,以一个实例为讨论背景:有一个心电放大电路,最后一级输出阻抗50欧姆,但是该电路输出信号存在明显的毛刺,那么我们想

基于一阶高斯加权移动平均滤波器的软件设计

前言 一阶RC低通滤波器(巴特沃斯滤波)-CSDN博客 一阶高斯低通滤波器不是一个直接的概念(因为一阶滤波器通常不产生高斯型频率响应),这里我用软件的方式来模拟高斯低通滤波器的效果。 有纰漏请指出,转载请说明。 学习交流请发邮件 1280253714@qq.com 什么是高斯加权移动平均滤波 加权滤波: 使用一个权重向量来对窗口内的样本进行加权平均。这个权重向量定义了每个样本在平

基于一阶高斯低通滤波器的软件设计

前言 一阶RC低通滤波器(巴特沃斯滤波)-CSDN博客  一阶高斯低通滤波器不是一个直接的概念(因为一阶滤波器通常不产生高斯型频率响应),这里我用软件的方式来模拟高斯低通滤波器的效果。 有纰漏请指出,转载请说明。 学习交流请发邮件 1280253714@qq.com 正文 正态分布函数(高斯函数)详解-CSDN博客 这里取最近的8次采样值,权重分别为 0.010.0

[信号与系统]模拟域中的一阶低通滤波器和二阶滤波器

前言 不是学电子出身的,这里很多东西是问了朋友… 模拟域中的一阶低通滤波器传递函数 模拟域中的一阶低通滤波器的传递函数可以表示为: H ( s ) = 1 s + ω c H(s) = \frac{1}{s + \omega_c} H(s)=s+ωc​1​ 这是因为一阶低通滤波器的设计目标是允许低频信号通过,同时衰减高频信号。具体来说,它的频率响应特性决定了这个形式的传递函数。 1.

一阶导数概念

定义 一般定义 设有定义域和取值都在实数域中的函数y=f(x)。若f(x) 在点    的某个邻域内有定义,则当自变量x在x0处取得增量    (点    仍在该邻域内)时,相应地y取得增量    ;如果    与    之比当    时的极限存在,则称函数y=f(x) 在点    处可导,并称这个极限为函数 y=f(x)在点    处的导数,记为