前言:在上一篇笔记中对主要的波形参数含义进行解释,接下来就是数据预处理的部分了,后续是具体算法处理。数据预处理主要包括:ADC数据读取;2D-FFT处理两个部分。
一、ADC数据读取
利用DCA1000采集数据并保存为adc_data.bin,使用readDCA1000代码读取bin文件至matlab里,然后再进行处理。附上readDCA1000代码https://download.csdn.net/download/sally789/86397346
二、2D-FFT处理
首先是距离维上做1D-FFT:对每个采样点加窗,然后对每个chirp在采样点维度上做FFT
%距离FFT
range_win = hamming(n_samples); %加海明窗
doppler_win = hamming(n_chirps);
range_profile = [];
for k=1:n_RX
for m=1:n_chirps
temp=data_radar(:,m,k).*range_win; %加窗函数
temp_fft=fft(temp,N); %对每个chirp做N点FFT
range_profile(:,m,k)=temp_fft;
end
end
其次是多普勒维上做1D-FFT:对每个chirp加窗,然后对距离FFT结果在chirp维度上做FFT
%多普勒FFT
speed_profile = [];
for k=1:n_RX
for n=1:N
temp=range_profile(n,:,k).*(doppler_win)';
temp_fft=fftshift(fft(temp,M)); %对rangeFFT结果进行M点FFT
speed_profile(n,:,k)=temp_fft;
end
end
至此,2D-FFT操作结束。
插入一条:关于fftshift函数,可参考fftshift函数详解 - limanjihe - 博客园 (cnblogs.com)
1、作用:将零频点移到频谱中间
2、对于实信号:实信号以fs为采样率的信号在处混叠,所以实信号FFT的结果前半部分对应[0,
],后半部分对应[-
,0]。因此为了得到正确结果应该是将频率减去fs即可得到频谱对应的真实负频率。做了fftshift后就可达到这样效果。
3、对于复信号:复信号没有负频率,以fs为采样速率的信号,fft的频谱结果是从[0,fs]的,加上后才是正确结果。