Анализируйте IQ-сигнал от радара (RF) на Python - нужна помощь :(

У меня есть несколько измерений 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)

Поэтому я не знаю, что мне делать в следующих шагах. Я в принципе знаю, что мне нужно найти вершины, но я не знаю, как это сделать. Как я могу определить скорость и так далее?

Спасибо за помощь

0 ответов

Другие вопросы по тегам