资源简介
基于无线物理层密钥生成方法中信道量化和信道估计的算法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分析谐波
相关资源
- matlab分析谐波
- 密钥生成CQ量化
- 压缩感知(Compressed Sensing CS)matlab代
- ROC曲线MATLAB程序
- Matlab功率谱计算
- 纸牌识别Matlab源程序+报告
- dijkstra算法改进的matlab程序能求出两点
- 基于OFDMA系统的多用户资源分配算法,
- matlab图像归一化代码
- EEMD的MATLAB程序
- MATLAB蒸气云爆炸模型VEC
- 提取图片纹理特征能量、熵、惯性矩
- 基于遗传算法的机器人路径规划matl
- BP神经网络实现手写数字识别matlab实现
- PCA人脸识别Eigenface特征脸Matlab
-
Matlab+Simuli
nk-cmi、miller、双相码 - 数字识别matlab源代码
-
MATLAB/simuli
nk短路电流仿真 - matlab2019运动目标检测--数字图像处理
- Allan方差分析MATLAB代码,含MPU6050八小
- 暗通道去雾MATLAB205097
- 自动寻峰谷算法matlab实现
- 基于MATLAB的车牌定位源程序
- 基于sift特征的人民币识别matlab版
- 《MATLAB仿真在现代通信中的应用》徐
- CARS-PLS 用于光谱数据或色谱数据变量
- matlab人脸皮肤分层、图像检测、检测
- CARS matlab 代码
- 基于MATLAB的OFDM系统仿真及性能分析
- AR模型算法的matlab实现和实验分析
评论
共有 条评论