資源簡介
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
- 上一篇:kld采樣
- 下一篇:matlab編寫的地震剖面顯示程序
評論
共有 條評論