gpt4 book ai didi

assembly - 在微 Controller 上逼近两个平方和的平方根

转载 作者:行者123 更新时间:2023-12-04 17:40:20 28 4
gpt4 key购买 nike

为了好玩,我正在 8 位微 Controller (HCS08) 上实现 FFT 算法。算法完成后,我将有一个 8 位实数/虚数对的数组,我想找出每个值的大小。也就是说,如果 x 是复数,我想找到

|x| = sqrt(Re{x}^2 + Im{x}^2)  

现在我可以使用一个 16 位寄存器和一个 8 位寄存器。我想过将它们平方,相加,然后取结果的平方根,但这带来了一个问题:两个 8 位数字的平方和的最大可能值是 ~130k,它大于16 位寄存器可以容纳的最大值 (65.5k)。

我想出了一个计算 16 位数字的整数平方根的子程序,它似乎运行良好,但显然我不能保证使用适合 16 位的值。我现在的想法是有一种算法可以直接近似我需要的东西,但我似乎找不到任何东西。任何想法将不胜感激。

总结一下:假设我有一个包含两个 8 位分量的向量,我想找到向量的长度。如何在不实际计算平方和平方根的情况下近似这个?

谢谢!

最佳答案

有一个网页描述了 Fast Magnitude Estimator .基本思想是对等式进行最小二乘(或其他高质量)拟合:

Mag ~= Alpha * max(|I|, |Q|) + Beta * min(|I|, |Q|)

对于系数 Alpha 和 Beta。列出了几个系数对,包括均方误差、最大误差等,包括适用于整数 ALU 的系数。

关于assembly - 在微 Controller 上逼近两个平方和的平方根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5527790/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com