提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
GPS的信号强度以及模拟
- GPS信号强度
- GPS信号的简易仿真
GPS信号强度
GPS的民用C/A码,从卫星发出来的时候,信号只有27W左右,达到地球的时候在-158.5dBW以上。用对数形式表示可能不直观,换算成十进制约等于0.0000000000000001W,相当小。
按照上表,我们假设GPS C/A码信号到达天线口的信号强度为-130dBW,即-130dBm
而在室温下T = 290K时(开氏度(K) = 摄氏度+273.15)的热噪声用dBm表示为-174dBm/Hz,也就是说在1Hz内,噪声的能量是-174dBm,C/A码信号的主瓣带宽为2MHz,这样噪声基底为-111dBm。
以这个2MHz输入带宽为参考,输入S/N = -19dB,1kHz的噪声基底是-144dBm,所以相应的S/N = 14,1Hz的噪声基底是-174dBm,所以S/N = 44dB。通常我们把1Hz为参考的信噪比称为载噪比,表示为C/N0
不同带宽的输入功率和S/N
输入功率/dBm 输入(S/N)(dB/2MHz) (S/N)(dB/1kHz) (C/N0)(dB/Hz)
-130 -19dB 14dB 44dB
-140 -29dB 4dB 34dB
-150 -39dB -6dB 24dB
GPS信号的简易仿真
我们就以C/N0 = 44dB来用matlab造一段数据
以下代码参数如下:
1、10ms长度数据
2、25MHz采样率
3、中频:4.42MHz
4、IQ采样
5、GPS 1号星(PRN1)
SampleClk = 25e6;
PointNum = SampleClk/100;
IF = 4420000;
Doppler = 0;
C_N0_dB = 48;
IniIndex = 0;
IniCarrPhase = 0; %L1caCode = prn_GPS_L1CA_Gen(1); BW = 2046000;CodeRate = 1.023e6; CodeLen = 1023;index = CodeRate/SampleClk*[1:PointNum]+0;indexInt = mod(floor(index),CodeLen) + 1;SampleCode = caCode(indexInt);Carr_cos = cos(2*pi*(IF/SampleClk).*[1:PointNum] + 0);
Carr_sin = sin(2*pi*(IF/SampleClk).*[1:PointNum] + 0); signal0 = Carr_cos.*SampleCode +j*Carr_sin.*SampleCode ;
Sig_Add_Noise1 = Noise_Gen(real(signal0),IF,SampleClk,BW,C_N0_dB-3);%信号功率实部虚部各占一半
Sig_Add_Noise2 = Noise_Gen(imag(signal0),IF,SampleClk,BW,C_N0_dB-3);%信号功率实部虚部各占一半
All_Signal = Sig_Add_Noise1 + j*Sig_Add_Noise2;
Noise_Gen的功能描述如下:
注意 载噪比和信噪比转换公式 SNR_dB = C_N0_dB - 10*log10(BW);算出2MHz的信噪比
注意加噪声的时候要注意,噪声限定在2MHz的带宽内。首先需要将高斯白噪声带宽进行限定,计算功率,最够根据噪声的功率计算信号的功率,然后噪声和信号叠加。
Noise_Gen具体代码以后在上传吧。
通过捕获估算的载噪比也比较接近,这个后续可以进行定点化进行FPGA实现。
捕获后面再讲,这里是通过 以下公式简单估计一下载噪比
CNR = 10log10((峰值功率)/所有点的均值功率))+10log10(1/相干时间) = 46.8269,比较接近了