資源簡介
基于無線物理層密鑰生成方法中信道量化和信道估計的算法MATLAB實現
代碼片段和文件信息
%%?密鑰生成前兩步(信道特征提取和量化)示例程序
clc
clear?all
%%?信道特征提取(平坦衰落信道,單發Alice單發Bob,單發竊聽者Eve)
SNR_dB?=?30;
time?=?1:1:512;
hLS?=?(1/sqrt(2))*(?randn(1length(time))?+?1i*randn(1length(time))?);?%合法信道,均值0方差1的復高斯信道
gAE?=?(1/sqrt(2))*(?randn(1length(time))?+?1i*randn(1length(time))?);?%竊聽者信道
gBE?=?(1/sqrt(2))*(?randn(1length(time))?+?1i*randn(1length(time))?);?%竊聽者信道
sigmal?=?sqrt(0.5*10.^(-SNR_dB/10));?%?SNR=30dB,噪聲標準差
noise1?=?sigmal*(randn(1length(time))+1i*randn(1length(time)));?%a到b信道噪聲
noise2?=?sigmal*(randn(1length(time))+1i*randn(1length(time)));?%b到a信道噪聲
noiseAE?=?sigmal*(randn(1length(time))+1i*randn(1length(time)));?%a到竊聽者信道噪聲
noiseBE?=?sigmal*(randn(1length(time))+1i*randn(1length(time)));?%b到竊聽者信道噪聲
tx1?=?1;?tx2?=?1;?%為了簡化,假設雙方發射已知訓練序列1(功率歸一化的恒定信號)
%信道估計
for?i=1:length(time)
????rxb(i)?=?hLS(i)*tx1+noise1(i);?%a發b收
????rxa(i)?=?hLS(i)*tx2+noise2(i);?%b發a收,信道互易
????hb(i)?=?inv(tx1)*rxb(i);?%信道LS估計:H=X-1Y
????ha(i)?=?inv(tx2)*rxa(i);
????ampt_ab(i)?=?abs(hb(i));?%計算信道參數的幅度
????ampt_ba(i)?=?abs(ha(i));
????sita_ab(i)?=?angle(hb(i));?%計算信道參數的相位
????sita_ba(i)?=?angle(ha(i));
????
????rxaE(i)?=?gAE(i)*tx1+noiseAE(i);?%竊聽者考慮最壞情況:竊聽者信道完美。
????haE(i)?=?inv(tx1)*rxaE(i);?%信道LS估計:H=X-1Y
????ampt_aE(i)?=?abs(haE(i));?%計算信道參數的幅度
????sita_aE(i)?=?angle(haE(i));?%計算信道參數的相位
end
%%?量化(2?bit?CQG量化)
belt=0.2;%隔離帶大小?
GIBb=0;
GIBa=0;
for?i=1:length(time)
????
????%量化Bob估計的信道特征為密鑰
????if(real(hb(i))>=0?&&?imag(hb(i))>=0)??%右上象限
???????if(real(hb(i))>=belt?&&?imag(hb(i))>=belt)
???????pre_key_vectorCQGb(4*i-3:4*i-2:4*i-1:4*i)=[1?0?1?0];
???????GIBb(i)=0;
???????end
???????if(real(hb(i))belt)
???????pre_key_vectorCQGb(4*i-3:4*i-2:4*i-1:4*i)=[1?0?1?1];
???????GIBb(i)=1;
???????end
???????if(real(hb(i))<=belt?&&?imag(hb(i))<=belt)
???????pre_key_vectorCQGb(4*i-3:4*i-2:4*i-1:4*i)=[1?1?1?1];
???????GIBb(i)=1;
???????end
???????if(real(hb(i))>belt?&&?imag(hb(i)) ???????pre_key_vectorCQGb(4*i-3:4*i-2:4*i-1:4*i)=[1?1?1?0];
???????GIBb(i)=1;
???????end
????end
????if(real(hb(i))<0?&&?imag(hb(i))>=0)%左上象限
???????if(real(hb(i))<=-belt?&&?imag(hb(i))>=belt)
???????pre_key_vectorCQGb(4*i-3:4*i-2:4*i-1:4*i)=[1?0?0?0];
???????GIBb(i)=0;
???????end
???????if(real(hb(i))>-belt?&&?imag(hb(i))>belt)
???????pre_key_vectorCQGb(4*i-3:4*i-2:4*i-1:4*i)=[1?0?0?1];
???????GIBb(i)=1;
???????end
???????if(real(hb(i))>=-belt?&&?imag(hb(i))<=belt)
???????pre_key_vectorCQGb(4*i-3:4*i-2:4*i-1:4*i)=[1?1?0?1];
???????GIBb(i)=1;
???????end
???????if(real(hb(i))<-belt?&&?imag(hb(i)) ???????pre_key_vectorCQGb(4*i-3:4*i-2:4*i-1:4*i)=[1?1?0?0];
???????GIBb(i)=1;
???????end
????end
????if(real(hb(i))<0?&&?imag(hb(i))<0)%左下象限
???????if(real(hb(i))<=-belt?&&?imag(hb(i))<=-belt)
???????pre_key_vectorCQGb(4*i-3:4*i-2:4*i-1:4*i)=[0?0?0?0];
???????GIBb(i)=0;
???????end
???????if(real(hb(i))<-belt?&&?imag(hb(i))>-belt)
???????pre_key_vectorCQGb(4*i-3:4*i-2:4*i-1:4*i)=[0?1?0?0];
???????G
- 上一篇:密鑰生成CQ量化
- 下一篇:matlab分析諧波
評論
共有 條評論