嵌入式学习ing
同学你好,我也做过类似的FPGA SDR项目。针对CORDIC,通信场景下有个经典优化:用相位累加器(NCO)配合简化CORDIC旋转。具体步骤:1. 用DDS(直接数字频率合成)思路,相位累加器输出相位值,但不用完整CORDIC算正余弦,而是只做小角度近似(比如用泰勒展开前两项),或者用象限对称性,只存储第一象限的正余弦值,其他象限通过映射得到。2. 更狠一点,直接用Xilinx的DDS Compiler IP核(或者Intel的NCO IP),它内部已经优化好了,支持可配置的位宽和杂散性能,你调参数就行。3. 脉冲成型滤波器,一定要用多相结构,特别是你要做上变频的话,把滤波和插值(内插)结合起来,能大幅降低计算量。注意,CORDIC和滤波器位宽要仔细仿真,防止定点数溢出和精度损失。最后提醒,先做行为级仿真(用MATLAB/Simulink或HLS),再写RTL,别直接硬怼代码,容易翻车。
