·1.我在做bf706时,通过把iir的例程改为fir滤波器,一直实现不了效果,输出没有任何的波形,采用断点的方法也能进入到初始化函数和fir_fr32,请各位帮忙解决一下呗,非常感谢。
2.此外,我在尝试变一下iir的滤波器的阶数发现当我把调中的2改为5的时候都不能实现效果啦,这是怎么回事?iir的自带系数和我生成的系数差别很大,有没有影响?
#include
#include
#include "AudioCallback.h"
分形32 [SAMPLES_PER_CHAN];
权利(SAMPLES_PER_CHAN)中的分形32;
分形32 外向[SAMPLES_PER_CHAN]];
右转[SAMPLES_PER_CHAN];
*过滤设计工具产生的过滤系数 *
* 低关口1千赫*
(二) = {-3.90629342L,5.741 32017L, -3.76262386L, 0.92766971L};
(二) = 0.01004288L, - 0.03833192L, 0.05626247L, - 0.03833192L, 0.01004288L};
* 高关口1公里处*
(二) = {-3.71581587L, 5.23002850L, -3.30616499L, 0.7929631L};
(二) = {0.62306233L, - 2.48576723L, 3.72541992L, - 2.48576723L, 0.62306233L};
静态分形32 df1_coffes[(2 * NUM_STAGES) 1] 0.0353851656517539788,
024091089100302546,
0.44740788764315331,
024091089100302546,
0.03538516517539788};
静态分形32 df2_coeffs[( 2 * NUM_STAGES) 1] 0.0353851656517539788,
024091089100302546,
0.44740788764315331,
024091089100302546,
0.03538516517539788};
* iir 函数的系数和延迟线*
/分形32 df1_coffes[(4 * NUM_STAGES) 2];
折形32 延迟[(4 * NUM_STAGES) 2]];
权利[(4 * NUM_STAGES) 2];
fir_state_fr32 stateleleft; 国家数据库(fir_state_fr32 stateleleft); 国家数据库(fir_state_fr32 Stateleleft); 国家数据库(fir_state_fr32 Stateleleft); 国家数据库(fir_state_fr32 Stateleft); 国家数据库(fir_state_fr32 Stateleft); 国家数据库(fir_state_fr32 Stateleft);
fir_state_fr32 州权利;
* 初始化 IIR 过滤器 * /
无效的过滤器Init( FILTER_ MODE 模式)
{
(一) 内 容 提 一 ;
* 配置过滤状态 */
/二f1_init(状态左转, df1_coeffs, 延迟左转, NUM_STAGES);
/二f1_init(州权利、df1_coeffs、延迟权利、NUM_STAGES);
* 启动或重置过滤器的零延迟行 */
如果(模式=LOW_PAS)
{
fir_init( 状态左转, df1_ coeffs, 延迟左转, NUM_ STAGES, 1);
}
如果(模式=High_PAS)
{
fir_init(状态右, df2_coeffs, 延迟右, NUM_STAGES, 1);
}
for (i=0; i < ((4 * NUM_STAGES) + 2); i++)
{
延迟( 一) = 0;
延迟权利[i]=0;
}
}
* 计算过滤响应 */
无效的音频 Filter( 音频折形32 数据) In[ ], 折形32 数据Out[ ]
{
n 英特;
(一) 内 容 提 一 ;
* 不同的渠道(两个DDDDMA会更好) * /
i=0;
for (n=0; n