|
利用STM32F10x的DSP库,进行带通滤波,从ADC采集数据,滤波处理后,DAC输出,可是发现滤波结果都为0,不知道问题出在哪,所以想请教下各位。
IIR滤波器:
void arm_iir_f32_bp(float* input, float* output)
{
uint32_t i;
arm_biquad_casd_df1_inst_f32 S;
float32_t ScaleValue;
arm_biquad_cascade_df1_init_f32(&S, numStages, (float32_t *)&IIRCoeffs32BP[0], (float32_t *)&IIRStateF32[0]);
//IIR Filtered
arm_biquad_cascade_df1_f32(&S, input, output, TEST_LENGTH_SAMPLES);
ScaleValue = 0.49833831777472271f * 0.49833831777472271f;
for(i = 0; i < TEST_LENGTH_SAMPLES; i++)
output *= ScaleValue【i】
main函数
while(1)
{
if(DMA_GetFlagStatus(DMA1_FLAG_TC1) == SET)
{
for(i = 0; i < samples; i++)
{
ADC_ConvertedValueLocal【i】 = (float) ADC_ConvertedValue【i】 / 4096 * 3.3;
}
arm_iir_f32_bp(ADC_ConvertedValueLocal, Filtered_Bandpass);
for(i = 0; i < samples; i++)
{
ADC_Input【i】 = (uint32_t)(Filtered_Bandpass【i】 * 10000); //终端打印显示ADC_Input【i】 = 0??????
}
DAC_Value = (float) DAC_GetDataOutputValue(DAC_Channel_1) / 4095 * 3.3;
Delay(0xffffee);
}
DMA_ClearFlag(DMA1_FLAG_TC1);
} |
|