正弦表插值

NoM*_*ots 2 interpolation trigonometry signal-processing radio nonlinear-functions

我想把一个SDR系统放在一起,最初调整AM,后来调整FM等.我打算用来做这个的系统将有一个正弦查找表用于直接数字合成(DDS).为了正确调谐,我希望能够精确控制馈送到混频器的正弦波频率(在这种情况下为乘法器).我预计线性插值会很接近,但认为非线性方法会提供更好的结果.

什么是用于正弦表的良好且快速的插值方法.乘法和加法在目标系统上很便宜; 分工是昂贵的.

编辑:我计划使用乘法/移位函数实现常量,以将常量标准化为缩放整数.中间值将使用宽增加,乘法将使用18或17位.可以使用浮点"预计算",但不能在目标平台上使用.当我说"划分成本很高"时,我的意思是它必须使用乘法器和大量代码来实现.这不是不可想象的,但应该避免.但是,真正的浮点IEEE方法将在此平台上占用大量资源,以及自定义实现.

任何SDR经验都会有所帮助.

Nic*_*kis 7

如果使用线性插值得不到很好的结果,可以尝试三角关系.

和差分公式

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
Run Code Online (Sandbox Code Playgroud)

并且你可以预先计算A,B范围的sin和cos值,即

A range: 0, 10, 20, ... 90
B range: 0.01 ... 0.99
Run Code Online (Sandbox Code Playgroud)