马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
% 用matlab构建直接序列扩频通信系统,pn码用gold码,m序列用11级斐波纳契结构(SSRG)移位寄存器实现
% 通过加入加性高斯白噪声来判定系统性能,得出不同信噪比情况下的误码率
% 程序结构:gold码产生-》传送数据产生-》扩频-》加入噪声-》解扩-》样本求和、信息判决-》误码率记数
function[l1]=squense(N,S,s,p,bm)
clear all
syms N p s S bm
Lc=input('please input the value of Lc:'); % 每一信息比特的码片数目,即处理增益
N=input('please input the value of N:'); % 传送的信息比特数目
g=input('please input the value of g:'); % 是否要加高斯噪声
p=2047; % 扩频序列长度
n=11; % 序列级数
s1=[1,0,0,0,0,0,0,0,0,0,1]; % m序列1初始化值
s2=[1,0,0,0,0,0,0,0,0,0,0]; % m序列2初始化值
%function bm = subsindex(s)
for i=1:p
al1=bm(s1(2),s1(11),0,0,0,0,0,0);
for j=n:-1:2
s1(j)=s1(j-1)
end
s1(1)=al1;
l1(i)=s1(n); % m序列1
end
for i=1:p
al2=bm(s2(2),s2(3),s2(8),s2(11),0,0,0,0);
for j=n:-1:2
s2(j)=s2(j-1)
end
s2(1)=al2;
l2(i)=s2(n); % m序列2
end
function[add]=bm(x,y,z,h,r,t,p,q) % m序列生成算法
add=x+y+z+h+r+t+p+q;
if(add==0|add==2|add==4|add==6|add==8)
add=0;
else add=1;
end
编译后出现错误
Subscript indices must either be real positive integers or logicals.
Error in ==> squense at 16
al1=bm(s1(2),s1(11),0,0,0,0,0,0);
当我去掉下行语句的百分号时
%function bm = subsindex(s)
编译后
程序不报错,也不运行,
请问各位高手
这是什么原因?
先在这里谢谢了 |