#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;
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);
}
方波滤成正弦波,这最开始的部分是群延迟,推迟了15个点,
注意了
这会导致后面想对滤波后的图像进行FFT操作时,曲线不准