paint-brush
Глубокое обучение: периферийные устройства с радарами mmWave FMCW. Часть 1. Обработка сигналовк@owlgrey
2,720 чтения
2,720 чтения

Глубокое обучение: периферийные устройства с радарами mmWave FMCW. Часть 1. Обработка сигналов

к Dmitrii Matveichev 10m2024/04/10
Read on Terminal Reader

Слишком долго; Читать

Радар FMCW миллиметрового диапазона обеспечивает универсальное обнаружение независимо от условий окружающей среды и идеально подходит для устройств и приложений, таких как обнаружение людей без камер. Эффективный и экономичный, он анализирует изменения частоты импульсного сигнала для измерения расстояния, скорости и направления, что обещает значительные достижения в области бытовой электроники и технологий Wi-Fi.
featured image - Глубокое обучение: периферийные устройства с радарами mmWave FMCW. Часть 1. Обработка сигналов
Dmitrii Matveichev  HackerNoon profile picture

Радиолокатор непрерывного действия с частотной модуляцией миллиметрового диапазона (FMCW) работает путем излучения и обнаружения радиочастотных (РЧ) электромагнитных волн. Благодаря своим уникальным свойствам эта технология предлагает ряд преимуществ для интерактивных систем и приложений. Он работает независимо от условий освещения, шума окружающей среды или погоды, обеспечивая быстрое и точное обнаружение.


Более того, он может проникать в различные материалы, что делает его идеальным для интеграции в различные устройства и настройки. Датчик может быть выполнен в виде небольшого твердотельного полупроводникового блока, работающего на радиочастотах миллиметрового диапазона — по сути, радиолокационного чипа. Этот чип компактен, потребляет мало энергии, не имеет движущихся частей и может экономично производиться в больших количествах.


Радар mmWave FMCW может использоваться во многих устройствах, таких как:

  • гаджеты виртуальной реальности (VR)
  • носимые технологии, умная одежда
  • Устройства Интернета вещей (IoT)
  • игровые контроллеры
  • обычная электроника, такая как смартфоны, планшеты и ноутбуки.


Более того, радары mmWave FMCW могут использоваться вместе с моделями глубокого обучения для решения различных задач:

  • обнаружение присутствия человека
  • подсчет людей, локализация и отслеживание
  • классификация деятельности человека (человек спит/сидит/гуляет/занимается спортом и т.д.)
  • распознавание жестов
  • признание места
  • одометрия и SLAM


Обратите внимание, что все эти приложения можно решить без камер, с устройством с очень низким энергопотреблением и относительно небольшими NN.


В ближайшие несколько лет многие производители бытовой электроники, вероятно, начнут активно использовать этот тип датчиков с алгоритмами глубокого обучения для решения вышеупомянутых проблем. Кроме того, в 2021 году был утвержден стандарт Wi-Fi IEEE 802.11ау. Этот стандарт использует те же радиочастоты и принципы работы, что позволяет маршрутизаторам Wi-Fi получать доступ к тем же функциям, что и радары mmWave FMCW.


В этой и следующих двух статьях будут рассмотрены:

  • Обработка радиолокационного сигнала mmWave FMCW: как получить дальность, доплеровский сдвиг и угол из радиочастотного сигнала
  • Преимущества использования радара FMCW по сравнению с камерой
  • Приложения глубокого обучения радиолокационному сигналу mmWave FMCW


В этой статье объясняется, как обрабатывается сигнал радара mmWave FMCW. Код, используемый для создания большинства рисунков, можно найти в Google Colab или в конце статьи.

FMCW ммволновой радар

Сигнал миллиметрового FMCW радара позволяет измерять расстояние до всех объектов в поле его зрения, их скорость и угловое положение (азимут и угол места). Сигнал от радара может быть обработан в виде изображений очень малого разрешения (обычно ~32x32 - 256x64 пикселей) с дальностью/скоростью/углом по осям изображения, как на рисунке ниже - дальность-допплеровский (дальность-скорость) дальность- угловые изображения.



