ber =零(大小(sigm));
對於l=1:100
對於w=1:長度(sigm)
I = load(‘h . txt‘);
a=i(:,1);
b=i(:,2);
a = a+1;
b = b+ 1;
h =零(130,260);
idx = sub 2 ind(size(H),a’,b’);
h(idx)= 1;%生成H矩陣
x =零(1,260);
y = 2 * x-1;
z = y+sigm(w)* randn(1,260);
p 1 =個壹(1,260)。/(1+exp(-2 * z ./sigm(w));
P0 = 1-p 1;
qij 1 = h . * repmat(p 1,130,1);
qi j0 = h . * repmat(P0,130,1);初始步驟百分比
for i=1:100
pr DCT = ones(130,1);
rji0 =零(size(qij 1));
tqiq 1 = ones(size(qiq 1))-2 * qiq 1;
for i=1:130
對於j=1:260
if tqi 1(I,j)~ = 0
pr DCT(I)= pr DCT(I)* tqi 1(I,j);
其他
pr DCT(I)= pr DCT(I);
結束
結束
結束
for i=1:130
對於j=1:260
if tqi 1(I,j)~ = 0
rji 0(I,j)= pr DCT(I)/tqi 1(I,j);
其他
rij 0(I,j)= 0;
結束
結束
結束
rji 0 = 1/2+1/2 * rji 0;
rji 1 = 1-rji 0;%水平步長
prd CT 1 = ones(1,260);
對於j=1:260
for i=1:130
如果rji 1(I,j)~ = 0
prd CT 1(j)= prd CT 1(j)* rji 1(I,j);
其他
prd CT 1(j)= prd CT 1(j);
結束
結束
結束
QQ1=p1。* prd CT 1;
prd CT 0 = ones(1,260);
對於j=1:260
for i=1:130
如果rji 0(I,j)~ = 0
prd CT 0(j)= prd CT 0(j)* rji 0(I,j);
其他
prd CT 0(j)= prd CT 0(j);
結束
結束
結束
QQ0=p0。* prdct0
k =個壹(大小(QQ1))。/(QQ 1+QQ 0);
Q0 = k. * QQ0
q 1 = k . * QQ 1;
prd CT 2 = ones(1,260);
qqij 0 = zeros(size(qij 0));
對於j=1:260
for i=1:130
如果rji 0(I,j)~ = 0
prd ct2(j)= prd ct2(j)* rji 0(I,j);
其他
prd ct2(j)= prd ct2(j);
結束
結束
結束
對於j=1:260
for i=1:130
如果rji 0(I,j)~ = 0
qqij 0(I,j)= prd ct2(j)/rji 0(I,j);
其他
qqij 0(I,j)= 0;
結束
結束
結束
qqqi 0 = repmat(p 0,130,1)。* qqij0
prd ct3 = ones(1,260);
qqij 1 =零(size(qij 1));
對於j=1:260
for i=1:130
如果rji 1(I,j)~ = 0
prd CT 3(j)= prd CT 3(j)* rji 1(I,j);
其他
prd ct3(j)= prd ct3(j);
結束
結束
結束
對於j=1:260
for i=1:130
如果rji 1(I,j)~ = 0
qqij 1(I,j)= prd ct3(j)/rji 1(I,j);
其他
qqij 1(I,j)= 0;
結束
結束
結束
qqqi 1 = repmat(p 1,130,1)。* qqij 1;
kk = ones(size(qi j0))。/(qqi 0+qqi 1);
qij0=kk。* qqqij0
qij1=kk。* qqqi 1;垂直步長百分比
ZZ =(sign(q 1-Q0)+1)/2;%決定代碼應該是1還是0
如果rem(ZZ * H‘,2)= = 0
打破;
end %計算綜合癥
結束
ber(w)=長度(find(ZZ))/(260+ber(w));
結束
結束
snr =(大小(sigm))。/sigm;
ber=ber。/(ones(size(ber))* 100);
圖(20 * log(SNR),ber,‘*-‘);
xlabel(‘SNR‘);
ylabel(‘BER‘);
我自己編的,用SPA解碼,觀察了100次信噪比和誤碼率的關系。復雜度很高,我是菜鳥。