一阶低通滤波器

一阶低通滤波器

在这里插入图片描述
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.mzph.cn/news/616833.shtml

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

相关文章

2024年湖北中级职称是不是通用?不限制地域呢?

最近有人问甘建二湖北中级职称是否全国通用&#xff1f; 甘建二可以明确告诉大家&#xff0c;职称证书可以全国通用了&#xff0c;只要是人SHE局部门评审的正规职称证都是可以的。使用地域也没有限制。 因为职称没有说哪个省份只能在哪里使用&#xff0c;不像是二建&#xff0…

500mA High Voltage Linear Charger with OVP/OCP

一、General Description YHM2810 is a highly integrated, single-cell Li-ion battery charger with system power path management for space-limited portable applications. The full charger function features Trickle-charge, constant current fast charge and const…

Java中的栈和队列操作,相互实现(力扣 232, 225)

栈和队列&#xff08;Java&#xff09; Java中的 栈 & 队列 操作栈的使用队列的使用 LeetCode 232. 用栈实现队列我的代码 LeetCode 225. 用队列实现栈我的代码 Java中的 栈 & 队列 操作 栈的使用 栈的方法功能Stack()构造一个空的栈E push(E e)将e入栈&#xff0c;并…

群狼调研开展某预制菜品牌NPS及消费者心理研究调研

为了解某预制菜品牌在消费者心中的地位&#xff0c;评估其NPS&#xff08;净值&#xff09;&#xff0c;并深入研究消费者的购买心理和需求&#xff0c;为品牌提供有针对性的改进建议。群狼调研&#xff08;长沙消费者画像研究&#xff09;受客户委托开展某预制菜品牌NPS及消费…

【开源】基于JAVA语言的民宿预定管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用例设计2.2 功能设计2.2.1 租客角色2.2.2 房主角色2.2.3 系统管理员角色 三、系统展示四、核心代码4.1 查询民宿4.2 新增民宿4.3 新增民宿评价4.4 查询留言4.5 新增民宿订单 五、免责说明 一、摘要 1.1 项目介绍 基于…

Vulnhub-GoldenEye

一、信息收集 nmap探测&#xff1a;nmap -p 1-65535 -T4 -A -v 192.168.1.9 PORT STATE SERVICE VERSION 25/tcp open smtp Postfix smtpd |_smtp-commands: ubuntu, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN |_…

Python基础知识:整理12 JSON数据格式的转换

首先导入python中的内置包json import json 1 准备一个列表&#xff0c;列表内每个元素都是字典&#xff0c;将其转换为JSON 使用json.dumps()方法 data [{"name": "John", "age": 30}, {"name": "Jane", "age":…

HarmonyOS Stage模型 UIAbility生命周期状态

UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态 Create状态&#xff0c;在UIAbility实例创建时触发&#xff0c;对应onCreate回调。可以在onCreate回调中进行相关初始化操作 import UIAbility from ohos.app.ability.UIAbility; import window from…

NAND SCA接口对性能影响有多大?

在多LUN场景下&#xff0c;SCA接口尤其有助于提高随机读取性能。通过合理安排读取命令和等待时间&#xff08;如tR&#xff09;&#xff0c;SCA接口可以在一个LUN完成读取后立即开始另一个LUN的读取操作&#xff0c;而无需等待整个DQ总线空闲&#xff0c;从而减少了延迟和提高了…

c++ 继承是否需要调用父类的构造函数

今天遇到一个继承的问题。请回答下面问题&#xff1a;&#xff08;已知 B 继承自 A&#xff09; 子类是否需要调用父类的构造函数&#xff1f;必须还是可选&#xff1f; 先回答&#xff1a; 结论1 &#xff1a;强烈建议显示调用父类构造。因为有些父类可能会初始化一些成员变…

基于SpringBoot的洗衣店管理系统

基于SpringBoot的洗衣店管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 可视化展示 用户界面 管理员界面 摘要 洗衣店管理系统基于Spring Boot框…

c++对象拷贝与堆中的对象实例拷贝

文章目录 拷贝构造函数等于号运算符总结深拷贝堆中对象实例的拷贝错误的方法正确的拷贝方法使用多态技术拷贝实例拷贝构造函数 拷贝构造函数是C++中的一种特殊的构造函数,用于创建一个新对象,该对象是已存在的对象的副本。 拷贝构造函数的语法如下: class ClassName {// .…

IBM X3750 M4服务器主板故障全国协助处理

2023年12月31这天中午看到有位网络朋友加我&#xff0c;通过后该用户反馈说是有一台IBM System x3750 M4服务器有故障&#xff0c;现在无法开机。希望我们工程师协助他检测 分析 定位该故障问题原因和处理方案。 如上图所示&#xff1a;经过工程师与用户排查&#xff0c;发现该…

docker run命令

docker run命令 通过 docker run 命令创建一个新的容器。 Docker容器运行语法 docker run [OPTIONS] IMAGE [COMMAND] [ARG…] docker run常用选项 d, --detachfalse 指定容器运行于前台还是后台&#xff0c;默认为 false。 -i, --interactivefalse 打开 STDIN&#xff0c…

【linux】history命令显示时间的例子

在Linux中&#xff0c;你可以通过设置HISTTIMEFORMAT环境变量来显示命令的执行时间。这个环境变量定义了history命令中时间的显示格式。以下是设置和说明的步骤&#xff1a; 打开终端&#xff1a; 打开你的终端应用。 编辑配置文件&#xff1a; 使用文本编辑器&#xff08;如n…

SQL server 给列添加描述

添加列&#xff0c;列名为 sType。 use [DBName]; alter table [tbName] add sType int null default 0;添加新增列的描述&#xff1a; exec sys.sp_addextendedproperty name NMS_Description ,value 【该字段的描述】, level0typeNSCHEMA,level0nameNdbo, level1typeNTA…

pytorch学习笔记(七 )

池化类似压缩 最大池化-上采样 例如给一个3的话就会生成一个33的窗口&#xff08;生成相同的高和宽&#xff09;&#xff0c;给一个tuple就会给出一个相同的池化核。stride默认值就是核的大小 dilation 在卷积dialation设置之后每一个会和另外的差一个&#xff0c;空洞卷积 …

使用Pygame库来显示一个简单的窗口,并绘制一些基本的形状和文本

import pygame from pygame.locals import *# 初始化pygame库 pygame.init()# 创建窗口并设置大小和标题 screen_width 800 screen_height 600 screen pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption("My Pygame")# 定义颜色…

vue通过下标修改数组里面内容,同时通过下标修改数组对象里面的内容,然后页面数组更新了。。。

vue通过下标修改数组里面内容&#xff0c;同时通过下标修改数组对象里面的内容&#xff0c;然后页面数组更新了&#xff1f;&#xff1f;&#xff1f; 项目里面一直都是知道vue通过下标修改数组里面内容是触发不了页面的更新的&#xff0c;需要用其他方式&#xff0c;当我写其…

给定n个字符串s[1...n], 求有多少个数对(i, j), 满足i < j 且 s[i] + s[j] == s[j] + s[i]?

题目 思路&#xff1a; 对于字符串a&#xff0c;b, (a.size() < b.size()), 考虑对字符串b满足什么条件&#xff1a; 由1、3可知a是b的前后缀&#xff0c;由2知b有一个周期是3&#xff0c;即a.size()&#xff0c;所以b是用多个a拼接而成的&#xff0c;有因为a是b的前后缀&…