spandsp代码v17发送端,在实部和虚部信号根升余弦脉冲成型之后,直接将实部和虚部分别乘以一个正弦值和余弦值然后相减,这是为什么?这样接收端怎么恢复出两路信号?求解惑 。
代码部分:
famp = x.re*z.re - x.im*z.im
根据代码上下文
x为信号根升余弦脉冲成型信号;z实部为一个正弦值,z虚部为对应角度的余弦值。
这个具体取决于你的信号是如何调制的。
这种方式是将两路信号通过正交调制的方式进行传输,也叫做IQ调制。在发送端,通过将实部和虚部分别乘以一个正弦值和余弦值,将两路信号转换为正交的信号,然后将它们相加得到一个复数信号。在接收端,可以通过解调的方式将复数信号还原为原始的两路信号。具体来说,可以将接收到的复数信号分别乘以一个正弦值和余弦值,然后对它们进行低通滤波,得到原始的实部和虚部信号。
在 spandsp v17 发送端代码中,使用正交调制的方法将数字信号调制成载波信号,具体来说是将实部信号调制在正弦波上,将虚部信号调制在余弦波上,然后将它们相加形成最终的调制信号。因此,在发送端,需要将实部信号乘以正弦波,虚部信号乘以余弦波,然后相加,这就是所谓的 IQ 采样数据,其中 I 表示实部信号,Q 表示虚部信号。
这种方法是常用的数字调制方法,称为正交振幅调制(QAM)。在接收端,需要进行解调来恢复原始的信号。具体来说,需要将接收到的信号进行混频,将它与一个本地振荡器(也称为本地振荡器或局部振荡器)相乘,然后进行滤波和采样。这将得到原始的实部和虚部信号,可以通过对它们进行运算,例如使用复数乘法或加法,来恢复原始的信号。
因此,在接收端,需要使用本地振荡器产生与发送端相同的载波信号,并将接收到的信号与本地振荡器相乘,得到 I 和 Q 两个分量。然后,可以将这些分量传递给后续处理模块,例如滤波器和解码器,以恢复原始的数字信号。