当前位置:大学毕业论文> 硕士论文>材料浏览

关于滤波器论文范文写作 一种在STM32应用FIR滤波器设计和实现相关论文写作资料

主题:滤波器论文写作 时间:2024-03-13

一种在STM32应用FIR滤波器设计和实现,本论文主要论述了滤波器论文范文相关的参考文献,对您的论文写作有参考作用。

滤波器论文参考文献:

滤波器论文参考文献 广告设计论文毕业设计日志毕业设计设计投稿

摘 要:STM32微控制器是ST公司面向嵌入式应用领域开发的微控制器,它具有很高的性价比,由于内核不同,它的产品种类也不同,本文主要针对STM32F4x系列,利用ST公司的DSP函数库实现在STM32上运行有限单位冲激响应滤波器(FIR)的设计方法,实践表明,STM32F407在开启浮点运算后可以流畅运行FIR,满足微处理器对传感器信号进行滤波的要求.

关键词:STM32微控器;FIR滤波器;设计

0 引言

在小型的嵌入式应用系统当中,微控制器的主要作用不仅是协调、控制各个 电路工作,有些系统还需要微控制器运算一些算法,简单而有效的算法或者数字滤波器可以替代纯硬件电路,具有硬件电路少、成本低、故障率低的优点,但是有些算法规模和复杂程度较大,一般的微控制器如8位、16位微控制器偏重于实时控制、寄存器较多,浮点运算能力很弱运行起来就显得特别吃力,而现阶段ST公司推出的STM32微控制器性能较为强劲,在保证实时性的情况下,也可以运行一些大型的数字滤波器和算法.

1 STM32F407微控制器

STM32F407是一种基于ARM cortex-M4内核的高性能微处理器,它是STM32F4系列的中高端产品,具备168MHz主频下达到210DMIPS的性能,内置1MB闪存和192KB的SRAM.其内部资源比较丰富,具有2个USB2.0的OTG,3个快速转换的12位ADC,相比上一代ARM cortex-M3内核产品,STM32F407微控制器集成了单周期的DSP指令集和浮点运算单元FPU,大大提高了微控制器在浮点运算的计算能力,配合ST公司专为STM32微控制器开发的库函数,可以运行大型数学运算,提升了微控制器的执行效率和运行速度,节约项目开发成本和开发时间.

2 FIR滤波器

在嵌入式应用领域中,微控制器不仅仅需要对传感器信号进行采集然后送入A/D转换器进行处理,还要针对处理结果控制 设备.在这个过程中,对于传感器信号进行采集、滤波处理一般由 电路组成,如常用的巴特沃斯滤波器、切比雪夫滤波器等,把经过滤波处理过的信号送入A/D转换器,可以获得准确度较高的数据.而在实际应用中,某些外界因素对传感器的影响会使检测的模拟信号受到干扰,而这些干扰信号是可以利用数字滤波器滤除的,目前应用比较多的数字滤波器是无限冲激响应滤波器(IIR)和有限冲激响应滤波器(FIR)两种,IIR滤波器具有输入反馈,所以其输出值不仅要取决于当前输入值,还要取决于过去的输出值,那么理论上,这种滤波器的冲激响应是无限持续的,有不容易被设计的缺点.而FIR滤波器不具有输入反馈,即输出值只取决于当前和过去的输入值,容易被设计,但是同样功能的FIR滤波器相比IIR滤波器要复杂很多,系数更多,给原本就负担较重和实时性要求较高的微控制器增加致命的计算量,使系统的实时性降低.所以一些采用数字滤波器的系统,都会将计算数字滤波器的工作量交给其他微处理器运行,如DSP或者FPGA,所以,本文主要提出一种采用STM32F407微控制器运行FIR滤波器的设计方案,在运行一定量的采样率和阶数的FIR下保证系统实时性,满足控制系统的要求.

3 库函数中的FIR滤波器设计方法

