资源简介

基于无线物理层密钥生成方法中信道量化和信道估计的算法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

评论

共有 条评论