微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 示波器里的平均功能

示波器里的平均功能

时间:10-02 整理:3721RD 点击:
   在示波器中平均功能原理:   实现的原理是将第N次的数据,减去前N-1次的数据平均值,然后除以2^N,最好将得到的数据再加到存储的平均值中,借此来逼近其数学期望。
其实现的平均是针对多幅形来实现的。
   具体编程的实现:将前N-1次平均总和保存在RAM当中,当然实现我们是采用2片RAM来实现功能的,从而降低速度。每次来了一个数据的话,RAM里的数据读出,乘以(2^N)-1,再除以2^N次方,加上送来的数据,得到最终值,再送回到原RAM当中。
  代码总体框架:首先通过average_num标志来选择到底是实现几次平均,我们代码中是1-6次,这样的话就是2^6,再加上每个数据是8bit,那么总共收的位宽是2^14次方。  
  如果要读出平均值,直接将RAM中的数据读出,然后除以2^N ,N为average_num的值
  这里要注意RAM中存储的是前N-1次数据的总和,故8bit的数据要乘以2^6 ,故为14位的数据。RAM的写使能比读使能要延迟7下,这个读出来的数据进行处理是花了大概7个时钟吧,可以计算出来,也可以通过chipscope来知道。  
  如果要实现功能,利用Multiplier核乘法器来实现,a*b,a为14位的数据,从RAM中读出,b为(2^N)-1.得到的值,再直接右移N位进行缩小,然后加上送来的数据值就OK了。

受教了,不错的很

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

网站地图

Top