gold matlab 编解码_基于matlab的gold码的生成及相关性分析

clc;

N=7;

%

7

级寄存器为例,并组其中的一组优选对:

211

,217

connections=gfprimfd(N,'all');

f1=connections(4,:);

%

取一组本原多项式序列,

211

f2=connections(16,:);

%

取另一组本原多项式序列

,217

registers1=[0 0 0 0 0 0 1];%

给定寄存器的初始状态

registers2=[0 0 0 0 0 0 1];%

取相同的初始状态

L=2^N-1;

%

周期长度

sum2=0;

sum1=0;

for k=1:L

seq1(k)=registers1(N);

%

第一组

m

序列

seq2(k)=registers2(N);

%

第二组序列

for j=1:N

%

进行模

2

sum1=sum1+f1(j+1)*registers1(j); %

各级寄存器送参与模

2

加的值

sum1=mod(sum1,2);

sum2=sum2

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Gold是一种伪随机序列,可以用于分多址(CDMA)通信系统中的扩频技术。以下是一份生成Gold序列的MATLAB: ```matlab clear all; close all; clc; % 初始化参数 M = 4; % 片长度,即生成Gold序列长度 N = 2^M-1; % 最大状态数 G1 = [1 0 0 1 0 1]; % G1多项式系数 G2 = [1 1 0 1 0 1]; % G2多项式系数 L = 10; % 循环次数 % 生成初始状态 state = ones(1, M); % 初始化Gold序列 gold_seq = zeros(1, N); % 生成Gold序列 for n = 1:N % 计算G1和G2输出 g1_out = mod(sum(G1 .* state), 2); g2_out = mod(sum(G2 .* state), 2); % 生成Gold序列 gold_seq(n) = mod(g1_out + g2_out, 2); % 更新状态 state = [gold_seq(n) state(1:M-1)]; end % 循环L次,得到不同的Gold序列 for l = 1:L % 随机生成新的初始状态 state = randi([0 1], [1 M]); % 初始化新的Gold序列 new_gold_seq = zeros(1, N); % 生成新的Gold序列 for n = 1:N % 计算G1和G2输出 g1_out = mod(sum(G1 .* state), 2); g2_out = mod(sum(G2 .* state), 2); % 生成Gold序列 new_gold_seq(n) = mod(g1_out + g2_out, 2); % 更新状态 state = [new_gold_seq(n) state(1:M-1)]; end % 输出新的Gold序列 disp(['第', num2str(l), '个Gold序列:']); disp(new_gold_seq); end ``` 这段代中,首先定义了Gold的参数(片长度、多项式系数等),然后生成初始状态并初始化Gold序列。接着,通过循环计算G1和G2输出,并将它们相加得到Gold序列。最后,通过循环生成不同的Gold序列。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值