基于软件无线电架构的模拟解调的DSP实现的若干问题

在软件无线电架构中,模拟解调的方式其实和纯模拟电路中的解调方式是一样的,只不过,所有这些信号都被抽样为数字信号,在FPGA和DSP中实现了。模拟解调出来的信号经过DA还是模拟信号,数字解调出来的信号就是0,1的码流了。当进行FM解调时,一段DSP的C语言代码困扰了我很久,今天和师弟讨论了挺久的,终于搞懂了。

     首先,从FPGA传给DSP的信号,已经是经过DDC之后的I和Q码流了,每对数据,arctan(Q(n)/I(n))是对应的一组数据的相位,而此时的瞬时数字角频率是相位的导数。当I 和Q都是数字信号时,导数运算相当于差分运算,即:

      fn=phase(n+1)-phase(n)=arctan(Q(n+1)/I(n+1))-arctan(Q(n)/I(n))

而对于DSP等数字器件来运算反正切,占用资源比较大,需要用一种更加适合数字器件的算法。

      fn=(phase(n))'=(arctan(Q(n)/I(n)))'=Q(n)'I(n)-Q(n)I(n)'=【(Q(n+1)-Q(n))I(n)-Q(n)(I(n+1)-I(n))】/【I(n)^2+Q(n)^2】

对于调频信号,幅度近似恒定,可以设I(n)^2+Q(n)^2=1,这样看来,就是全部都是加减运算,非常适合数字器件的运算。

你可能感兴趣的:(基于软件无线电架构的模拟解调的DSP实现的若干问题)