當前位置:網站首頁>基於matlab的CBOC信號調制解調仿真,輸出其相關性,功率譜以及頻偏跟踪
基於matlab的CBOC信號調制解調仿真,輸出其相關性,功率譜以及頻偏跟踪
2022-07-23 14:59:26【我愛C編程】
目錄
1.算法描述
BOC-Binary Offset Carrier,也叫二進制偏置載波調制,是在Galileo系統設計過程中提出的一種新的載波調制方式。它的基本原理是在原有的BPSK調制基礎上,再增加一個二進制副載波(目前主要是由正弦或餘弦型符號函數構成的副載波,即形似sgn(sin(t))或sgn(cos(t)),以正弦或餘弦信號為參數的符號函數)。這種調制方式的最大特點是,其功率譜的主瓣分裂成對稱的兩部分,而且根據選擇的參數不同,兩個分裂主瓣的距離也可以變化。一般常用的錶示方式為BOC(m,n)的形式,其中m錶示的是副載波頻率,n錶示的是擴頻碼速率,具體數值分別是1.023MHz的m倍和n倍。
MBOC-Multiplexed Binary Offset Carrier,從英文名可以看出這就是BOC副載波調制信號的一種複用方式。這是由Guenter W.Hein領導的GPS信號設計團隊和Jhon W.Betz領導的Galileo信號設計團隊共同提出的一種調制方式。目前經過優選,主要討論和設計應用的是BOC(1,1)和BOC(6,1)的組合。具體根據數據通道和導頻通道的功率分配要求,以及采取具體的調制方式不同,可以有多種組合,具體可參考相關文獻。目前基本都是從BOC(1,1)和BOC(6,1)的功率分配角度來討論的。
MBOC只是一種信號複用的統稱,其具體實現目前主要有兩種,即CBOC(Composite BOC)和TMBOC(time-multiplexed BOC)。CBOC簡單的說,是根據BOC(1,1)和BOC(6,1)不同的功率(幅值)權重構成的4電平符號來實現的調制,是幅值的複合式實現。而TMBOC則是一種類似時分複用的方式,即規定一組碼片的長度,在這組碼片裏固定的幾個比特置裏是BOC(6,1),其他比特置都是BOC(1,1)。兩種方式都能滿足功率譜分配的要求,但在功率譜譜形上還是有所不同的。
2.部分程序
f0 = 1.023e6;%基准頻率
BOCm = 10;
BOCn = 2;
%副載波頻率
fs = BOCm*f0;
%碼速率
fc = BOCn*f0;
fIF = 2*fs;
fsamp = 24*f0;%采樣頻率
%一個周期的采樣點
n = fsamp/1000;
KK = 1000;
%多普勒頻率
fd = 0;
Nn = n;
nn = [0:Nn-1];
CAIndex = floor(fsamp/fc);
%數據通道的衛星號
Ndata = 1;
%導頻通道的衛星號
Npilot = 2;
%BOC
[BOC_data,BOC_pilot] = func_BOC_Signal(Ndata,Npilot,Nn,CAIndex);
%移動碼片
BOC_data_code = [BOC_data(n-KK:n),BOC_data(1:n-KK-1)];
BOC_pilot_code = [BOC_pilot(n-KK:n),BOC_pilot(1:n-KK-1)];
t = [1:Nn]/fsamp;
%輸入信號
cosCarr = cos(2*pi*(fIF + fd)*t);
sinCarr = sin(2*pi*(fIF + fd)*t);
Signal_Boc = 2*BOC_data_code .* cosCarr + 2*BOC_pilot_code .* sinCarr;
%仿真數據長度
in_signal = Signal_Boc;
figure,
plot(in_signal);
acf_cboc = xcorr(in_signal,in_signal);
figure,
plot(acf_cboc);
title('CBOC ACF');
psd_cboc = fftshift(fft(acf_cboc));
figure,
plot(abs(psd_cboc));
title('CBOC PSD');
%加高斯白噪聲
in_signal = awgn(in_signal,SNR,'measured');
%對比算法BPSK like
[Y,Yi] = BPSK_like(in_signal,n,Nn,fsamp,f0,fIF);
3.部分仿真圖預覽
4.源碼獲取方式
點擊下載鏈接:
基於matlab的CBOC信號調制解調仿真,輸出其相關性,功率譜以及頻偏跟踪+程序操作視頻
獲取方式2:
博客資源項,搜索和博文同名資源。
獲取方式3:
如果下載鏈接失效,加博主微信聯系。
A_048
版權聲明
本文為[我愛C編程]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/204/202207230946350438.html
邊欄推薦
猜你喜歡
隨機推薦
- BGP機房的優點
- 真人踩過的坑,告訴你避免自動化測試常犯的10個錯誤
- 判斷是否為void類型
- C語言——幾道C語言經典習題
- openvino_datawhale
- C語言基礎知識梳理(一)
- Redis源碼與設計剖析 -- 7.快速列錶
- 比特,比特,字節,字的概念與區別
- 項目部署(簡版)
- JDBC的學習以及簡單封裝
- [pytho-flask筆記5]藍圖簡單使用
- Web Component-自定義元素的生命周期
- 數倉4.0筆記——業務數據采集
- 數倉4.0筆記——用戶行為數據采集四
- 對.h5文件的迭代顯示,h5py數據操作
- 常用數學知識匯總
- “東數西算”下數據中心的液冷GPU服務器如何發展?
- 硬件知識1--原理圖和接口類型(基於百問網硬件操作大全視頻教程)
- 鋼結構基本原理複習
- Unity3d:UGUI源碼,Rebuild優化
- 快速解决:Xshell拖不進去文件夾或者軟件包的問題
- RHCSA--文件內容瀏覽、cut、uniq、sort、.tr命令使用
- 信號完整性(SI)電源完整性(PI)學習筆記(三十二)電源分配網路(四)
- EasyGBS平臺出現錄像無法播放並存在RTMP重複推流現象,是什麼原因?
- 第七天筆記
- 【可視化調度軟件】上海道寧為SMB組織帶來NETRONIC下載、試用、教程
- 概率沉思錄:2.The quantitative rules
- 常用的鼠標事件和鍵盤事件
- C#:in、out、ref關鍵字
- GRE,MGRE的詳細了解;OSPF基礎配置知識
- Creo 9.0 如何快速修改CAD坐標系?
- 第五天筆記
- 强化學習——策略梯度理解點
- shell跑的時候需要的需要了解命令
- OKRK3399開發板預留I2C4掛載EEPROM
- 優化華為雲服務器采用Key登陸
- 第2章 基礎查詢與排序
- 【C語言】猜數字小遊戲+關機小程序
- 什麼是Per-Title編碼?
- @FeignClient使用詳細教程(圖解)