1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y56Vkppu
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
在无线传感器网络分布式检测中,信道条件复杂,难于估计。比较相关检测,差分检测的优势是不需要信道估计,但总是付出一定的性能损失。为了缩短这一差距,本文提出多符号差分检测,并结合低复杂度球形译码算法,对多符号差分球形检测的迭代搜索过程进行了详细分析。算法检测性能和复杂度的分析表明,该检测算法不仅能有效降低计算复杂度,而且能保证较好的检测性能。结果证明该算法可作为一种有效检测算法应用于无线传感器网络分布式检测中。
在差分协作系统中,为了解决硬判决多符号差分检测(multi-symbol differential detection,MSDD)译码过程中,部分信息丢失导致性能损失以及该算法中最大似然检测计算复杂度高的问题,提出了一种软输入软输出的多符号差分球形译码(SISO-MSDSD)算法.该算法利用球形译码思想,在一定搜索范围内计算编码比特的对数似然比(LLR),去除先验信息可获得编码比特的外信息,经内部译码器判决得到源信息.
4.部分源码
..................................................................
% multiple symbol sphere detection
for k=1:N-1:Nd-N+1
rN=r(k:k+N-1).';
U=conj(Lh*diag(rN));
shat=MSDSD(U,M,R);
vh_ms(k:k+N-2)=diff_detector(shat);
end
% conventional non-coherent detection
vh_cdd=diff_detector(r);
% binary detection
bh_cdd=mpsk2bin(vh_cdd,M);
bh_ms=mpsk2bin(vh_ms,M);
% count number of errors and data
err_ms=err_ms+sum(abs(xb-bh_ms));
err_cdd=err_cdd+sum(abs(xb-bh_cdd));
nbits=log2(M)*Ns+nbits;%Ns is number of symbols
end
% compute practical BER
ber_ms(ind)=err_ms/nbits;% multiple symbol
ber_cdd(ind)=err_cdd/nbits;% conventional
end
% BER theory value from book "digital comm on fading channels" page 293&259
Pb_coh=.5*(1-sqrt(EbN0./(1+EbN0)));
roh=besselj(0,2*pi*fdTs);
if M==2
Pb_cdd=0.5*(1+EbN0*(1-roh))./(1+EbN0);
elseif M==4
Pb_cdd=.5*(1+EbN0*(1-roh))./(1+EbN0);% this is not exact!
end
for k=1:length(EsN0)
N0=1/EsN0(k);
Pb_ms(k)=ber_msd(M,N,N0,fdTs);
end
mk=['r-s';'k-*';'b-o';'m-x'];
figure
semilogy(EbN0_dB,ber_ms,mk(1,:),'LineWidth',1,'MarkerSize',5);
hold on
semilogy(EbN0_dB,Pb_ms,mk(3,:),'LineWidth',1,'MarkerSize',5);
grid on
xlabel('E_b/N_0')
ylabel('Bit Error Rate')
leg1=['MSD ',stats_opt,', N=',num2str(N)];
legend(leg1,'Theory MSDD');
set(gca,'XTick',EbN0_dB(1):5:EbN0_dB(end))
figure
semilogy(EbN0_dB,ber_cdd,mk(1,:),'LineWidth',1,'MarkerSize',5);
hold on
semilogy(EbN0_dB,Pb_cdd,mk(3,:),'LineWidth',1,'MarkerSize',5);
grid on
xlabel('E_b/N_0')
ylabel('Bit Error Rate')
leg1=['MSD ',stats_opt,', N=',num2str(N)];
legend('Simulation CDD','Theory CDD');
set(gca,'XTick',EbN0_dB(1):5:EbN0_dB(end))
A220