资源简介

基于无线物理层密钥生成方法中信道量化和信道估计的算法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 CQ量化)
for i=1:length(time)
    if(real(hb(i))>=0 && imag(hb(i))>=0)   %量化Bob估计的信道特征为密钥
        pre_key_vectorCQb(2*i-1:2*i)=[1 1];
    end
    if(real(hb(i))<0 

评论

共有 条评论