FPGAWD 发表于 2016-4-15 12:17:30

两种基于FPGA的软件滤波方法(3)


主要的程序进程如下:
if glrn=0'then
f_din<=0'.
f_dout<=0'.
elsif clk' event and clk=1'then
f_din<=din;
shifter(8 downto 1)<=shifter(7 downto 0);----寄存器数据依次向高位移动一位
shifter(0)<=f_din;----寄存器最低位赋值为输入信号当前状态值
if shifter(0)=1'then-----将寄存器内的n个值分别赋给n个变量
shift0:=1;
else
shift0:=0;
end if;
...........
if shifter(8)=1'then
shift8:=1;
else
shift8:=0;
end if;
if (shift0+shift1+shift2+shift3+shift4+shift5+shift6+shift7+shift8)>=5then----判决n个值的和
f_dout<=0'.
end if;
dout<=f_dout;------输出滤波后的信号


3 结论
实验证明延时滤波和判决滤波均能达到很好的滤波效果,在电路的设计过程中,可以根据干扰信号的类型选择合适的滤波方法。在实时性要求不是很高、干扰信号脉冲宽度可估测的电路中,可以采用延时滤波法,既节省资源又能有效滤除干扰信号; 在实时性要求比较高、运行速度比较快、干扰信号脉冲宽度很窄的电路中,可以采用判决滤波法,既能有效滤波又能保证电路的效率。

zxopenljx 发表于 2021-4-10 16:56:18

两种基于FPGA的软件滤波方法(3)
页: [1]
查看完整版本: 两种基于FPGA的软件滤波方法(3)