定点FIR滤波器通常在数字信号处理器,FPGA和ASIC上实现。固定点滤波器使用定点算术,并由具有固定点系数的等式表示。如果FIR滤波器的累加器和输出没有足够的比特来表示其数据,则溢出发生并扭曲信号。使用这两个规则自动确定FIR滤波器精度设置。目的是在避免溢出的同时最小化资源利用率(内存/存储和处理元素)。因为基于输入精度,系数精度和系数值来优化规则,因为FIR滤波器必须具有不可运送的系数。据/p>
精度规则定义了FIR滤波器输出的最小值和最大值。为了确定这些值,对FIR滤波器系数进行最小/最大分析。据/p>
FIR筛选器由以下定义:据/p>
x [n]据/em>是输入信号。据/p> Y [n]据/em>是输出信号。据/p> H据sub>K.据/sub>是据E.mclass="varname">K.据sup>TH.据/sup>滤波器系数。据/p> N据/em>为过滤器的长度。据/p> FIR滤波器具有实际输入和真实系数的输出限制据/strong> 设输入信号的最小值为据E.mclass="varname">X据sub>闵据/sub>, 在哪里据span class="inlineequation">X据sub>闵据/sub>≤0据/span>,最大值是据E.mclass="varname">X据sub>马克斯据/sub>, 在哪里据span class="inlineequation">X据sub>马克斯据/sub>≥0据/span>.当你将正系数乘以据E.mclass="varname">X据sub>闵据/sub>和负系数据E.mclass="varname">X据sub>马克斯据/sub>.同样,当你将正系数乘以时,最大输出就会出现据span class="inlineequation">X据sub>马克斯据/sub>和负系数据span class="inlineequation">X据sub>闵据/sub>.据/p>
如果所有正系数的和是据/p>
所有负系数的和记为据/p>
然后您可以将过滤器的最小输出表示为据/p>
以及滤波器的最大输出为据/p>
因此,过滤器的输出位于间隔中[据E.mclass="varname">y据sub>闵据/sub>那据E.mclass="varname">y据sub>马克斯据/sub>]。据/p>
复杂过滤器卷积方程据/strong> 您可以根据其信号和系数的真实和虚部定义复杂的过滤器(复杂输入和复杂系数):据/p>
根据信号流程图中描绘的复杂滤波器分解成四个实际滤波器。每个信号都以表示其范围的间隔注释。据/p>
FIR滤波器具有复杂输入和复数系数的输出限制据/strong> 你可以将真实过滤器的最小/最大分析扩展到复杂过滤器。假设输入信号的实部和虚部都在区间[据E.mclass="varname">X据sub>闵据/sub>那据E.mclass="varname">X据sub>马克斯据/sub>]。据/p>
复杂过滤器包含过滤器的两个实例据span class="inlineequation">关于(据E.mclass="varname">H据sub>K.据/sub>)据/span>.两个过滤器都具有相同的输入范围,因此间隔中的输出范围相同[据span class="inlineequation">V.据sup>关于据/sup>闵据/sub>那据E.mclass="varname">V.据sup>关于据/sup>马克斯据/sub>]。同样,复杂过滤器包含两个过滤器的实例据span class="inlineequation">即时通讯(据E.mclass="varname">H据sub>K.据/sub>)据/span>.两个过滤器在间隔中具有相同的输出范围[据span class="inlineequation">V.据sup>我是据/sup>闵据/sub>那据E.mclass="varname">V.据sup>我是据/sup>马克斯据/sub>]。据/p>
根据真实过滤器的最小/最大分析,您可以表达据E.mclass="varname">V.据sup>关于据/sup>闵据/sub>那据E.mclass="varname">V.据sup>关于据/sup>马克斯据/sub>那据E.mclass="varname">V.据sup>我是据/sup>闵据/sub>,据E.mclass="varname">V.据sup>我是据/sup>马克斯据/sub>作为:据/p>
G据sup>+据/sup>关于据/sub>是正实部的和吗据E.mclass="varname">H据sub>K.据/sub>,给予据/p>
G据sup>-据/sup>关于据/sub>是消极的真实部分的总和据E.mclass="varname">H据sub>K.据/sub>,给予据/p>
G据sup>+据/sup>我是据/sub>是正虚部的和吗据E.mclass="varname">H据sub>K.据/sub>,给予据/p>
G据sup>-据/sup>我是据/sub>是负虚构部分的总和据E.mclass="varname">H据sub>K.据/sub>,给予据/p>
输出实部和虚部的最小值和最大值为:据/p>
输出的实际或虚构部分的最坏情况最小和最大值据/p>
固定点精确规则在累加器字长度和分数长度方面定义过滤器的输出字长度和分数长度。据/p>
全精密累加器规则据/strong> 假设输入是具有字长的符号或无符号的定点信号据E.mclass="varname">W.据sub>X据/sub>和分数长度据E.mclass="varname">F据sub>X据/sub>.还假设系数是有符号或无符号的定点值,具有分数长度据E.mclass="varname">F据sub>H据/sub>.您现在可以将完整精度定义为固定点设置,以最小化累加器的单词长度,同时避免溢出或任何精度丢失。据/p>
蓄能器分数长度等于产品分数长度,这是输入和系数分数长度的总和。据/p>
如果据span class="inlineequation">y据sub>闵据/sub>= 0.据/span>,然后累加器与单词长度无符号据/p>
如果据span class="inlineequation">y据sub>闵据/sub>< 0据/span>,然后累加器用字长签名据/p>
CEIL运算符转到最接近的整数达到+∞。据/p>
输出与输入规则相同的字长据/strong> 该规则将输出字长度设置为与输入字长度相同。然后,调整分数长度以避免溢出。据E.mclass="varname">W.据sub>问:据/sub>输出的字长和据E.mclass="varname">F据sub>问:据/sub>输出分数长度。据/p>
截断累加器以使输出字长度与输入字长度相同。据/p>
.据/p>
设置输出分数长度据E.mclass="varname">F据sub>问:据/sub>到据/p>
.据/p>
您可以将这些规则扩展到多相FIR内插器和Deetimator。据/p>
冷杉插入器据/strong> 将FIR插补器的每个多相分支作为一个单独的FIR滤波器。FIR插补器的输出数据类型是所有多相分支的最坏情况数据类型。据/p>
冷杉杀害多人者据/strong> 对于小数,多相分支在输出处相加。因此,输出数据类型的计算就好像它是一个具有所有多相分支的所有系数的单一FIR滤波器。据/p>
FIR滤波器的输出限制据/h3>
定点精确规则据/h3>
多相内插器和抽量器据/h3>