1. 输入:两个有相位噪声的10MHz正弦信号。
2. 输出:互方差(Cross-Variance)和互频谱(Cross-Spectrum)
3. 信号处理过程:
如图1所示,输入信号经功分器(Splitter)分成两路,分别经ADC模数转换器输出到数字下变频器DDC,DDC内的数控振荡器NCO产生10MHz正弦和余弦信号将输入信号下变频为同相(I)和正交(Q)两个拍频信号,经过抽取和滤波输出到鉴相器(Phase Detection),做反正切运算得到相位信号。一个32MHz晶振给所有的ADC和DDC中的NCO提供采样频率。
输入信号A和B是两路同频率但相噪不同的信号,即有一路信号需加噪声仿真。输入信号A的一路相位信号与输入信号B的一路相位信号相减得到AB两信号的相位差信号,输入信号A的另一路相位信号与输入信号B的另一路相位信号相减也得到AB两信号的相位差信号。再分别对两个相位差信号做两个运算就得到最终结果,即互相关和互频谱运算。
正弦输入:
首先通过MATLAB,产生带相噪的正弦信号,然后在FPGA中进行调用输出。
仿真结果如下所示:
功分器(Splitter)及DDC,仿真效果如下所示:
Tan计算相位:
一般情况,计算tanh我们使用cordic算法实现:
带相位噪声仿真效果如下所示:
最后我们要得到的图,先声明一下俩个注意点,论文中的时间单位是s,也就是那个图其仿真了10^5s,一天也就是8万多秒吧,所以我们在这里不可能仿真那么久时间,这里我们仿真单位用ms表示的,
然后,在FPGA中,是没法显示这种波形效果的,只能将最后的相位导入到MATLAB,然后用MATLAB来显示。
仿真之后,我们将dat1.txt和dat2.txt两个数据复制到我们所提供的另外一个MATLAB文件夹中,然后运行MATLAB,最后得到的仿真结果如下所示: