日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

gps-sdr-sim c语言程序,用SDR实时伪造GPS信号

發(fā)布時(shí)間:2024/1/18 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gps-sdr-sim c语言程序,用SDR实时伪造GPS信号 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

dc tone是自動(dòng)bias消掉的嗎

幾年前那些庫(kù)還不完善的時(shí)候 生成的流 看運(yùn)氣會(huì)有很高的dc tone,然后接收機(jī)就不認(rèn)了,要手工修正

dc tone是指頻譜中間那個(gè)高高聳立的DC offset么?不清楚你用的庫(kù)是是怎么樣的。。我這個(gè)沒有這樣的現(xiàn)象。。從頂樓的頻譜圖也可以看出來(lái)。。

庫(kù)源代碼里生成I/Q信號(hào)有關(guān)的代碼主要就這些:

每次循環(huán)把載波的相位步進(jìn)一段,計(jì)算下一個(gè)采樣點(diǎn)的信號(hào):

<code>chan[i].carr_phase += chan[i].carr_phasestep;

</code>

步進(jìn)長(zhǎng)度由衛(wèi)星初始化時(shí)確定:

<code>chan[i].carr_phasestep = (int)(512 * 65536.0 * chan[i].f_carr * delt);

</code>

步進(jìn)時(shí)間delt為采樣率倒數(shù):

<code>delt = 1.0/samp_freq;

</code>

載波頻率的計(jì)算:

<code>// Pseudorange rate.

rhorate = (rho1.range - chan-&gt;rho0.range)/dt;

// Carrier and code frequency.

chan-&gt;f_carr = -rhorate/LAMBDA_L1;

</code>

由兩次步進(jìn)偽距的差值除以LAMBDA_L1(光速除以GPS L1的頻率)得到。(產(chǎn)生多普勒偏移)

生成I/Q信號(hào)。。就是把數(shù)據(jù)比特和偽隨機(jī)擴(kuò)頻序列還有增益分別和兩路相差90度的載波信號(hào)乘到一起調(diào)制,然后把全部視野內(nèi)的衛(wèi)星信號(hào)疊加在一起:

<code>iTable = (chan[i].carr_phase &gt;&gt; 16) &amp; 511;

ip = chan[i].dataBit * chan[i].codeCA * cosTable512[iTable] * gain[i];

qp = chan[i].dataBit * chan[i].codeCA * sinTable512[iTable] * gain[i];

// Accumulate for all visible satellites

i_acc += ip;

q_acc += qp;

</code>

顯然正常情況下大約正負(fù)10kHz的載波信號(hào),與1.023MHz的偽隨機(jī)序列相乘會(huì)產(chǎn)生上下兩個(gè)邊帶共2.046MHz帶寬的信號(hào)的。。不會(huì)只在直流上形成一個(gè)尖峰。

這種情況姑且胡亂推測(cè)一下,這種情況應(yīng)該是bug導(dǎo)致生成了一個(gè)或者多個(gè)C/A碼一直為0或1的衛(wèi)星?

總結(jié)

以上是生活随笔為你收集整理的gps-sdr-sim c语言程序,用SDR实时伪造GPS信号的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。