CSI数据的处理

利用CSI信息,为了做室内目标定位,我们将上一篇文章中获得的CSI数据进行可视化操作,本数据为一发一收 ,发射天线数为1,接收天线数为3,如果有需要数据的可以私聊

参考博客

WIFI信号状态信息 CSI 数据处理篇之读取数据与数据解析(二)_csi数据_Silver_777的博客-CSDN博客 

为了验证数据的好坏,以下为将数据读取出来的结果,我plot了所有子载波共90根,一共是4006个时间戳

振幅图比较直观,可以看到振幅随着时间的变化,在信号不受干扰的时候,振幅是平稳的,当活动发生时,信号开始波动;

而相位图由于相位跳变,且数据数量过大而导致图像显得很混乱,需要进行相位解卷绕处理。


WIFI信号状态信息 

%% 读取原始数据
str = 'test2.dat';% 输入文件名字
csi_trace = read_bf_file(str);
csi_trace(all(cellfun(@isempty,csi_trace),2),:) = [];%去掉空部分,以防设备传输出现丢数据问题
row = size(csi_trace,1);
result_matrix = zeros(row,181); % 第1~90列存储振幅,第91~180列存储相位,第181列存储时间戳
 
Fs = 1000; % 采样频率
%% 计算,将该dat原始文件的振幅和相位都存储在result_matrix矩阵中
% 这一节得到是result_matrix,维度为result_matrix
 
for i = 1:row
    %读取第i条数据
    csi_entry = csi_trace{i};%结构体形式
 
    %读取并存储第i条数据的时间戳
    result_matrix(i,181) = csi_trace{i}.timestamp_low;
 
    %读取第i条数据的CSI值
    csi = get_scaled_csi(csi_entry);%复数矩阵,1*3*30
    csi1 = squeeze(csi);% 去掉全为1的数组,复数矩阵,3*30
 
    % 提取当前时刻的信号数据包
    current_packet = csi1;
 
    % 计算振幅信息
    amplitude = abs(current_packet);
 
    % 计算相位信息
    phase = angle(current_packet);
 
    % 将振幅和相位信息存储到result_matrix中
    result_matrix(i, 1:90) = reshape(amplitude, 1, []);
    result_matrix(i, 91:180) = reshape(phase, 1, []);
 
end
 
% 可视化
% 振幅图
figure(1);
plot(result_matrix(:, 1:90));
xlabel('时间');
ylabel('振幅');
title('振幅随时间的变化');
grid on;
 
% 相位图
figure(2);
plot(result_matrix(:, 91:180));
xlabel('时间');
ylabel('相位 (弧度)');
title('相位随时间的变化');
grid on;
 
% 相位接卷绕后的图
phase_wrapped = result_matrix(:, 91:180); % 原始相位数据
phase_unwrapped = unwrap(phase_wrapped);
figure(3);
subplot(2, 1, 1);
plot(phase_wrapped);
title('Wrapped Phase');
subplot(2, 1, 2);
plot(phase_unwrapped);
title('Unwrapped Phase');
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 处理CSI数据进行画图的方法可以分为以下几个步骤: 1. 数据收集:首先需要收集到所需的CSI数据,可以通过无线电设备收集到信号的反射信息。 2. 数据清洗:收集到的CSI数据包含了大量的噪声和无效信息,需要对数据进行清洗,去除噪声和无效数据,以提高数据的质量。 3. 数据处理:在清洗后的数据上,可以进行一系列的数据处理,比如滤波、去除基线偏移、相位校正等操作,以进一步提升数据的准确性和可用性。 4. 数据分析:对处理后的CSI数据进行分析,可以提取出感兴趣的特征,比如信号强度、相位变化等,并进行统计和计算。 5. 数据可视化:将分析得到的数据以图表的形式进行可视化,可以使用一些数据可视化工具,如Matplotlib、Plotly等,或者使用编程语言进行编写自定义的图表代码。 6. 结果解释:根据画图的结果,可以对数据进行解释和分析,如发现信号强度随距离衰减的规律、不同天线之间的信号相位差等。 在进行CSI数据处理和画图过程中,需要具备一定的信号处理数据分析的知识,同时也需要了解相关的数据可视化工具的使用方法,以能够充分利用CSI数据提供的信息,为后续的研究和应用提供支持。 ### 回答2: 处理CSI数据进行画图,一般可以按照以下步骤进行: 1. 数据采集:首先需要采集CSI(Channel State Information)数据CSI数据是通过无线通信设备采集到的,包含了信道的强度、相位等信息。 2. 数据处理:采集到的原始CSI数据可能存在一些噪声和干扰,需要进行预处理。常见的预处理方法包括滤波、降噪和校正等,以提高数据的质量和准确性。 3. 数据解析:将预处理后的CSI数据解析为可以理解的形式。根据具体的需求,可以提取出信道的强度、相位、幅度和频率等信息。 4. 数据分析:对解析后的CSI数据进行进一步的分析。可以通过统计学方法、时频分析等手段,寻找数据的规律和特征。 5. 选择合适的画图工具:根据数据分析的结果和需求,选择合适的画图工具。常用的画图工具有Matplotlib、Plotly、Gnuplot等,可以根据个人喜好和熟悉程度选择。 6. 绘制图表:利用选定的画图工具,根据数据分析结果进行图表绘制。可以绘制折线图、柱状图、散点图等各种形式的图表,并根据需要添加标签、标题等,使图表更加清晰明了。 7. 数据可视化:处理CSI数据进行画图的最终目的是为了实现数据的可视化。通过图表的方式,可以直观地展示数据之间的关系、趋势和变化,帮助人们更好地理解和分析数据。 8. 结果分析:对绘制好的图表进行结果分析,根据图表的特点和规律,得出结论和相关的意义。 ### 回答3: 处理CSI数据用于画图可以分为以下几个步骤: 1. 数据采集和预处理:首先,需要使用合适的设备收集到CSI(Channel State Information)数据CSI数据通常是通过无线信号从无线通信设备收集而来的。采集到的数据可能会存在噪声和干扰,需要进行预处理来消除这些干扰,以提高数据的质量。 2. 数据解析和格式转换:CSI数据通常是以二进制格式存储,需要对其进行解析并将其转换为可处理数据格式,如矩阵或向量。可以使用专门的解析工具或编程语言来完成这个步骤。 3. 数据分析和特征提取:在CSI数据上进行分析和特征提取可以帮助我们了解无线信道的变化和特性。常见的特征包括幅度、相位、信号衰减、多径效应等。可以使用统计分析方法或相关算法来提取这些特征。 4. 数据可视化和画图:将处理后的CSI数据可视化是为了更好地理解数据。可以使用各种图表和图形工具来展示数据,如折线图、柱状图、热力图等。通过这些图表,可以展示CSI数据在时间、频率、空间等维度上的变化和趋势。 5. 结果分析和应用:通过分析和解释画图结果,可以得到对无线信道的更深入理解,并为其应用提供有效的参考。例如,在无线通信系统设计中,可以根据CSI数据画图结果来优化信道估计算法、改进无线传输性能等。 总之,处理CSI数据进行画图需要经过数据采集预处理、解析格式转换、分析特征提取、数据可视化和结果分析等过程。这些步骤相辅相成,可以帮助我们更好地理解和利用CSI数据

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值