?? weisuijijiaozhi.m
字號:
clear all;
clc;
K=input('K=');
svar=0.6;
x=round(svar*rand(1,K));
y=x;
disp('原始輸出序列為:');
disp(x);
figure;
subplot(2,2,1);
stem(x);title('原始輸出序列');xlabel('個數');ylabel('值');
%信息序列沒經過交織器直接進入信道
nvar=0.165;
noise=nvar*randn(1,K);
z12=x+noise;
uvar=0.3;
for t=round(0.4*K):round(0.6*K)
wp(t)=u(t);
end
ganrao=uvar*wp;
ganrao(1:(round(0.4*K)-1))=0;
ganrao((round(0.6*K)+1):K)=0;
z=z12+ganrao;
z2=round(z);
disp('經過信道后信息序列為:');
z3=z2(1:K);
disp(z3);
subplot(2,2,2);
stem(z3,'r');title('經過信道后信息序列為');xlabel('個數');ylabel('值');
%計算沒經過交織器的誤碼率
j=0;
for i=1:K
if(z3(i)~=x(i))
j=j+1;
end
end
Pe1=j/K;
st=sprintf('沒經過交織器的誤碼率為:%.20f',Pe1);
disp(st);
%序列經過偽隨機交織器
%(1)產生偽隨機序列
N=1;hk=1;fg=1;
while(N<=K)
ga=1+(K-1)*rand(1,1);
xuanze=round(ga);
if(x(xuanze)~=pi)
FG(fg)=xuanze;
jiaozhixulie(hk)=x(xuanze);
x(xuanze)=pi;
hk=hk+1;
fg=fg+1;
N=N+1;
end
end
%(2)進入信道
pattern22=jiaozhixulie+noise;
jiaozhixulie=pattern22+ganrao;
%(3)恢復原始信息序列
huifu=zeros(1,K);
for kh=1:hk-1
huifu(FG(kh))=jiaozhixulie(kh);
end
huifu=round(huifu);
disp('恢復后的信息序列為:');
disp(huifu);
subplot(2,2,3);
stem(huifu,'g');title('經過信道后交織信息序列');xlabel('個數');ylabel('值');
%計算經過交織器的誤碼率
ji=0;
for ij=1:K
if(huifu(ij)~=y(ij))
ji=ji+1;
end
end
Pe2=ji/K;
st2=sprintf('經過交織器的誤碼率為:%.20f',Pe2);
disp(st2);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -