发明名称 一种简化的具有负系数的加权重复伪中值滤波方法
摘要 本发明公开了一种简化的具有负系数的加权重复伪中值滤波方法,该方法以逼近同阶次FIR滤波器的频率响应特性为目标,运用MALLOWS综合方法,为滤波窗口数据的加权伪中值计算设计含负数的加权系数,并按此加权系数调整窗口数据;同时,基于为该滤波器所设计的一组特殊结构的斜率计算加权系数,重复利用加权伪中值计算窗口数据的整体斜率,并按此斜率对窗口数据作线性变换;最后利用伪中值加权系数对已变换数据作加权计算,得到加权重复伪中值滤波输出值。该方法实现了比现有负系数加权中值或伪中值滤波方法更好的频率选择特性,为适应无线传感器等资源有限系统的低功耗要求,简化了算法中的运算。
申请公布号 CN102064796A 申请公布日期 2011.05.18
申请号 CN201010544350.6 申请日期 2010.11.15
申请人 中南大学 发明人 刘少强;陈磊;樊晓平;李勇周;洪丹龙;谭宗凯
分类号 H03H17/02(2006.01)I;G06F7/22(2006.01)I;G06F7/544(2006.01)I 主分类号 H03H17/02(2006.01)I
代理机构 长沙市融智专利事务所 43114 代理人 黄美成
主权项 1.一种简化的具有负系数的加权重复伪中值滤波方法,其特征在于,包括下列步骤:a)以具有带通或高通频率响应的同阶次FIR滤波器的系数h=(h<sub>1</sub>,h<sub>2</sub>,...h<sub>n</sub>)为参考,将h的各元素分解为符号项sign<sub>i</sub>和绝对值项|h<sub>i</sub>|,并将由各元素的绝对值构成的|h|=(|h<sub>1</sub>|,|h<sub>2</sub>|,...,|h<sub>n</sub>|)作为相应的滤波器样本选择概率即SSPs的目标值p=(p<sub>1</sub>,p<sub>2</sub>,...,p<sub>n</sub>);b)在整数范围A内,寻找到一组权系数,使该组权系数相应的SSPs系数与目标SSPs系数p之间的均方误差最小或小于一个阈值δ,该组权系数即为输出权系数ω;c)依据斜率权系数的优化选择方式,由负系数的加权重复伪中值滤波器的宽度N设计其斜率权系数<img file="FDA0000032370120000011.GIF" wi="359" he="51" />d)将输出权系数ω=(ω<sub>1</sub>,ω<sub>2</sub>Kω<sub>n</sub>)分解为符号项sign=(sign<sub>1</sub>,sign<sub>2</sub>,…,sign<sub>n</sub>)和绝对值项(|ω|=ω<sub>1</sub>|,|ω<sub>2</sub>|K|ω<sub>n</sub>|),对滤波窗口内的采样数据x=(x<sub>1</sub>,x<sub>2</sub>,...,x<sub>n</sub>)按调整规则进行数据的正、负极性调整处理,得到极性调整后的结果y=(y<sub>1</sub>,y<sub>2</sub>,...,y<sub>n</sub>);e)基于斜率权系数<img file="FDA0000032370120000012.GIF" wi="57" he="40" />按重复中值滤波算法,通过窗口内数据任意两点之间的斜率信息计算窗口内数据的整体斜率β;整体斜率β按下式计算:<maths num="0001"><![CDATA[<math><mrow><mi>&beta;</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>PM</mi><mrow><munder><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>j</mi><mo>&NotEqual;</mo><mn>0</mn></mrow></munder><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>N</mi></mrow></msub><msub><mover><mi>&omega;</mi><mo>~</mo></mover><mi>j</mi></msub><mi>o</mi><mrow><mo>(</mo><msub><mi>PM</mi><munder><mrow><mi>i</mi><mo>&NotEqual;</mo><mi>j</mi></mrow><mrow><mi>i</mi><mo>&NotEqual;</mo><mn>0</mn></mrow></munder></msub><msub><mover><mi>&omega;</mi><mo>~</mo></mover><mi>i</mi></msub><mi>o</mi><mfrac><mrow><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>y</mi><mi>j</mi></msub></mrow><mrow><mi>i</mi><mo>-</mo><mi>j</mi></mrow></mfrac><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths><img file="FDA0000032370120000014.GIF" wi="170" he="47" />其中,<img file="FDA0000032370120000015.GIF" wi="356" he="47" />代表复制<img file="FDA0000032370120000016.GIF" wi="44" he="49" />个数据y<sub>i</sub>;PM表示求取伪中值的运算,即:<maths num="0002"><![CDATA[<math><mrow><mi>PM</mi><mrow><mo>(</mo><msub><mi>x</mi><mn>1</mn></msub><mo>,</mo><msub><mi>x</mi><mn>2</mn></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>x</mi><mi>N</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mi>max</mi><mrow><mo>(</mo><mi>min</mi><mrow><mo>(</mo><msub><mi>x</mi><mn>1</mn></msub><mo>,</mo><msub><mi>x</mi><mn>2</mn></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>x</mi><mi>L</mi></msub><mo>)</mo></mrow><mo>,</mo><mi>min</mi><mrow><mo>(</mo><msub><mi>x</mi><mn>2</mn></msub><mo>,</mo><msub><mi>x</mi><mn>3</mn></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>x</mi><mrow><mi>L</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>,</mo><mi>K</mi><mo>,</mo><mi>min</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>L</mi></msub><mo>,</mo><msub><mi>x</mi><mrow><mi>L</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>,</mo><mi>K</mi><msub><mi>x</mi><mi>N</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><mo>+</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mi>min</mi><mrow><mo>(</mo><mi>max</mi><mrow><mo>(</mo><msub><mi>x</mi><mn>1</mn></msub><mo>,</mo><msub><mi>x</mi><mn>2</mn></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>x</mi><mi>L</mi></msub><mo>)</mo></mrow><mo>,</mo><mi>max</mi><mrow><mo>(</mo><msub><mi>x</mi><mn>2</mn></msub><mo>,</mo><msub><mi>x</mi><mn>3</mn></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>x</mi><mrow><mi>L</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>,</mo><mi>K</mi><mo>,</mo><mi>max</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>L</mi></msub><mo>,</mo><msub><mi>x</mi><mrow><mi>L</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>,</mo><mi>K</mi><msub><mi>x</mi><mi>N</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow></mrow></math>]]></maths>L表示(N+1)/2向下取整数后的结果,记为<img file="FDA0000032370120000019.GIF" wi="228" he="58" />f)将所述步骤b)中产生的输出权系数ω作为伪中值加权系数,对待滤波的数据按重复中值滤波算法,根据整体斜率β对步骤d)中得到的数据y的各元素按线性变换规则进行处理;将所得结果进行含负权系数的加权伪中值计算,从而得到对当前窗口数据进行前述加权重复伪中值滤波的最终输出结果μ;对y中各元素的线性变换规则为:y′<sub>i</sub>=y<sub>i</sub>-(i-L)·β <sub>i</sub>=1,2,...,N,其中N为滤波窗口的宽度;y′<sub>i</sub>为y<sub>i</sub>经过线性变换后的值;由此得到线性变换的数据y′=(y′<sub>1</sub>,y′<sub>2</sub>,...,y′<sub>n</sub>);最终得到加权重复伪中值滤波输出结果μ=PM(|ω<sub>1</sub>|oy′<sub>1</sub>,|ω<sub>2</sub>|oy′<sub>2</sub>,...,|ω<sub>N</sub>|oy′<sub>N</sub>);步骤c)中的斜率权系数<img file="FDA0000032370120000021.GIF" wi="32" he="36" />的确定仅仅依赖于滤波窗口的宽度N,其选择方法为:以滤波窗口中心位置为中心并间隔填充0的方式,在非0位上采用幅值按等腰三角形排列的整数权系数,即按照<img file="FDA0000032370120000022.GIF" wi="835" he="48" />的格式,首先令中心位置处对应的权系数<img file="FDA0000032370120000023.GIF" wi="378" he="58" />其中,num表示<img file="FDA0000032370120000024.GIF" wi="32" he="36" />的各元素中不为0的权值个数,符号<img file="FDA0000032370120000025.GIF" wi="64" he="62" />表示对x向下取整数,然后将<img file="FDA0000032370120000026.GIF" wi="54" he="52" />依照中心到两侧的次序,在不为0的位置上依次减1,并将相应的结果作为该位置上的权系数,即有:<img file="FDA0000032370120000027.GIF" wi="1154" he="52" />其它依次类推;步骤c)中的对窗口内数据x=(x<sub>1</sub>,x<sub>2</sub>,...x<sub>N</sub>)各元素的正、负极性调整规则是:y<sub>i</sub>=sign<sub>i</sub>·x<sub>i</sub>,i=1,2,...,N,其中sign<sub>i</sub>表示第i位置对应的符号项,y<sub>i</sub>表示y的第i位置的元素,N为滤波窗口的宽度;采用以下方法进行简化运算:将参与计算整体斜率β的各斜率值放大K倍,使得伪中值计算中的差值的整除运算转化为先只作加减运算,最后才对加减运算的计算结果进行一次整除K的运算,将结果还原为真实的整体斜率β;计算斜率β时,对伪中值计算中的除运算作集中延后处理;对y做线性变换时,利用对称性规则和相加规则将β的整数倍乘运算转为加运算。
地址 410083 湖南省长沙市岳麓区麓山南路932号