勇敢的芯伴你玩转Altera FPGA连载92:基于均值滤波处理的超声波测距回响脉宽计数

2018年09月18日 20:30    发布者:rousong1989
勇敢的芯伴你玩转Altera FPGA连载92:基于均值滤波处理的超声波测距回响脉宽计数特权同学,版权所有配套例程和更多资料下载链接:http://pan.baidu.com/s/1i5LMUUD          本例程基本的功能实现和10.1节的例程一样,只是在原先的“脉冲计数”和“数码管显示驱动”两个功能块之间,增加了“均值滤波处理”功能的实现。本实例功能框图如图10.4所示。图10.4 超声波测距实例功能框图         可能大家在10.1节的板级调试的时候已经注意到了,数码管显示的数据还是有些不够稳定,跳变比较快,也不是非常准确。所有“均值滤波处理”功能模块就是要来解决这些问题。          一般性的均值滤波,其算法都是“砍头、去尾、留中间”,即取一定的数据作为一组进行排序,剔除最大值和最大值,留下中间的数据进行求平均。         我们的算法要比这更简单一些。我们取每8个最新采集的数据,不做任何排序,直接求平均值。注意,每输入一个新的数据,就会相应的输出一个旧的数据,从而进行一组完全实时的最新的8个数据的均值计算。功能如图10.5所示。图10.5 均值滤波处理功能框图          连接好下载线,给CY4开发板供电。打开Quartus II,进入下载界面,将本实例工程下的cy4.sof文件烧录到FPGA中在线运行。此时我们在超声波测距模块前面摆放平整的障碍物,可以看到数码管上的16进制数据会发生变化。但是相对于上一个实例,这个实例的数码管显示数据要相对稳定一些。