0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32单片机片上数字滤波器操作文档 快速入门数字滤波器在单片机上的实现

工程师看海 来源:XJIE 作者:XJIE 2025-06-23 16:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来自看海的四代目徒弟:XJIE

大家好,这个文档,是为了帮助大家快速入门数字滤波器单片机上的实现。当然,大家在阅读完之后可能还会有一些疑问,大家可以自行去查阅资料。

上节课我们在STM32F103C8T6上实现了频率计的功能,我们在上次的基础上进行下一步的操作。

首先,关于数字滤波器分为FIR和IIR两种(如果不明白,需要去查阅资料),在这里我们关心我们怎么得到我们想要滤波器的参数。

我们打开matlab

wKgZO2hUn9KAZu0wAAE_OmoVLqU124.png

在命令行窗口中输入filterDesigner。

wKgZO2hUn9KAcLYvAAHugqMnqek546.png

我现在想设计一个IIR的低通滤波器,他的截止频率是10Hz,巴特沃斯型,这里的采样频率需要根据我们之前上课的时候设计的ADC的采样频率一致(250Hz)

wKgZO2hUn9KAV1AVAAIcvG_QNiI421.png

这个滤波器设计器有很多的功能,这个留给大家探索。

wKgZO2hUn9KAfX4sAAIqLhn0v8I596.png

依次点击目标->生成c头文件

wKgZO2hUn9KAMXtYAABRsAND1Oc798.png

直接点击生成,(记住自己保存在哪里了),然后我们找到我们保存STM32CubeMX生成的.ioc文件,接下来把刚刚生成的文件保存在如图所示的文件中。

wKgZO2hUn9KADtdqAAFdsAYl4DM948.png

wKgZO2hUn9OAa678AABhh57uwog734.png

wKgZO2hUn9OAClsIAAFEyOutAZI187.png

我们用记事本打开fdacoefs.h文件,他会告诉我们还需要添加一个.h文件

wKgZO2hUn9OAbHoPAAH7DWeiP0E739.png

我们找到这个文件,也复制到这个文件夹下。

wKgZO2hUn9OAW3NDAAFnAnpo5zY716.png

到这里基本的参数有关的生成以及,文件的移动已经完成了。接下来我们开始代码的操作。

(本文来自看海的四代目徒弟:XJIE

https://blog.csdn.net/NANY_ying?type=blog

https://github.com/xiaojie25)

wKgZO2hUn9OAJpOOAAEDLdt8hnE163.png

在main.c中包含刚刚我们添加的这两个文件。然后编译这个工程。

wKgZO2hUn9OAbIQLAACpFnH4KJg985.png

右键这个fdacoefs.h文件。打开它

wKgZO2hUn9OAUXmCAAI4azVMszk036.png

我们把里面的4个数组都剪切到mian.c中。

wKgZO2hUn9SAMB_9AAGOBhoFXDQ738.png

我们先定义两个结构体,用来记录我们的滤波器的参数。

wKgZO2hUn9SAXD2sAAFL7yU11Vc353.png

其中,Biquad是各个节(这个数字滤波器的知识)中的参数,IIRFilter是整个滤波器的结构体,然后我们在代码合适的地方写下这两个函数。

wKgZO2hUn9SAawmKAAOIs-mdpDM026.png

IIRFilter_Init是对滤波器的初始化,就是把我们刚刚生成的参数填入我们定义的滤波器,

IIRFilter_Process是有数据来的时候,对数据进行滤波。

wKgZO2hUn9SAMIOAAAEz5CbOdPo516.png

先定义一个iir滤波器并对其进行初始化。

wKgZO2hUn9SAXPLuAAFr5J3YSxk861.png

我们把ADC采集到的电压通过滤波器滤波,我们来看看效果吧!

我左边给的是5Hz的信号,右边给的是15Hz的信号,都是100mVpp,由于低通滤波的截至频率是10Hz,因此5Hz的信号通过了滤波器,而15Hz的信号被滤波器衰减。

wKgZO2hUn9SASXs7AAB5zp8hiWc921.png

By the way,整个代码对初学者来说可能不是这么好理解,这是对你们的一个挑战也是机遇

本文来自看海的四代目徒弟:XJIE

https://blog.csdn.net/NANY_ying?type=blog

https://github.com/xiaojie25

更多Multisim运算放大器的学习内容!

尽在《运放秘籍》

wKgZO2hUn9SAX53hAAOJVgjQEWs035.png

【淘宝】https://e.tb.cn/h.hchV7elOIgvyGd8?tk=QEVgVt9nBw6 CZ321 「运放秘籍第一部_运算放大器Multisim仿真课程_工程师看海运放教程」

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 滤波器
    +关注

    关注

    162

    文章

    8351

    浏览量

    184753
  • 数字滤波器
    +关注

    关注

    4

    文章

    299

    浏览量

    48029
  • STM32
    +关注

    关注

    2305

    文章

    11120

    浏览量

    371134
  • STM32F103C8T6
    +关注

    关注

    113

    文章

    165

    浏览量

    87558
  • stm32单机片
    +关注

    关注

    0

    文章

    5

    浏览量

    3204
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用FPGA构建的数字滤波器设计方案

    本文简要介绍了FIR数字滤波器的结构特点和基本原理,提出基于FPGA和DSP Builder的FIR数字滤波器的基本设计流程和实现方案。##FIR 数字滤波器的详细设计。
    发表于 07-24 15:30 9433次阅读
    使用FPGA构建的<b class='flag-5'>数字滤波器</b>设计方案

    中频滤波器数字滤波器

    有更好的温度稳定性,无需调整。因 此,带宽它更为精确。 由于数字滤波器的瞬态响应已经确定,使用合适的修正系数可使数字滤波器获得比模 拟滤波器
    发表于 10-13 09:22

    数字滤波器的结构

    数字网络的信号流图表示 IIR数字滤波器的结构 FIR数字滤波器的结构数字滤波器的格形结构信号流图的基本概念1、定义:信号流图是一种有向图,它用带箭头
    发表于 01-07 10:24 30次下载

    基于单片机高阶窄带数字滤波器的设计

    探讨窄带数字滤波器的设计方法及原理,并结合单片机实时性的特点,分析高阶数字滤波器快速卷积算法, 给出应用实例与程序设计流程图。
    发表于 05-13 16:31 52次下载

    数字滤波器FPGA中的实现

    数字滤波器FPGA中的实现
    发表于 02-09 10:21 77次下载
    <b class='flag-5'>数字滤波器</b><b class='flag-5'>在</b>FPGA中的<b class='flag-5'>实现</b>

    IIR数字滤波器设计-FPGA实现任意阶IIR数字滤波器

    IIR数字滤波器设计-FPGA实现任意阶IIR数字滤波器 摘 要:本文介绍了一种采用级联结构
    发表于 01-16 09:45 2842次阅读
    IIR<b class='flag-5'>数字滤波器</b>设计-<b class='flag-5'>在</b>FPGA<b class='flag-5'>上</b><b class='flag-5'>实现</b>任意阶IIR<b class='flag-5'>数字滤波器</b>

    数字滤波器的设计实验

    数字滤波器的设计实验 一. 数字滤波器设计:(1) 数字滤波器设计步骤:a. 整理给定的滤波器设计要求
    发表于 10-30 13:34 6114次阅读
    <b class='flag-5'>数字滤波器</b>的设计实验

    什么是数字滤波器

    什么是数字滤波器 数字滤波器(digital filter)是由数字乘法器、加法器
    发表于 06-30 12:37 4227次阅读
    什么是<b class='flag-5'>数字滤波器</b>

    数字滤波器,数字滤波器原理是什么?

    数字滤波器,数字滤波器原理是什么? 信号处理领域中,对于信号处理的实时性、快速性的要求越来越高。而在许多信息处理过程中
    发表于 03-24 14:06 2.9w次阅读

    数字滤波器的MATLAB与DSP设计实现

    数字滤波器的MATLAB与DSP设计实现 概述:以窗函数法设计线性相位FIR数字滤波器为例,介绍用MATLAB工具软件设计数字滤波器的方
    发表于 04-12 09:32 2113次阅读
    <b class='flag-5'>数字滤波器</b>的MATLAB与DSP<b class='flag-5'>上</b>设计<b class='flag-5'>实现</b>

    数字滤波器的特点及设计

    1、数字滤波器的特点 用于工业现场的单片机测控系统进行数据采集和数据
    发表于 12-16 16:10 2375次阅读
    <b class='flag-5'>数字滤波器</b>的特点及设计

    基于matlab的数字滤波器的设计及数字滤波器基本结构

    本文主要介绍了基于matlab的数字滤波器的设计及数字滤波器基本结构。
    发表于 06-05 08:00 27次下载

    低通、高通数字滤波器——C语言单片机实现

    知识,一开始看数字信号处理相关理论的时候就显得比较力不从心,尤其是难懂的数学公式。相比看到这里的读者多多少少也有类似的体会。好在功夫不负有心人,本博主从繁琐的公式中,加上其他博主的博客讲解,领悟了如何使用C代码实现几种经典
    发表于 01-13 15:00 28次下载
    低通、高通<b class='flag-5'>数字滤波器</b>——C语言<b class='flag-5'>单片机</b><b class='flag-5'>实现</b>

    FIR数字滤波器设计

    数字滤波器的输入输出均为数字信号,信号通过数字滤波器后,可以改变频率成分的相对比例或滤除某些频率成分。数字滤波器可以分为IIR数字滤波器和F
    的头像 发表于 04-05 09:47 6416次阅读

    数字滤波器是什么 数字滤波器的性能指标

      数字滤波器的原理基于数字信号处理技术和滤波器算法,通过对离散时间信号进行处理和滤波实现对信号频率的选择性衰减和增强。
    发表于 02-24 11:23 6514次阅读