• 大小: 3KB
    文件类型: .m
    金币: 2
    下载: 7 次
    发布日期: 2021-05-28
  • 语言: Matlab
  • 标签: fmcw  

资源简介

TI官方采用FMCW毫米波雷达进行非接触测量呼吸心跳的算法方案,matlab实现,1min计算一次,已验证

资源截图

代码片段和文件信息

%% breath & heart analyze
%% 目前版本ADC数据为复信号有符号点,大小16bit,二进制存储,一个二进制文件存储一个chirp
%% 每个chirp有4080个点(IQ各有2040个点),40mhz采样率,每个chirp50us

% 初始化变量
filelength = 300;
N = filelength/2;

adci = zeros(12048);
adcq = zeros(12048);
fft_data = zeros(filelength2048);
angle_fft = zeros(filelength2048);
fft_data_sq = zeros(filelength2048);
fft_data_last = zeros(11024); 
range_max = 0;

% 首先进行文件读取,300个文件,大概1min
files = dir(strcat(‘g:\\adc_data\\‘‘*.dat‘));
for i = 1:filelength
    fp = fopen(strcat(‘g:\adc_data\‘files(i).name));
    adc_data = fread(fp2040*2‘int16‘);
    adci(1:2040) = adc_data(1:2:4080-1); %数据补零,可用可不用
    adcq(1:2040) = adc_data(2:2:4080);
    fft_data(i:) = fft(adci + 1i*adcq2048); %Range-FFT
    fft_data_sq = abs(fft_data(i:));
    real_data = real(fft_data(i:));
    imag_data = imag(fft_data(i:));
    
    for j = 1:2048  %对每一个距离点取相位 extract phase
        angle_fft(ij) = atan2(imag_data(j)real_data(j));
    end
end

% Range-bin tracking 找出能量最大的点,即人体的位置  
for j = 1:2048
    for i = 1:filelength % 进行非相干积累
        fft_data_last(j) = fft_data_last(j) + fft_data_sq(ij);
    end
    if ( fft_data_last(j) > range_max)
        range_max = fft_data_last(j);
        max

评论

共有 条评论