📄 picmud2.m
字号:
function [bits_out2,bits_out,S_out,r]=picmud2(bits_in,bits_add,k)
m=length(bits_in);
n=length(bits_add(1,:));
p=floor(m/n);
bits_out2=zeros(k,p); %第二次picmud最终输出的信号
bits_out=zeros(k,p); %第一次picmud没有经过判定,输出的信号
S_out=zeros(k,p); %对输入信号进行扩频得到的有多址干扰的信号
r=zeros(k,k); %相关系数矩阵
for i=1:k
for j=1:k
r(i,j)=bits_add(i,:)*transpose(bits_add(j,:))/n; %归一化
end
end
%%%%%%%%%%%%%%%%%%%%进行解扩%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:k
S_out(i,:)=decdma(bits_in,bits_add(i,:));
end
%%%%%%%%%%%%%%%%%%%%第一次并行干扰删除%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:k
bits_mid=zeros(1,p); %picmud的中间信号
for x=1:k
bits_mid(1,:)=bits_mid(1,:)+r(i,x)*S_out(x,:);
end
bits_out(i,:)=2*S_out(i,:)-bits_mid(1,:);
end
%%%%%%%%%%%%%%%%%%%%第二次并行干扰删除%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:k
bits_mid2=zeros(1,p);
for y=1:k
bits_mid2(1,:)=bits_mid2(1,:)+r(i,y)*bits_out(y,:);
end
bits_out2(i,:)=S_out(i,:)+bits_out(i,:)-bits_mid2(1,:);
end
%以上结果有误差,需进一步的判定
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -