打印
[其他ST产品]

STM32 FIR滤波器 极速配置

[复制链接]
72|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM32 keil极速配置DSP环境.
 #define TEST_LENGTH_SAMPLES  256  
#define BLOCK_SIZE            32
#define NUM_TAPS              31
uint32_t blockSize = BLOCK_SIZE;

uint32_t numBlocks = TEST_LENGTH_SAMPLES/BLOCK_SIZE;
//滤波器系数
float32_t firCoeffs32[31]={     -0.0596890992291,  0.01922048736923,  0.02810082687996,  0.03637702168568,
    0.03706910163303,  0.02596964515718, 0.004205451277836, -0.02145632110683,
   -0.04020442189748, -0.04108647252668, -0.01723828241568,  0.03066860468989,
      0.093885028725,   0.1571901056882,   0.2038713950264,   0.2211008218426,
     0.2038713950264,   0.1571901056882,    0.093885028725,  0.03066860468989,
   -0.01723828241568, -0.04108647252668, -0.04020442189748, -0.02145632110683,
   0.004205451277836,  0.02596964515718,  0.03706910163303,  0.03637702168568,
    0.02810082687996,  0.01922048736923,  -0.0596890992291};
         static float32_t testOutput[TEST_LENGTH_SAMPLES];
         static float32_t firStateF32[BLOCK_SIZE + NUM_TAPS - 1];
                float32_t  *inputF32, *outputF32;
                float32_t * pState;


使用特权

评论回复
沙发
初级工程渣|  楼主 | 2023-6-29 01:51 | 只看该作者
while
arm_fir_instance_f32 S;
arm_fir_init_f32(&S, NUM_TAPS, (float32_t *)&firCoeffs32[0], &firStateF32[0], blockSize);
inputF32 = &testInput_f32[0];
outputF32 = &testOutput[0];
        for(i=0; i < numBlocks; i++)
                {
                                arm_fir_f32(&S, inputF32 + (i * blockSize), outputF32 + (i * blockSize), blockSize);
                }

使用特权

评论回复
板凳
初级工程渣|  楼主 | 2023-6-29 01:51 | 只看该作者
方波滤成正弦波,下图最开始的部分是群延迟,推迟了15个点,
注意了
这会导致后面想对滤波后的图像进行FFT操作时,曲线不准

使用特权

评论回复
地板
初级工程渣|  楼主 | 2023-6-29 01:51 | 只看该作者

使用特权

评论回复
5
初级工程渣|  楼主 | 2023-6-29 01:51 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

516

帖子

0

粉丝