Files
2024-05-09 16:48:41 +08:00

45 lines
1.2 KiB
Matlab
Executable File

% https://blog.csdn.net/Xiao_Jie123/article/details/115296169
clc; clear;
global c T_r F_s k lambda
%% 加载数据
% IF_mat = cell2mat(struct2cell(load('Ego_vehicle.mat','IF_mat')));
IF_mat = cell2mat(struct2cell(load('Ego_vehicle_ksy.mat','IF_mat')));
[N, M] = size(IF_mat);
%% 生成窗
range_win = hamming(N); %生成range窗
doppler_win = hamming(M); %生成doppler窗
%% range fft
for i = 1:1:N
temp = IF_mat(i,:) .* range_win';
% temp_fft = fftshift(fft(temp,N));
temp_fft = fft(temp,N);
IF_mat(i,:) = temp_fft;
end
%% doppler fft
for j = 1:1:M
temp = IF_mat(:,j) .* doppler_win;
temp_fft = fftshift(fft(temp,M));
IF_mat(:,j) = temp_fft;
end
%% 画图
figure;
distance_temp = (-N/2:N/2 - 1) * F_s * c / N / 2 / k;
% distance_temp = (0:N - 1) * F_s * c / N / 2 / k;
speed_temp = (-M / 2:M / 2 - 1) * lambda / T_r / M / 2;
[X,Y] = meshgrid(distance_temp,speed_temp);
mesh(X,Y,(abs(IF_mat)));
xlabel('距离(m)');
ylabel('速度(m/s)');
zlabel('信号幅值');
title('2维FFT处理三维视图');
figure;
speed_temp = -speed_temp;
imagesc(distance_temp,speed_temp,abs(IF_mat));
title('距离-多普勒视图');
xlabel('距离(m)');
ylabel('速度(m/s)');