微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 常见问题新讨论:串行接收去毛刺的处理

常见问题新讨论:串行接收去毛刺的处理

时间:10-02 整理:3721RD 点击:
对串行接收数据常见的去毛刺的处理方法之一就是,用高频时钟对该数据进行采样(实际操作中采样时钟一般至少3倍于数据速率),然后将连续两个采样值进行比较,如果两个值均为1,则输出为1,如果两个值均为0,则输出为0,除此之外输出保持不变。
      这种方法既然是常用的,说明它肯定是稳定可靠,经得起推敲的。不过我认为如果用数字图像处理中常用到的中值滤波方法来处理,似乎从原理上更容易说通,而且操作灵活性也更大,唯一需要改动的是,数字图像处理中用的是二维滤波,而在这里用的是一维滤波。

      中值滤波大家应该都懂,原理很简单,就是个排序,如果不明白百度一下就有很多。
     在去毛刺的处理上我认为用一维中值滤波的方法很合适,因为单比特数字信号要么0,要么1,处理起来很简单,以3领域一维中值滤波为例,就是:
     将连续三个采样值进行比较,如果是“111”、“110”、“101”、“011”,那么中值就是1,所以输出为高电平,如果是“000”、“001”、“010”、“100”,那么中值就是0,输出为低电平。每个周期都可以输出一个滤波后的值,那么毛刺就可以去掉了。
     而且这种方法有很大灵活性,根据具体的应用场景,比如采样时钟对被采样信号的倍数,以及要滤掉的毛刺信号的宽度,可以用不同窗口大小的中值滤波器,比如5领域、7领域等等,窗口越大可以去掉的毛刺就越宽,处理后的信号就越平滑,但是丢失的细节也就越多,所以要看具体的应用而定。
      不知道大家有什么看法?请指正。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top