Attempting to Get a Range Profile From Radar Image Processing
19 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello all,
I am attempting to get a range profile from in phase and quadrature data from a stepped frequency continuous wave radar. The first FFT I perform in a previous program to convert rse voltge time data to frequency data. Then I grab the amplitudes at the local oscillating frequency (500 kHz). I do this for 512 frequency steps across a bandwidth of 71 GHz to 79 GHz (8 GHz BW). The problem I am running the range profile, I always obtain a large spike of amplitudes directly in the center indices (after performing an FFT shift). I am not sure if this is something akin to a zero doppler line coming from the FFT's directly, or if my processing is incomplete. The program below is taking the in phase and quadrature data at each frequency bin across the bandwidth, performing an FFT on that, then developing, what I believe to be the amplitudes across the range. I have also included the in phase and quadrature data across the bandwidth. For reference the objects in the scene are about 4.2 meters from the radar.
The reason I am doing 2 FFTs here is because of the book Inverse Synthetic Aperture Radar Imaging With Matlab Algorithms by Caner Ozdemir, pages 170 and 171, which I have linked below. The useful passage starts three-quarters of the way down page 170, and an example range profile is shown in figure 4.6 on page 171.
0 comentarios
Respuestas (1)
Sudarsanan A K
el 24 de En. de 2024
Hi Cameron,
The code snippet you provided shows the basic steps for processing stepped frequency continuous wave (SFCW) radar data to obtain a range profile.
One common issue that can cause a spike in the center after an FFT is the presence of a DC offset in the time-domain signal. This offset translates into a spike at the zero-frequency bin after performing the FFT. The "fftshift" operation then moves this spike to the center of the spectrum.
Here is a small modification to your code to include DC offset removal:
% Set some preliminary variables
steps_across_bandwidth = 512;
index_along_bandwidth = 1:steps_across_bandwidth;
index_to_distance = linspace(0, 9.6, steps_across_bandwidth);
% Import the complex IQ data along the bandwidth
iqab = readmatrix('iqab.txt');
% Remove DC offset from the IQ data
iqab = iqab - mean(iqab);
% Next perform a hanning window across the complex IQ data across the
% bandwidth
iqab_windowed = hann(steps_across_bandwidth).*iqab;
% Now perform the FFT. I am doing a shift here as well. I am naming this
% variable iqar for IQ across range
iqar = fftshift(fft(iqab_windowed));
% Convert IQ across range to amplitudes across range
aar = abs(iqar);
% Graph the amplitudes along the bandwidth by step
figure;
plot(index_along_bandwidth, abs(iqab));
title('Amplitudes Along the Bandwidth');
ylabel('Amplitude');
xlabel('Frequency Step');
% Graph the amplitudes across range with the indices of the aar array adjusted for range
figure;
plot(index_to_distance, aar);
title('Complex FFT: Amplitudes Along the Range (Shift)');
ylabel('Amplitude');
xlabel('Distance (m)');
For an additional resource on designing a stepped FM waveform, simulating stepped FM radar I/Q data, and conducting range processing, refer to the following link:
I hope this helps!
0 comentarios
Ver también
Categorías
Más información sobre Detection, Range and Doppler Estimation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!