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

📄 matlab.m

📁 主要是仿真了gold码、数据的调制、加噪、解调以及数据恢复的过程。
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%	用于生成1023的GOLD伪码
%		参考:	1) <Digital Communications> John G. Proakis, p724, 13-2-4 Generation of PN sequence
%			2) MATLAB 2007a 的GOLD发生器中的多项式系数
% 	系统以右方向为大数方向,移位也是向左移动
% 
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function codes = GoldGenerator()

codeLen = 1023; 	% 生成的码长
% 初始化多项式系数, 舍去0次
polynomial1 = [0 0 1 0 0 0 0 0 0 1];	% [10 3 0]
polynomial2 = [0 1 1 0 0 0 0 1 0 1];	% [10 8 3 2 0]

% 初始化随机数生成器
rand('twister', sum(100*clock));
randn('state', sum(100*clock));

% 先随机产生m=10个值,填入移位寄存器
sd1 = randsrc(1, 10, [0 1]);	% 初始化移位寄存器1
sd2 = randsrc(1, 10, [0 1]);	% 初始化移位寄存器2

% 生成伪码1
pn1 = zeros(1, codeLen);
for i=1:codeLen
	pn1(i) = sd1(1);
	% 计算新的GOLD值
	newGold = mod((sum(polynomial1 & sd1) + 1), 2);
	% 移位
	sd1(1:9) = sd1(2:10);
	sd1(10) = newGold;
end

% 生成伪码2
pn2 = zeros(1, codeLen);
for i=1:codeLen
	pn2(i) = sd2(1);
	% 计算新的GOLD值
	newGold = mod((sum(polynomial2 & sd2) + 1), 2);
	% 移位
	sd2(1:9) = sd2(2:10);
	sd2(10) = newGold;
end

% 合成GOLD码
%codes = zeros(1, codeLen);
codes = xor(pn1,pn2);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -