FIR滤波器中避免溢出的定点精度规则
定点FIR滤波器通常在数字信号处理器、fpga和asic上实现。不动点滤波器采用不动点算法,用一个具有不动点系数的方程表示。如果FIR滤波器的累加器和输出没有足够的位来表示它们的数据,就会发生溢出并使信号失真。使用这两个规则来自动确定FIR滤波器的精度设置。目的是最小化资源利用(内存/存储和处理元素),同时避免溢出。因为规则是根据输入精度、系数精度和系数值进行优化的,FIR滤波器必须具有不可调系数。
精度规则定义了FIR滤波器输出的最小值和最大值。为了确定这些值,对FIR滤波器系数进行最小/最大分析。
FIR滤波器的输出限制
FIR滤波器的定义为:
x [n]是输入信号。
y [n]是输出信号。
hk是
kth滤波器系数。 N是过滤器的长度。
实输入实系数FIR滤波器的输出极限
设输入信号的最小值为
如果所有正系数的和是
所有负系数的和记为
那么可以将滤波器的最小输出表示为
而滤波器的最大输出为
因此,滤波器的输出在区间[
复滤波器卷积方程
你可以根据信号和系数的实部和虚部来定义一个复滤波器(复输入和复系数):
将复杂滤波器分解为四个真实滤波器,如信号流程图所示。每个信号都用表示其范围的区间注释。
复输入复系数FIR滤波器的输出极限
您可以将真实过滤器的最小/最大分析扩展到复杂过滤器。假设输入信号的实部和虚部都在区间[
复杂过滤器包含过滤器的两个实例再保险公司(
根据实际滤波器的最小/最大分析,可以表示
G+再保险是正实部的和吗
hk,由 G-再保险是负实部的和吗
hk,由 G+即时通讯是正虚部的和吗
hk,由 G-即时通讯是负虚部的和吗
hk,由
输出的实部和虚部的最小值和最大值为:
输出的实部或虚部的最坏情况最小值和最大值由
定点精确规则
不动点精度规则根据累加器的字长和分数长度定义滤波器的输出字长和分数长度。
不能累加器规则
假设输入是一个有符号或无符号的字长定点信号
累加分数长度等于积分数长度,积分数长度是输入分数长度和系数分数长度之和。
如果Y最小值= 0,则累加器不带字长符号
如果Y最小值< 0,则累加器以字长为符号
天花运算符四舍五入到最接近正∞的整数。
输出与输入规则相同的字长
该规则将输出单词长度设置为与输入单词长度相同。然后,它调整分数长度以避免溢出。
截断累加器,使输出字长与输入字长相同。
.
设置输出分数长度
.
多相插拔器
您可以将这些规则扩展到多相FIR插值器和decimator。
冷杉插入器
将FIR插值器的每个多相分支看作一个独立的FIR滤波器。FIR插补器的输出数据类型是所有多相分支的最坏情况数据类型。
冷杉杀害多人者
对于decimator,多相分支在输出处相加。因此,输出数据类型的计算就好像它是一个具有所有多相分支的所有系数的单一FIR滤波器。