搜索
bottom↓
回复: 10

想问下,怎么用FPGA做归一化,数据标准化?

[复制链接]

出0入0汤圆

发表于 2016-9-18 10:05:35 | 显示全部楼层 |阅读模式
经常遇到归一化问题, 但开根式和除法消耗太大,想只用乘加就能实现. 有没好方法?

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2016-9-18 19:21:01 | 显示全部楼层
用乘和加可以近似计算

出0入0汤圆

 楼主| 发表于 2016-9-23 16:01:30 | 显示全部楼层
castiello 发表于 2016-9-18 19:21
用乘和加可以近似计算

具体方法怎么做呢?   

出0入0汤圆

发表于 2016-9-28 10:04:04 | 显示全部楼层
考虑下左移,右移,有除法功能

出0入0汤圆

 楼主| 发表于 2016-9-28 14:22:58 | 显示全部楼层
易尘 发表于 2016-9-28 10:04
考虑下左移,右移,有除法功能

考虑过移位了, 精度不够.

出0入0汤圆

发表于 2016-9-28 15:26:48 来自手机 | 显示全部楼层
将除法变成乘倒数,倒数开方可以通过查表和移位计算:
假设要计算1/sqrt(N),结果用Q15格式表示,N是整数或定点数,计算步骤:
1. 建立表格,表格深度为2^M,内容为1/sqrt(index),Q15格式量化。这步可以离线完成。
2. 截取N的最高M位有效位,得到index。可以通过移位实现。假设截取过程丢掉了低n位,数学上相当于index=floor(N*2^n)。
3. 用index查表,得到tmp=1/sqrt(floor(N*2^n))
4. tmp≈1/sqrt(N)/sqrt(2^n),只要乘以1/sqrt(2^n)就是我们要的结果近似值了。如果n是偶数,tmp右移n/2,如果n是奇数,则右移floor(n/2),然后乘以1/sqrt(2)。如果N是定点数,则需要调整下定标值。
5. 如果觉得第4步啰嗦,可考虑将表格分为两个,根据n的奇偶查相应表格。

出0入0汤圆

发表于 2016-9-28 15:32:16 来自手机 | 显示全部楼层
归一化时倒数开方只需要计算一次,所有数据都乘以这个数就可以了

出0入0汤圆

发表于 2016-9-28 15:38:04 来自手机 | 显示全部楼层
截取N的最高M位有效位,是指从左到右,找到第一位非0位,然后向右截M位

出0入0汤圆

发表于 2016-9-28 15:48:44 | 显示全部楼层
at90s 发表于 2016-9-28 15:26
将除法变成乘倒数,倒数开方可以通过查表和移位计算:
假设要计算1/sqrt(N),结果用Q15格式表示,N是整数或 ...

很详细的解释

出0入0汤圆

 楼主| 发表于 2016-9-28 17:26:37 | 显示全部楼层
哦哦,茅塞顿开     1/sqrt(N) == sqrt(1/N) ,1/N 用Q15格式量化,算出sqrt(1/N)后填入表格.    非常感谢~~

出0入0汤圆

发表于 2016-9-28 18:01:10 来自手机 | 显示全部楼层
如果N只有16位,直接开个64k深度的rom也行,这样无需移位。如果N很宽,或者没那么多RAM,就得查表跟移位结合了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 07:58

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表