csi信号处理方法

在复现widar3.0的过程中,一个是CSI process的细节,二是Location和Oriention的具体实现。

1、非线性幅度和相位误差消除

由硬件内部不完善的模拟域滤波器实现引起的,使得提取的CSI幅度和相位被非线性函数等效地处理。在OFDM调制过程中,各个子载波应具有相同的增益。当使用同轴电缆连接收发器端口时,CSI的幅频特性应该是一条水平直线。但实际测量表明,即使没有多径无线信道,仍然存在类似的“频率选择性衰落”特性,即各个频段的增益不同,呈现M形幅频特性曲线。同样,当使用同轴电缆连接收发端口时,NIC获得的CSI相频特性也不是一条带有斜率的理想直线,而是一条具有一定非线性的S形曲线。经过广泛的研究和实验,观察到两个事实:

  1. 对于特定类型的NIC,CSI的非线性幅度/相位误差是固定的。在执行感知任务之前,测量一组代表性的CSI幅度和相位,记录非线性特征,并在后续步骤中消除非线性。
  2. 副载波的中间部分没有非线性误差,并且两侧的非线性特性也是固定的

解决CSI非线性问题可以通过以下步骤:

function[csi_calib_template] = set_template (csi_calib ,linear_interval ,calib_template_name)

    [packet_num,subcarrier_num,anteena_num,extra_num]=size(csi_calib);
    csi_amp = abs ( csi_calib ) ; % [T S A L]
    csi_phase = unwrap ( angle ( csi_calib ) , [] , 2) ; % [T S A L]
    csi_amp_template = mean ( csi_amp ./ mean ( csi_amp , 2) , 1) ; % [1 S A L]
    nonlinear_phase_error = zeros ( size ( csi_calib ) ) ; % [T S A L]
    for p = 1: packet_num
        for a = 1: antenna_num
            for e = 1: extra_num
                linear_model = fit ( linear_interval , squeeze ( csi_phase (p ,
linear_interval , a , e ) ) ', 'poly1 ') ;
                nonlinear_phase_error (p , : , a , e ) = csi_phase (p , : , a , e ) -
linear_model (1: subcarrier_num ) ';
            end
        end
    end
    csi_phase_template = mean ( nonlinear_phase_error , 1) ; % [1 S A L]
    csi_phase_template (1 , linear_interval , : , :) = 0;
    csi_calib_template = csi_amp_template .* exp (1 i * csi_phase_template ) ; % [1 S A L]
    csi = csi_calib_template ;
    save ( calib_template_name , 'csi ') ; % [1 S A L]
end
  1. 读入使用同一接口测量的一组CSI数据
  2. 获取幅度和相位,将幅值进行归一化记录为幅值模板
  3. 展开相位(unwrap),然后对其子载波的中间部分进行线性拟合。减去线性拟合结果即可得到非线性相位误差模板。

csi_calib 是给定距离和角度下的参考csi——【T S A L】

Linear_interval 是 csi 阶段的线性范围,不同类型的网卡有所不同

calib_template_name为生成模板的保存路径

csi_calib_template是为csi校准生成的模板

参考:Hands-on Wireless Sensing with Wi-Fi: A Tutorial

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值