Widar3.0:Matlab代码学习笔记

本文详细描述了在MATLAB中如何通过MEX文件调用C语言实现CSI数据读取和处理,包括get_scaled_csi函数、多普勒频谱生成与速度映射,以及使用fmincon进行非线性优化。同时介绍了DVM_main函数中涉及的关键信号处理技术,如PCA降维和时频分析(连续小波变换与短时傅里叶变换)。

CSI_TOOL_BOX部分

csi_get_all.m

function [cfr_array, timestamp] = csi_get_all(filename)
	csi_trace = read_bf_file(filename);
	...
	csi_all = squeeze(get_scaled_csi(csi_entry)).';
	...
	csi = [csi_all(:,1); csi_all(:,2); csi_all(:, 3)].';
	...
	cfr_array(k,:) = csi;
end
  • 读取文件中的CSI数据,并将结果存储在csi_trace变量中。

  • 调用get_scaled_csi函数,将csi_entry作为参数传递,并将返回的标准化CSI数据存储在csi_all中。

  • 从csi_all中选择一个天线对应的CSI数据,并将其展开成一个行向量csi

  • 将csi存储在cfr_array的第k行中,用于构建频率响应矩阵。

read_bf_file.m文件

输出

输出

  • 输出结果和初次csi matlab复现时结果相同

  • 1 * 3 * 30 的数据

  • (:,perm(1:Nrx),:) 表示对 CSI 数据进行切片操作

  • ret{count}.csi(:,1:Nrx,:) 表示以原始天线顺序为基准的 CSI 数据。
ret{
   
   count}.csi(:,perm(1:Nrx),:) = ret{
   
   count}.csi(:,1:Nrx,:);

read_bfee.c

在 MATLAB 中,可以通过 MEX 文件来调用使用 C 语言编写的函数。MEX 文件是一种特殊的 MATLAB 可执行文件,允许 MATLAB 与底层的 C 或 C++ 代码进行交互。通过 MEX 文件,您可以将 C 语言代码编译成 MATLAB 可识别的二进制文件,从而在 MATLAB 环境中调用 C 函数。

使用 MATLAB 提供的 MEX 工具(mex 命令)将 C 函数编译成 MEX 文件。 这将生成一个 MATLAB 可执行文件,用于在 MATLAB 中调用 C 函数。

disp

  • 控制台输出

BVP部分

generate_vs.m

调用DVM_main.m

DVM_main.m

用于生成多普勒频谱(Doppler Spectrum)并进行速度映射。

  1. 通过调用 get_doppler_spectrum 函数生成多普勒频谱,并存储在 doppler_spectrum 变量中。
  2. 对多普勒频谱进行速度映射处理,将多普勒频谱映射到速度空间。
  3. 对不同的频率段进行处理,将多普勒频谱映射到速度谱,并进行优化处理。
  4. 在循环中,对每个频率段进行优化处理,并将处理后的速度谱保存到文件中。
[doppler_spectrum, freq_bin] = get_doppler_spectrum([dpth_ges, spfx_ges],... rx_cnt, rx_acnt, 'stft');
                

spfx_ges 作为文件名参数,传递到DVM_main

38-53

for kk = 1:6
    figure;
    
    colormap(jet);
    % 使用 mesh 函数绘制三维图形,横轴为 1 到多普勒谱的第三维度大小,纵轴为 -60 到 60,数据为第 kk 个维度的多普勒谱挤压结果
    mesh(1:size(doppler_spectrum,3),-60:60,squeeze(doppler_spectrum(kk,:,:)));view([0,90]);
    xlim([0,size(doppler_spectrum,3)]);ylim([-
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

隼尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值