%%%%-----此段**完成pnc下行鏈路ldpc解碼,中繼端資料假設是理想接收無差錯---%%%%
clcclear
code_length=24; %碼長
code_rate=1/2; %位元速率
max_iter=20; %解碼最大迭代次數
snr=3;
%%----ldpc檢驗矩陣和生成矩陣的構造----%%%
h=genh(code_length,code_rate); %生成校驗矩陣
g=geng(h); %獲得生成矩陣
g_gf1=gf(g,2); %轉換到有限域
g_gf2=gf(g,2); %轉換到有限域
dim=size(h);
d=dim(2)-dim(1);
%%---隨機產生a端和b端原始資料,並進行編碼
%------a端-----%
msg1=randi([0 1],1,d);
s_gf1=gf(msg1,2); %轉換到有限域
code_bit1=s_gf1*g_gf1; %%編碼
x1=code_bit1;
code_bit1=double(code_bit1.x);
%---- b端-----%
msg2=randi([0 3],1,d);
s_gf2=gf(msg2,2); %轉換到有限域
code_bit2=s_gf2*g_gf2; %%編碼
x2=code_bit2;
code_bit2=double(code_bit2.x);
%-----假設在中繼端無差錯接收-----%
yr=x1+x2;
yr=double(yr.x);
%%下行鏈路分兩路進行bpsk調製傳輸
yr=de2bi(yr);
yr1=yr(:,1);
yr2=yr(:,2);
y_bp1=-2*yr1+1;
y_bp2=-2*yr2+1;
%--加雜訊--%
yaw1=awgn(y_bp1,snr,'measured');
yaw2=awgn(y_bp2,snr,'measured');
%--接收端軟解碼,獲取碼字的概率資訊--%
sigma=sqrt(10^(-0.1*snr));
%第一路
f10=1./(1+exp(-2*yaw1/sigma^2));
f11=1-f10;
%第二路
f20=1./(1+exp(-2*yaw2/sigma^2));
f21=1-f20;
%---合併兩路,計算gf(4)上碼字的概率
p0=f10.*f20;
p1=f11.*f20;
p2=f10.*f21;
p3=f11.*f21;
%%%%
%b端求解a端的資訊
len=length(yr);
pa0=zeros(1,len);
for loop=1:len
if code_bit2(loop)==0
pa0(loop)=p0(loop);
elseif code_bit2(loop)==1
pa0(loop)=p1(loop);
elseif code_bit2(loop)==2
pa0(loop)=p2(loop);
elseif code_bit2(loop)==3
pa0(loop)=p3(loop);
endendpa1=1-pa0;
[yhat_a] = decode(h,max_iter,pa1,pa0);
ya=yhat_a';
err1=nnz(code_bit1-ya);
%%%%
%a端解b端的資訊
pb0=zeros(1,len);
pb1=zeros(1,len);
pb2=zeros(1,len);
pb3=zeros(1,len);
for loop=1:len
if code_bit1(loop)==0;
pb0(loop)=p0(loop);
pb1(loop)=p1(loop);
pb2(loop)=p2(loop);
pb3(loop)=p3(loop);
elseif code_bit1(loop)==1
pb0(loop)=p1(loop);
pb1(loop)=p0(loop);
pb2(loop)=p3(loop);
pb3(loop)=p2(loop);
endendpb10=pb0+pb1;
pb11=pb2+pb3;
pb20=pb0+pb2;
pb21=pb1+pb3;
yhat1= decode(h,max_iter,pb11,pb10);
yhat2= decode(h,max_iter,pb21,pb20);
yhat_b=[yhat2,yhat1]; %這裡位元發生顛倒,需注意
yb=(bi2de(yhat_b))'; %%二進位制位元流轉換為4元
err2=nnz(code_bit2-yb);
2FSK調製在瑞利通道下,(7,4)漢明碼
2fsk調製在瑞利通道下,7,4 漢明碼 clear all snr 10 10 n 30000 訊息位元個數 berhm zeros 1,length snr n 7 k 4 symbolrate 2000 符號速率 nsamp 8 每個符號的取樣點數 fs 5000 fs 9600 ts 1 f...
Win98下TAPI的數據機程式設計
一 簡介 隨著win98作業系統的普及,計算機之間的通訊已經成為大多數應用程式開發的要求,這其中的主要原因是win98不僅僅能夠支援大多數硬體,而且為硬體的操作提供了方便的程式設計介面 api win98的應用程式介面 api 提供的通訊手段大致分為以下幾類 基於tcp ip協議的winsockap...
Linux下Redis下安裝
redis安裝 檢查是否安裝redis ps ef grep redis2.檢查gcc服務是否安裝成功 rpm qa grep gcc注 安裝成功則顯示 mkdir redis5.解壓redis安裝包 tar zxvf redis 2.8.17 tar.gz c usr local redis 解壓...