要在STM32F407上利用DSP库运行FIR,首先需要利用Matlab的工具箱FDATOOL设计FIR滤波器,然后生成滤波器所需的系数,为了增强其运算性能,还需要在程序中添加开启FPU的命令.

本设计利用Matlab设计一个带阻滤波器,所滤波信号由10Hz和100Hz信号组成,截止频率50Hz,采样率为1000Hz.为了更好的检测信号,防止能量泄露,FIR选择窗函数、hamming窗减少旁瓣,由于DSP库中的FIR滤波器系数必须是4的倍数,所以选择200阶.设计好FIR滤波器后生成系数,保存为数组形式或者头文件形式等待移植.

DSP库中的FIR函数支持Q7、Q15、Q31和浮点四种数据类型,需要用到arm_fir_f32()函数,这个函数可以在DSP_Lib\Source\FilteringFunctions文件夹中的arm_fir_32.c找到,在使用函数前需要对该函数中的参数定义有所了解.

阶数越高,系数越复杂,STM32F407的运算时间越长.一般来讲,开启FPU后的STM32F407运行200阶左右的FIR滤波器运算时间为毫秒级,是可以保证实时性的.

4 开启FPU的方法

早期的STM32F4xx固件库中的system_stm32f4xx.c文件默认禁用FPU的,即在CMSIS中没有定义FPU,虽然文件中添加了FPU相关代码,但是利用MDK编译器执行过程中会产生错误,为保证系统准确运行,可以在system_init()函数中添加条件编译代码或者直接使用FPU即可.如:

#if (__FPU_PRESENT 等于等于 1) && (__FPU_USED 等于等于 1)

SCB->CPACR |等于 ((3UL << 10*2)|(3UL << 11*2));

#endif

或者:

#define __FPU_USED1

两种方法不同,但是都需要对各个相关文件进行设置,只需根据相应的#define命令查找定义即可设置,这里不再赘述.

需要注意的是,启用FPU不代表微控制器处理复杂运算就大大的提升效率了,这里还需要对ARM处理器的math.h头文件进行替换,因为math.h头文件中的运算函数都是基于定点处理器和IEEE-754标准来运行的,想要提升微控制器的运算性能,还需要STM32固件库中的优化函数来解决,即包含arm_math.h头文件即可.以上两个设置都需要在工程选项中的C/C++加入define命令:

__FPU_PRESENT等于1,__FPU_USED 等于1

ARM_MATH_CM4

5 结论

通过Matlab运行FDATOOL工具箱来设计FIR滤波器,可以

节省很大一部分时间,对于STM32F407开启FPU后运行FIR滤

波器能够在保证精度的情况下具有很好的实时性,在工业控制当中很实用,特别在小型的嵌入式应用系统开发应用中更具竞争实力.

结论:适合滤波器论文写作的大学硕士及相关本科毕业论文,相关滤波器生产厂家开题报告范文和学术职称论文参考文献下载。

一种VHF频段电调谐滤波器设计
摘 要:设计一种用于跳频通信系统发射机和接收机前端的VHF频段电调谐滤波器。使用ADS仿真软件对电调滤波器进行结构设计和参数优化,并根据仿真结果。

一种无线自组网通信协议设计
摘 要:本文是基于ZigBee自组网协议设计的一种新型的无线自组网通信协议,该通信协议简单明了、配置灵活、方便测试,可以在各种环境下传输信息,创。

一种薄壁零件工艺方法工装设计
摘 要:壳体零件壁薄,型腔开放,材料去除率大于95%,加工极易产生变形,通过合理的工艺工程,合适的定位装夹方式,优化的加工参数及有效的工装,实现。

一种新型智能化民航送餐车设计
摘 要:通过对目前中国国内民航客机中送餐工具实用性的分析,为了改善送餐方式提高机上服务整体水平,创造低成本,人性化,高收益的运营方式,增强企业核。

论文大全