公式表示
向信号中添加频偏相偏,如下公式所示:
t o ( n ) = ( I + j Q ) e j ( 2 π f 0 t + θ ) t_{o}(n) = (I+jQ)e^{j(2\pi f_{0}t+\theta)} to(n)=(I+jQ)ej(2πf0t+θ)
其中 f 0 f_{0} f0为频偏, θ \theta θ为相偏。上式中 t = n T s t=nT_s t=nTs, T s T_s Ts为采样间隔(采样率 F s F_s Fs的倒数), ( I + j Q ) (I+jQ) (I+jQ)为iq两路信号。
实现
Fs = 200000 #200khz
f0 = 100000 #假设频偏100khz
theta = 90 /360*2*np.pi #90度
y = x[:,0]+x[:,1]*1j #复值化
y = y * np.exp(1j * (2 * np.pi * f0 / Fs * np.arange(1024)+theta)) #频偏+相偏
注:
1、最好使用np中的exp,不要使用math中的。因为np中的更好结合矩阵进行运算。
2、range()返回的是range对象,主要在for循环中使用,其他情况不建议使用。
np.arange在需要模拟长串规律数列参与计算时更加好用。
range与arange 学习链接