13、基于ESP32 DevKitC设计FIR数字滤波器

基于ESP32 DevKitC设计FIR数字滤波器

1. FIR滤波器设计基础

在使用ESP32 DevKitC设计FIR数字滤波器时,会遇到一些硬件特性带来的问题。ESP32自带的ADC和DAC存在一定局限性,ADC为12位宽,范围是0到4095;DAC仅8位宽,范围是0到255。若使用标准16位转换器,输出波形的精度会受影响。而且,ADC和DAC是单极性的,不接受负数据,而正弦波输入有正负半周期,因此需要将输入波形上移以保证其始终为正。

设计FIR滤波器可从基本原理出发,借助ESP32处理器的定时器中断。程序的运行逻辑是:配置定时器在滤波器所需的采样时刻产生中断,在中断服务程序(ISR)中读取ADC数据、处理数据并输出到DAC。以下是程序操作的PDL描述:

BEGIN/MAIN
    Configure timer interrupt at the filter sampling time
    Store filter coefficients in an array
    Configure ADC and DAC
    Wait for timer interrupts (ISR)
END/MAIN

BEGIN/ISR
    Read a new sample from ADC
    Calculate the output sample
    Send the output sample to the DAC
    Delay the input signals by one sample time
END/TMR
2. ESP32定时器和定时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值