У меня есть несколько измерений I и Q с небольшого CW-радара. Желание проанализировать данные и определить скорость измеряемого объекта после записи их в массивы (I-массив и Q-массив).
На данный момент я получил python код:
import numpy as np
from numpy.fft import fft, fftshift
...
Nm_CW = 200
Fs_CW = 25000
f0 = 5
f_0 = 24 + f0/1000
ComplexVector = I + 1j*Q
# Apply the selected window to the complex vector previous to the FFT calculation
ComplexVector = ComplexVector * np.hanning(Nm_CW) * 2 / 3.3
#
N_FFT = 4096
c = 299792458
max_velocity = c/(2*f_0*1000000000) * (Fs_CW/2)
SpeedUnits_Selected = self.SpeedUnits_CW.currentIndex()
if (SpeedUnits_Selected == 1):
SpeedFactor = 3.6
max_velocity *= SpeedFactor
x_axis_label = 'Velocity (km/h)'
self.label_MaximumSpeed.setText('Maximum Velocity (km/h)')
elif (SpeedUnits_Selected == 2):
SpeedFactor = 2.23694
max_velocity *= SpeedFactor
x_axis_label = 'Velocity (mph)'
self.label_MaximumSpeed.setText('Maximum Velocity (mph)')
else:
SpeedFactor = 1
x_axis_label = 'Velocity (m/s)'
self.label_MaximumSpeed.setText('Maximum Velocity (m/s)')
FrequencyDomain = 2*np.absolute(fftshift(fft(ComplexVector/Nm_CW, N_FFT)))
self.MaximumSpeed.setValue(max_velocity)
x_axis = np.linspace(-max_velocity, max_velocity, num = N_FFT)
FrequencyDomain[int(N_FFT/2)] = FrequencyDomain[int(N_FFT/2) - 1]
FrequencyDomain = 20 * np.log10(FrequencyDomain)
Так что я не знаю, что мне делать для следующих шагов. Я в основном знаю, что я должен найти пики, но я не знаю, как это сделать. Как я могу определить скорость и так далее?
Спасибо за помощь