Радиолокационный сигнал mmWave FMCW обрабатывается в доплеровские изображения дальности и угла дальности, а также изображение с камеры (Источник: https://github.com/ZhangAoCanada/RADDet?tab=readme-ov-file)

Датчик состоит из нескольких (1 или более) всенаправленных передающих антенн и нескольких (1 или более) приемных антенн. Передающая и приемная антенны работают одновременно. Поле зрения радара обычно составляет ~120°, а максимальное расстояние может составлять от пары сантиметров до десятков метров.

Как измеряется расстояние

Обычно нам нужно излучать сигнал в момент времени t1 и получать его отражение в момент времени t2 , чтобы измерить расстояние. Затем расстояние можно рассчитать как d=(t2-t1)*c , где c — скорость света, поскольку радиоволна распространяется со скоростью света.


Антенна радара FMCW мм-диапазона является всенаправленной, и ей необходим способ измерения времени t1 и t2 для всех объектов в поле зрения радара. Для этого используется сигнал FMCW (непрерывная волна с частотной модуляцией). Основным компонентом радара является чирп. Chirp — это синусоидальный радиосигнал, частота которого линейно увеличивается со временем, как показано на рисунке ниже.

От начала до конца чирпа частота радиоволны модулируется (изменяется) по заданному линейному закону, как на первом рисунке. На втором рисунке показан пример чирпа длительностью 1 мс.

Лихард характеризуется начальной (f_start) и конечной (f_end) частотами, полосой пропускания ( B=f_end-f_start ) и временем чирпа (Tc). Время чирпа варьируется от нескольких микросекунд до нескольких миллисекунд. Начальная частота обычно составляет ~30, 60 или 77 ГГц, в зависимости от применения радара. Полоса пропускания чирпа варьируется от ~0,5 ГГц до нескольких ГГц.

Сигнал IF представляет собой разницу между текущим передаваемым сигналом Tx и принимаемыми сигналами Rx. (Источник: https://www.ti.com/content/dam/videos/external-videos/2/3816841626001/5415203482001.mp4/subassets/mmwaveSensing-FMCW-offlineviewing_0.pdf)

Приемная (Rx) и передающая (Tx) антенны работают одновременно. Синтезатор непрерывно генерирует один ЛИМ-сигнал, который отправляется на передающую антенну Tx и смеситель. При этом сигнал, принятый приемной антенной, также поступает на смеситель. Микшер выводит разницу между сигналом, отправленным на Tx, и сигналом, полученным Rx.

Смеситель — это простое устройство, которое принимает синусоидальный сигнал на два входа и выдает новый синусоидальный сигнал, частота и фаза которого представляют собой разность частот и фаз входных сигналов.

Частота ЛЧМ-сигнала изменяется во времени по известному линейному закону (Наклон), что означает, что если перед радаром находится один-единственный объект, этот объект будет генерировать сигнал x_out с постоянный частота F_obj=S2d/c , где S - скорость изменения частоты ЛЧМ-сигнала (наклон), d - расстояние до объекта, c - скорость света.

Если перед радаром находится один объект, этот объект будет генерировать сигнал x_out с постоянной частотой F_obj=S2d/c

Мы можем измерить расстояние до всех объектов в поле зрения радара, просто анализируя сигнал от смесителя без измерения времени: d=(F_obj*c)/(2*S). В литературе сигнал x_out называется «сигналом ПЧ» (сигналом промежуточной частоты).


Дополнительный бонус конструкции датчика: несущая частота сигнала обычно составляет около 30ГГц или 60ГГц. Если бы нам нужно было оцифровать сигнал таких частот, у нас были бы очень высокие требования к АЦП. Весь анализ сигналов выполняется на сигнале ПЧ, частота которого обычно составляет около пары МГц, что значительно снижает требования к АЦП.

Используйте преобразование Фурье, чтобы найти дальность каждого объекта в поле зрения радара

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


Преобразование Фурье ПЧ-сигнала выявляет несколько тонов, и частота каждого тона пропорциональна дальности до каждого объекта от радара - в литературе это преобразование Фурье также называется быстрым преобразованием Фурье или преобразованием Фурье по дальности.

ПЧ-сигнал чирпа во временной области

ПЧ-сигнал чирпа в частотной области после быстрого преобразования Фурье

Проблема: если на одном расстоянии находится несколько объектов, у нас проблемы, потому что БПФ по диапазону не позволяет нам различать два объекта. Но если объекты движутся с разной скоростью, их можно разделить по скорости.

Как измерить скорость с помощью нескольких импульсов

Чирикания обычно повторяются сразу друг за другом или с небольшой задержкой. В литературе время между началом двух звуковых сигналов называется временем повторения звуковых сигналов. Несколько чирпов (обычно от 16 до 256) складываются вместе, образуя радарный кадр. Время кадра = Время повторения звуковых сигналов * Число звуковых сигналов. Обычно время 1 кадра составляет от десятков микросекунд до десятков миллисекунд.

Кадр радара — несколько звуковых сигналов, сложенных вместе. Каждый чирп представляет собой частотно-модулированную синусоиду, но для удобства каждый чирп изображается как линейный закон частотной модуляции. Полученный сигнал ПЧ от каждого чирпа позволяет оценить расстояние до всех объектов в поле зрения.

Радарный кадр (несколько щебетаний, сложенных вместе), визуализируемый в частотной области. Преобразование Фурье применяется к каждому чирпу отдельно. Желтые горизонтальные линии/кривые представляют объекты в определенном диапазоне — на этом рисунке есть два объекта в интервалах диапазона ~40 и ~50.

Зачем объединять несколько чириканий вместе? Фаза сигнала ПЧ очень чувствительна к малым и большим вибрациям объектов в поле зрения радара — ее можно использовать даже для измерения частоты вибрации двигателя или сердцебиения человека или животного.


Измерить скорость объекта на определенном расстоянии можно путем анализа изменения фазы во времени (изменение фазы от чирпа к чирпу):


  • Передайте как минимум два импульсных сигнала, разделенных временем Tc.


  • После преобразования Фурье диапазона каждый чирп будет иметь пики в одних и тех же местах, но с разными фазами.


  • Изменение фазы ω в чирпах соответствует скорости объекта.

Алгоритм измерения скорости миллиметровым FMCW радаром очень прост:

  1. Примените преобразование Фурье к каждому чирпу в кадре. Каждая частота соответствует определенному расстоянию до объекта. Иногда эти частоты называют интервалами диапазона, поскольку каждая частота соответствует определенному диапазону.


  2. если исходный сигнал ПЧ представлен некомплексными значениями, вторая половина частот (элементы разрешения по диапазону) должна быть отброшена в соответствии с теоремой Найквиста-Шеннона.


  3. Примените еще одно преобразование Фурье к каждому элементу диапазона — разложите изменения фазы с течением времени на частоты, где частота будет соответствовать определенным доплеровским значениям (скорости).

Слева направо: ПЧ-сигнал одиночного ЛЧМ после преобразования Фурье (преобразование Фурье по дальности), кадр радиолокатора после преобразования Фурье по дальности, доплеровское изображение по дальности. Значения «пикселей» в допплеровском изображении представляют собой амплитудную характеристику и фазу на определенной скорости и расстоянии.

Проблема: если на одном расстоянии находятся два объекта, движущиеся с одинаковой скоростью, они будут давать один пик на изображении в допплеровском режиме. Но если у нас есть несколько приемных антенн, возможно, можно будет разделить объекты по их угловому положению.

Как измерить угловое положение

Как объяснялось ранее, небольшое изменение расстояния приведет к изменению фазы. Изменение фазы в чирпах, разделенных во времени, используется для расчета скорости объектов. Изменение фазы в ЛМ-сигналах, разнесенных в пространстве (чип-сигналы, принимаемые разными приемными антеннами), можно использовать для оценки угла.


Алгоритм оценки угла с несколькими приемными антеннами Rx очень прост:

  1. Передайте кадр щебетаний с помощью антенны Tx.


  2. Вычислите 2D-преобразование Фурье (допплеровское изображение диапазона) кадров, полученных всеми антеннами Rx. Дальнопплеровские изображения каждой приемной антенны будут иметь пики в одном и том же месте и доплеровский режим, но с разной фазой (разность фаз соответствует расстоянию между приемными антеннами).


  3. Используйте разность фаз (ω), чтобы оценить угол прибытия объектов — примените третье преобразование Фурье ко всем антеннам Rx.

Применение третьего преобразования Фурье ко всем приемным антеннам приведет к получению куба дальности-допплеровского угла. Куб можно визуализировать как изображения доплеровского диапазона, угла диапазона и угловой скорости.

Обработка радиолокационных данных mmWave FMCW с помощью Python

 import os import numpy as np import scipy import scipy.io as spio import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec import math


Скачать пример данных радара mmWave FMCW из проекта RAMP-CNN .

 !pip uninstall gdown -y && pip install gdown !gdown -V !gdown --folder https://drive.google.com/drive/folders/1Eg-8R45RPvifNf2VYI_MG-LRjdkLOHTf -O /content/sample_slice_data


Загрузить данные из файла.

 file_name = '/content/sample_slice_data/2019_04_30/2019_04_30_pbms002/2019_04_30_pbms002_000000.mat' mat = spio.loadmat(file_name, squeeze_me=True) adc_data = np.asarray(mat["adc_data"]) print(adc_data.shape) # ADC samples, vRx, chirps - (128, 8, 255) print(adc_data.dtype) # complex128


Функции визуализации.

 def show_one_chirp(one_chirp_data, y_label='amplitude', x_label='One chirp'): plt.figure(figsize=[5, 4]) plt.plot(one_chirp_data) plt.xlabel(x_label) plt.ylabel(y_label) plt.show() def show_image(image_data, image_name, x_label='', y_label=''): plt.imshow(image_data) plt.title(image_name) plt.xlabel(x_label) plt.ylabel(y_label) plt.show() def show_3_images(img_data1, img_data2, img_data3): plt.figure(figsize=(10, 8)) plt.subplot(2, 2, 1) plt.imshow(img_data1[0], aspect=1.44) plt.title(img_data1[1]) plt.xlabel(img_data1[2]) plt.ylabel(img_data1[3]) plt.subplot(2, 2, 2) plt.imshow(img_data2[0], aspect=1.0) plt.title(img_data2[1]) plt.xlabel(img_data2[2]) plt.ylabel(img_data2[3]) plt.subplot(2, 2, 3) plt.imshow(img_data3[0], aspect=1.0) plt.title(img_data3[1]) plt.xlabel(img_data3[2]) plt.ylabel(img_data3[3]) plt.show()


Покажите данные одного АЦП щебета.

 show_one_chirp(np.absolute(adc_data[:,0,0]), x_label='IF signal of a chirp') 

Показывать звуковой сигнал после диапазона fft.

 chirp_fft = np.fft.fft(adc_data[:,0,0]) show_one_chirp(np.absolute(chirp_fft), x_label='IF signal amplitude (range)', y_label='Amplitude') 

Покажите кадр радара во временной и частотной областях.

 # show all chirps show_one_chirp(np.absolute(adc_data[:,0,:]), x_label='IF signal of frame chirps') show_image(np.absolute(np.fft.fft(adc_data[:,:,:], axis=0).mean(1)), 'range FFT', x_label='Chirps', y_label='Range') 

Получите дальность, доплеровский режим и угол на основе данных радара.

 def get_range_doppler_angle(adc_data_in): # adc_data_in - ADC samples, vRx, chirps samples_in = adc_data_in.shape[0] range_window = np.hamming(samples_in).reshape(-1,1,1) range_data = np.fft.fft(adc_data_in*range_window, samples_in, axis=0) # chirps_in = range_data.shape[2] doppler_window = np.hamming(chirps_in).reshape(1,1,-1) range_doppler_data = np.fft.fftshift(np.fft.fft(range_data*doppler_window, chirps_in, axis=2), axes=2) # # samples, vRx, chirps angle_window = np.hamming(range_doppler_data.shape[1]).reshape(1,-1,1) angle_bins=180 rda_data = np.fft.fftshift(np.fft.fft(range_doppler_data*angle_window, angle_bins, axis=1), axes=1) return range_data, range_doppler_data, rda_data
 range_image, range_doppler_image, rda_cube = get_range_doppler_angle(adc_data)
 show_3_images([np.absolute(range_image.mean(axis=1)), 'range doppler', 'Doppler', 'Range'], [np.absolute(rda_cube.mean(axis=2)), 'range angle', 'Angle', 'Range'], [np.absolute(rda_cube.mean(axis=0)), 'angle doppler', 'Doppler', 'Angle'] ) 

Дальнейшее чтение

Что дальше?

Следующие две статьи будут посвящены:

  • Плюсы и минусы использования радара mmWaveFMCW по сравнению с камерой
  • Приложения глубокого обучения радиолокационного сигнала mmWave FMCW