我应该实现在软件中执行有限脉冲响应的算法的两个版本,一个是浮点格式的算法,另一个是定点格式的算法。现在我认为如果我只对函数使用浮点变量,那么算法将使用浮点完成:
该算法应根据规范工作
在新样本 x*k* 到达之前,旧样本向右移动,然后每个样本用一个系数缩放,然后计算结果 y*k*,即所有缩放样本的总和
float[] FIRfloats = {0,0,0,0,0};
void floatFIR(float newsample)
{
for(int i=0;i<5;i++)
{
FIRfloats[i+1]=FIRfloats[i]; /* shift the samples right */
}
FIRfloats[0]=newsample*0:0299;
FIRfloats[1]=FIRfloats[2]*0.4701;
FIRfloats[2]=FIRfloats[3]*0.4701;
FIRfloats[3]=FIRfloats[4]*0.0299;
}
然后我只是对样本求和以获得浮点格式?那么这会是 FIR 滤波器的软件实现吗?以及如何做定点版本?