📄 prn_gen.m
字号:
function [PRN_out] = PRNgen(prn_num)% Generates PRN sequence for satellite number prn_num switch prn_numcase 1 tap1 = 2; tap2 = 6;case 2 tap1 = 3; tap2 = 7;case 3 tap1 = 4; tap2 = 8;case 4 tap1 = 5; tap2 = 9;case 5 tap1 = 1; tap2 = 9;case 6 tap1 = 2; tap2 = 10;case 7 tap1 = 1; tap2 = 8;case 8 tap1 = 2; tap2 = 9;case 9 tap1 = 3; tap2 = 10;case 10 tap1 = 2; tap2 = 3;case 11 tap1 = 3; tap2 = 4;case 12 tap1 = 5; tap2 = 6;case 13 tap1 = 6; tap2 = 7;case 14 tap1 = 7; tap2 = 8;case 15 tap1 = 8; tap2 = 9;case 16 tap1 = 9; tap2 = 10;case 17 tap1 = 1; tap2 = 4;case 18 tap1 = 2; tap2 = 5;case 19 tap1 = 3; tap2 = 6;case 20 tap1 = 4; tap2 = 7;case 21 tap1 = 5; tap2 = 8;case 22 tap1 = 6; tap2 = 9;case 23 tap1 = 1; tap2 = 3;case 24 tap1 = 4; tap2 = 6;case 25 tap1 = 5; tap2 = 7;case 26 tap1 = 6; tap2 = 8;case 27 tap1 = 7; tap2 = 9;case 28 tap1 = 8; tap2 = 10;case 29 tap1 = 1; tap2 = 6;case 30 tap1 = 2; tap2 = 7;case 31 tap1 = 3; tap2 = 8;case 32 tap1 = 4; tap2 = 9;otherwise PRN = 0; disp([' Error: not valid PRN number (1 - 32)']) returnend% ***** Initialize variables ***** register1 = ones(1,10);register2 = ones(1,10);check = zeros(1,10);count = 0;% ***** Run loop until all ones are found in the register *****while sum(check) ~= 10 % ***** add counter ***** count = count + 1; % ***** Check XOR logic circuit on first register ***** o1 = xor(register1(3), register1(10)); % ***** check XOR logic circuit on second register ***** o2 = xor(register2(2),xor(register2(3),xor(register2(6),xor(register2(8),xor(register2(9),register2(10)))))); PRN(count,:) = xor(register1(10), xor(register2(tap1), register2(tap2))); % ***** Shift values ***** for i = 9:-1:1 register1(i+1) = register1(i); register2(i+1) = register2(i); end register1(1) = o1; register2(1) = o2; check = register2;end% ***** Change values to 1's and -1's *****for i=1:length(PRN) if PRN(i)==0 PRN_out(i)=-1; else PRN_out(i)=1; endend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -