一直以来,用了好几种算法,都是不适于fpga实现的。连最初设计的速率,采样率,都不好。因为设计算法的哥们没做过硬件,也不能怪他。反复的弄这个解扩模块之后,有了点心得。
1.要获得扩频增益,必须在AD之后就进行解扩(扩频码同步)。
2.解扩时的采样率要使得一个PN码码片(一个chip)的采样点为整数点,这样才有利于本地PN码模板的创建。原先我们的设计是一个chip 12.5个采样点,这样本地模板不知道如何设计,因为有可能一个chip采到12个点,有可能采到13个点,总会错一位。
3.数据进AD之后,和本地DDS产生的cos信号相乘。这里的cos不需要和载波同频,相乘的目的是为了将信号变到差不多的0中频,这样在设计DMF的时候,就可以用仅含-1和1的本地PN码模板,不需要在本地PN码模板中加入载波。
4.因为要用到FIR的ipcore,为了节省资源,尽量复用。
5.延迟,可恶的延迟。一定要将延迟对齐,否则找到峰值也是白搭。
没有装visio,不然画个流程图出来。明天去办公室,把程序拷出来吧。 |