1

我正在尝试在 Matlab 中为数百名用户建模 CDMA,以将其与其他多路访问方案进行比较。每次脚本运行时,首先使用以下行创建一个数据框:

User = sign(randn([NumberOfUsers,BitsPerFrame]));

然后我使用 comm.GoldSequence 对象为传播生成必要的 Gold 代码。代码取自手册中的示例,唯一的变化是第一多项式和第二多项式不同:

for i=1:NumberOfUsers
   code=[];
   k=de2bi(i,9);
   hgld = comm.GoldSequence('FirstPolynomial',[9 4 0],...
         'SecondPolynomial', [9 6 4 3 0],...
         'FirstInitialConditions', [k],...
         'SecondInitialConditions', padarray(1,4)',...
         'Index', 4, 'SamplesPerFrame', CodeLength);
    code = step(hgld)';
 for t= 1:length(code)
    if code(t)==0
        code(t)=-1;
    end
 end
 code_matrix(i,:)=code;
end

当用户数为几十时,系统按预期工作。然而,当用户达到数百个时,BER 率几乎是 50%,这一定是错误的。不过,我真的不明白为什么,因为据我所知,Gold 代码是正确生成的。任何帮助将不胜感激。

4

0 回答 0