我想建立一个SDR系统,该系统最初会调谐AM,之后会调谐FM等。
我计划用于执行此操作的系统将具有用于直接数字合成(DDS)的正弦查找表。
为了正确调谐,我期望需要能够精确控制馈入混频器(在本例中为乘法器)的正弦波的频率。我希望线性插值将很接近,但是认为非线性方法会提供更好的结果。
什么是用于正弦表的良好且快速的插值方法。在目标系统上乘法和加法很便宜;划分成本很高。
编辑:
我计划使用乘法/移位函数实现常数以将常数归一化为可缩放整数。中间值将使用宽加法,乘法将使用18或17位。可以使用浮点“预计算”,但不能在目标平台上使用。当我说“划分是昂贵的”时,我的意思是必须使用乘法器和大量代码来实现。这不是不可想象的,但是应该避免。但是,真正的浮点IEEE方法将在此平台以及自定义实现上占用大量资源。
任何SDR经验都将有所帮助。
最佳答案
如果使用线性插值无法获得很好的结果,则可以尝试三角关系。
求和与差公式
sin(A+B)=sinA*cosB + cosA*sinB
sin(A-B)=sinA*cosB - cosA*sinB
cos(A+B)=cosA*cosB - sinA*sinB
cos(A-B)=cosA*cosB + sinA*sinB
您可以预先计算A,B范围的sin和cos值,即
A range: 0, 10, 20, ... 90
B range: 0.01 ... 0.99
关于signal-processing - 正弦表插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1164492/