繼續講解!同學們第一次寫CRC校驗程序,老師自然會非常細致的講,好的開始就是成功的一半。寫的時候要仔細哦,不然程序就無法調試通過!但接下來的實驗程序我就不會這么詳細的講了,給大家程序然后請同學進行自行消化,看各位的理解能力和學習態度了。大學期間必須培養同學們的自學能力,同時大家也要有自我培養的意識。2022年9月,發現同學們都沒有MATLAB軟件的基礎知識,有點頭大了。于是只能從最基礎的知識講起(結合具體程序講解)!好在經過一個月的教學,大家都入門了,算是心安了!
如何生成m序列呢?先給出函數程序。
%%%******* 函數模塊程序 ****%%
%%% File : funct_mseq_2015.m
%% date:2016-11-10 author:算法工匠
%% 函數名 %%
function [mout] = funct_mseq_2015(stg, taps, inidata)
%%%% 程序說明 %%%%
%%% 利用級聯移位寄存器生成stg階m序列
%%%% 參數定義 %%%%
% stg : Number of stages
% taps : Position of register feedback
% inidata : Initial sequence in register
% n : Number of output sequence(It can be omitted)
% mout : output M sequence
% *******************************
% An example
% stg = 3
% taps = [ 1 , 3 ]
% inidata = [ 1 , 1 , 1 ] % 初相 即寄存器的初始值
% n = 2
% m序列生成器的結構如下:
% ----------+--------------------
% | | |
% --> | 1 |--->| 2 |---->| 3 |---->比特輸出
% 生成多項式: 1 + x + x^3
%
% 程序版本:R2015
%******* 函數主體 *********%
mout = zeros(1,2^stg-1);
fpos = zeros(stg,1);
% fpos(taps) = 1;
% 寄存器狀態載入 taps = [1,3]; fpos(taps) = [1,0,1] matlab老版本函數
for i= length(taps)
fpos(taps(i)) = 1;
end
for ii=1:2^stg-1
mout(ii) = inidata(stg); % storage of the output data
num = mod(inidata*fpos,2); % calculation of the feedback data
inidata(2:stg) = inidata(1:stg-1); % one shifts the register
inidata(1) = num; % return feedback data
end
%**************** end of file **********************
我國自研的衛星通信系統!
軍民兩用!
當年本人參與過的項目!
我的徒弟也參與了這個項目!
海格和華力創通都是上市公司,
大家可以去查詢一下,看看這兩家公司有沒有天通系統的相關產品!也就點到這吧!后面有機會多在課堂上講講衛星通信的知識。開闊眼界很重要。
再給出函數的測試程序!
%*********** 函數測試程序 ************%
%%% File: test_funct_mseq_2015.m %%
% date: 2016-12-20 author: nanjing xiaozhuang electronic %%
%%% 程序說明
% 測試函數function_funct_mseq_2015的運行結果。
% 觀察生成m序列的相關特性。
% 程序版本:R2015b
%%************ 程序主體 **************%%
%%%%%%%% 自編m序列
%%% m序列初始狀態
stg = 8;
taps= [1 8];
inidata = [1 0 1 1 1 1 0 1]; % 初始相位
m_sequence = funct_mseq_2015(stg, taps, inidata);
% m_sequence取值為0和1。
xcorr_mseq = xcorr(2*m_sequence-1);
stg = 9;
taps= [1 3 9];
inidata = [1 0 1 1 0 1 1 0 1];
m_sequence1 = funct_mseq_2015(stg, taps, inidata);
xcorr_mseq1 = xcorr(2*m_sequence1-1);
figure(1)
plot(xcorr_mseq)
title('自相關值')
figure(2)
plot(xcorr_mseq1)
title('自相關值')
%%% GPS中的m序列
% Generate G1 code
g1 = zeros(1,1023);
% load shift register
reg = -ones(1,10); % 初始相位
for i = 1:1023
g1(i) = reg(10);
slave1 = reg(3)*reg(10);
reg(1,2:10) = reg(19); % 移位
reg(1) = slave1;
end
% g1取值為正負1。
xcorr_g1 = xcorr(g1);
figure(3)
plot(xcorr_g1)
title('自相關值')
% Generate G2 code
g2 = zeros(1,1023);
% load shift register
reg = -ones(1,10);
%
for i = 1:1023
g2(i) = reg(10);
slave2 = reg(2)*reg(3)*reg(6)*reg(8)*reg(9)*reg(10);
reg(1,2:10) = reg(19);
reg(1) = slave2;
end
% g2取值為正負1。
xcorr_g2 = xcorr(g2);
figure(4)
plot(xcorr_g2)
title('自相關值')
%%% 結論
% 測試結果見圖形。
% 通過自相關值的結果就可以看成哪些m序列的自相關性比較好。
% 所以需要尋找好的生成多項式和初相。(同學們能理解嗎?)
%自編的m序列的自相關性效果就很差。
% 2016-12-22
未完,待續!
修訂記錄
20181028 完成初稿;
20221111 修訂內容v2;經歷了從光棍節到購物節的轉變!
原文標題:計算機通信與網絡v2 實驗課程(10)
文章出處:【微信公眾號:通信工程師專輯】歡迎添加關注!文章轉載請注明出處。
-
通信網絡
+關注
關注
22文章
2076瀏覽量
52914
原文標題:計算機通信與網絡v2 實驗課程(10)
文章出處:【微信號:gh_30373fc74387,微信公眾號:通信工程師專輯】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
如何在計算機上安裝麒麟操作系統Kylin V10 SP3

微軟OmniParser V2:大模型轉化為計算機智能體
微軟OmniParser V2發布:大模型轉化為計算機智能體
BU-67121W實驗室航空電子接口計算機North Hills
工業中使用哪種計算機?

評論