⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prn_gen.m

📁 GPS PRN产生器,输入卫星号,输出GPS PRN序列.
💻 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 + -