Add files via upload

This commit is contained in:
St. Zhang 2024-03-11 17:23:49 +08:00 committed by GitHub
parent e1eabd4747
commit b7d4973c2f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 107 additions and 1 deletions

View File

@ -52,4 +52,4 @@ function data_radar=DCA1000_Read_Data(fname)
data_radar(:,:,11)=data_radar_11;
data_radar(:,:,12)=data_radar_12;
end
end

View File

@ -0,0 +1,69 @@
clear;close all;clc;
%% 使mmWave Studio
global parameter;
parameter = generateParameter();
Range_Res=parameter.c/(2*parameter.BandwidthValid); %
Range_Index=Range_Res*(1:parameter.rangeBin);
Speed_Res=parameter.lambda/(2*parameter.dopplerBin*parameter.Tc);
Speed_Index=(-parameter.dopplerBin/2:1:parameter.dopplerBin/2-1)*Speed_Res;
Azimuth_Index=(-parameter.angleBin/2:1:parameter.angleBin/2-1);
global frame;
frame = 1; %frame
%% ADC
fname='C:\ti\mmwave_studio_02_01_01_00\mmWaveStudio\PostProc\adc_data.bin';
data_radar=DCA1000_Read_Data(fname);
%% FFT
range_win = hamming(parameter.Samples); %
doppler_win = hamming(parameter.Chirps);
range_profile = zeros(parameter.Samples,parameter.Chirps,parameter.txNum*parameter.rxNum);
for k=1:parameter.txNum*parameter.rxNum
for m=1:parameter.Chirps
temp=data_radar(:,m,k).*range_win; %
temp_fft=fft(temp,parameter.rangeBin); %chirpNFFT
range_profile(:,m,k)=temp_fft;
end
end
%% FFT
speed_profile = zeros(parameter.Samples,parameter.Chirps,parameter.txNum*parameter.rxNum);
for k=1:parameter.rxNum
for n=1:parameter.rangeBin
temp=range_profile(n,:,k).*(doppler_win)';
temp_fft=fftshift(fft(temp,parameter.dopplerBin)); %rangeFFTMFFT
speed_profile(n,:,k)=temp_fft;
end
end
%% FFT
angle_profile = zeros(parameter.Samples,parameter.Chirps,parameter.angleBin);
for n=1:parameter.rangeBin %range
for m=1:parameter.dopplerBin %chirp
temp=speed_profile(n,m,:);
temp=temp(1:8);
temp_fft=fftshift(fft(temp,parameter.angleBin)); %2D FFTQFFT
angle_profile(n,m,:)=temp_fft;
end
end
%% 2D FFT
figure(1);
speed_profile_temp = reshape(speed_profile(:,:,1),parameter.rangeBin,parameter.dopplerBin);
speed_profile_Temp = speed_profile_temp';
[X,Y]=meshgrid((0:parameter.rangeBin-1)*parameter.Fs*parameter.c/parameter.rangeBin/2/parameter.Slope,(-parameter.dopplerBin/2:parameter.dopplerBin/2-1)*parameter.lambda/parameter.Tc/parameter.dopplerBin/2);
mesh(X,Y,(abs(speed_profile_Temp)));
xlabel('(m)');ylabel('(m/s)');zlabel('');
title('2D FFT');
xlim([0 (parameter.rangeBin-1)*parameter.Fs*parameter.c/parameter.rangeBin/2/parameter.Slope]); ylim([(-parameter.dopplerBin/2)*parameter.lambda/parameter.Tc/parameter.dopplerBin/2 (parameter.dopplerBin/2-1)*parameter.lambda/parameter.Tc/parameter.dopplerBin/2]);
%% Range-Azimuth
angle_profile_display=abs(angle_profile);
angle_profile_display=squeeze(sum(angle_profile_display,2));
figure(2);
imagesc(Azimuth_Index,Range_Index,angle_profile_display);
set(gca,'YDir','normal');
title('Range-Azimuth Heatmap', 'FontWeight', 'bold');
xlabel('Azimuth(°)');
ylabel('Range(m)');

View File

@ -0,0 +1,37 @@
%%
function parameter = generateParameter()
parameter.c = 3e8; %
parameter.stratFreq = 77e9; %
parameter.Tr = 60e-6; %
parameter.Idle_time = 100e-6; %
parameter.Tc = parameter.Tr+parameter.Idle_time; %Chirp
parameter.Samples = 256; %
parameter.Fs = 10e6; %
parameter.Tframe_set = 80e-3; %
parameter.rangeBin = parameter.Samples ; %rangebin
parameter.Chirps = 128; %chirp
parameter.dopplerBin = parameter.Chirps; %dopplerbin
parameter.Slope = 29.982e12; %chirp
parameter.Bandwidth = parameter.Slope * parameter.Tr ; %
parameter.BandwidthValid = parameter.Samples/parameter.Fs*parameter.Slope; %
parameter.centerFreq = parameter.stratFreq + parameter.Bandwidth / 2; %
parameter.lambda = parameter.c / parameter.centerFreq; %
parameter.txAntenna = ones(1,3); %线
parameter.rxAntenna = ones(1,4); %线
parameter.txNum = length(parameter.txAntenna);
parameter.rxNum = length(parameter.rxAntenna);
parameter.virtualAntenna = length(parameter.txAntenna) * length(parameter.rxAntenna);
parameter.angleBin = 180; %anglebin
parameter.dz = parameter.lambda / 2; %线
parameter.dx = parameter.lambda / 2; %线
parameter.numCPI = 50; %
end