Radar FMCW na USRP. Cz.1 – Trochę teorii

W tej krótkiej serii artykułów opiszę implementację radaru FMCW na platformie USRP. Wiem, że teoria nie jest tutaj najbardziej pasjonującą częścią całości, jednak zanim wskoczymy w zagadnienia praktyczne warto mieć pewność, że będzie jasne, co właściwie robimy. Dlatego trochę teorii będzie potrzebne, ale obiecuję już w tym artykule zderzyć ją nieco z praktyką.

Najpierw jednak rozszyfrujmy skróty z tytułu, aby wiadomo było, o czym w ogóle ma być ta seria. Tak więc zacznijmy od drugiego z nich: USRP to z angielskiego Universal Software Radio Peripherial. Jest to urządzenie służące do szybkiego (stosunkowo) prototypowania systemów radiowych. Konkretniej omówimy je na przykładzie modelu X310, którego użyjemy. Na głównej płycie znajdziemy m.in. duży układ FPGA, pamięć, interfejsy do połączenia z komputerem, zaawansowany generator sygnału zegarowego i (co najważniejsze) miejsce na dwie nakładki RF. W tym przypadku użyjemy nakładek UBX-160. Znajdziemy na każdej z nich tzw. Front-end RF, czyli modulator i demodulator kwadraturowy, regulowane wzmacniacze (mocy dla nadajnika i LNA dla odbiornika) i układ generatora lokalnego (synchronizowany zegarem z płyty głównej). Dla nas istotne jest 160MHz pasma przenoszenia, możliwość przestrajania generatora lokalnego (a co za tym idzie częstotliwości nośnej) w zakresie od 10MHz do 6GHz i fakt, że jeśli generatory na obydwu nakładkach zostaną ustawione na tą samą częstotliwość, to ich sygnały będą zgodne w fazie (ładniej mówiąc: są koherentne).

Zostawiając szczegóły techniczne można powiedzieć, że dysponujemy układem FPGA, w którym możemy przetwarzać sygnał w paśmie podstawowym oraz układami, które pozwalają taki sygnał nadać i odebrać przy określonych częstotliwościach nośnych.

Teraz zajmijmy się drugim skrótem, który określa nam, co właściwie robimy. Nazwa radaru FMCW pochodzi od angielskiego Frequency-Modulated Continous-Wave. Radar ze zmodulowaną częstotliwościowo falą nośną na pierwszy rzut oka nie przypomina tradycyjnego, znanego wszystkim zapewne po prostu jako „radar” radaru impulsowego. Znajduje on jednak zastosowanie m.in. tam, gdzie nie chcemy wypromieniowywać fal radiowych o dużej mocy. Jego teoretyczna zasada działania jest równie prosta i tak samo trzeba użyć kilku sztuczek, aby działał on dobrze.

Poza samą nazwą FMCW potrzeba jeszcze określić rodzaj modulacji. Spośród wielu możliwości na razie skupimy się na modulacji liniowej (sygnał o kształcie piły). Schematyczna ilustracja takiej modulacji znajduje się na rysunku poniżej.

https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Fmcw_prinziple.png/330px-Fmcw_prinziple.png

Kolorem czerwonym oznaczony został sygnał nadawany, kolorem zielonym sygnał echa od jednego obiektu. Jak widać różnica częstotliwości pomiędzy sygnałem nadawanym i sygnałem echa jest przez większość czasu stała. Wynika ona z dwóch czynników. Pierwszym jest liniowa zmiana częstotliwości sygnału nadawanego, drugim jest efekt Dopplera. Jeśli oznaczymy nachylenie zbocza jako \beta = \frac{df}{dt}, to różnica częstotliwości będzie równa \Delta f=\beta \cdot \Delta t+f_{D}. Później dowiemy się, jak możemy sobie radzić z taką niejednoznacznością. Na razie jednak skupmy się jednak na podstawach przy założeniu zerowego przesunięcia Dopplera.

Wprowadźmy teraz jeszcze kilka określeń. Pomimo faktu ciągłości emitowanej fali, również w radarach FMCW używa się pojęcia czasu powtarzania impulsu (PRI), który jest okresem modulacji częstotliwości. Jego odwrotnością jest częstotliwość powtarzania impulsu (PRF). Pasmo sygnału, czyli różnicę pomiędzy najwyższą a najniższą nadawaną częstotliwością oznaczamy zwykle literą B. W tym przypadku szybkość modulacji możemy oznaczyć jako \beta = \frac{B}{PRI}=B\cdot PRF.

Niestety nie da się uniknąć kilku prostych wzorów, jeśli chcemy zrozumieć, na czym polega cała magia, która sprawia, że w kilku prostych operacjach otrzymujemy gotowy profil odległościowy (informację o odległościach do wszystkich obiektów opromieniowanych przez wiązkę). Najmniej przyjemny jest opis nadawanego przez radar sygnału w dziedzinie czasu:

s_{tx}(t)=cos[2\pi f_{c}t+2\pi (-\frac{Bt}{2}+\int_{0}^{t}\beta tdt)]=cos[2\pi f_{c}t+\pi(-Bt+\beta t^{2})],\linebreak 0<t<PRI

Sygnał taki nazywa się sygnałem LFM (od ang. Linear Frequency Modulation), albo „Chirp”. W paśmie akustycznym brzmi on jak świergot.

Echo jest po prostu przesuniętą w czasie kopią sygnału nadanego (na razie nie rozpatrujemy częstotliwości Dopplera). Ponieważ dysponujemy koherentnym nadajnikiem i odbiornikiem, które obsługują sygnały zespolone, zapiszmy teraz sygnał „Chirp” w paśmie podstawowym (słyszałem kiedyś określenie „świergot zespolony”), jako

s_{{tx}}(t)=exp[j\pi(-Bt+\beta t^{2})]

Przesunięte w czasie echo można zapisać następująco:

s_{{rx}}(t)=s_{{tx}}(t-\tau)=exp[j\pi(-B(t-\tau)+\beta (t-\tau)^{2})]=exp[j\pi(-B(t-\tau) \linebreak +\beta t^{2}-2\beta \tau t+\beta \tau ^{2})]

Pierwszym krokiem przetwarzania sygnałów jest tzw. zdudnienie sygnału echa z sygnałem nadawanym. Operacja ta ma na celu „wyłuskanie” z sygnału echa wyrazów, które pojawiły się w nim na skutek opóźnienia w czasie. Sama operacja zdudnienia w przypadku sygnałów rzeczywistych wymaga mieszania i filtracji dolnoprzepustowej, jednak w przypadku sygnałów w paśmie podstawowym wystarczy operacja mnożenia zespolonego:

s_{mix}(t)=s_{tx}(t)\cdot {s*}_{rx}(t)=exp(j2\pi \beta \tau t-j\pi \beta \tau ^{2}-j\pi B\tau)

Jak widać jest to sygnał harmoniczny o częstotliwości równej f_{mix}=\beta \tau i pewnej fazie początkowej (sprawą fazy zajmiemy się w dalszych artykułach przy omawianiu usuwania niejednoznaczności między odległością a prędkością radialną).

W tym momencie należy zauważyć, że w układzie FPGA przetwarzać możemy jedynie sygnały cyfrowe. Sprawami związanymi z kwantyzacją zajmować się nie będziemy, istotna jest jednak relacja pomiędzy pasmem a częstotliwością próbkowania. Teoretycznie zgodnie z twierdzeniem o próbkowaniu, w sygnale nie powinny znaleźć się częstotliwości wyższe niż częstotliwość Nyquista, czyli połowa częstotliwości próbkowania f_{s}. Ponieważ w sygnale zespolonym rozróżniamy również ujemne częstotliwości, pasmo sygnału będzie równe częstotliwości próbkowania, co odpowiada częstotliwościom unormowanym od -0.5 do 0.5. Taki „chirp” możemy zapisać następująco:

s_{tx}[n]=exp[j\pi (\frac{{n^{2}}}{N}-n)],N=PRI\cdot f_{s},0<n<N

Ponieważ częstotliwości unormowane -0.5 i 0.5 są sobie równoważne, modulacja częstotliwości de facto jest ciągła i sygnał zdudnień od jednego, stałego echa ma jedną stałą częstotliwość przez cały czas. W takim sygnale znajduje się cała informacja o wszystkich echach i odległościach do obiektów, od których pochodzą. Ponadto informację tą bardzo łatwo uzyskać za pomocą szybkiej transformaty Fouriera (FFT) uzyskując gotowy profil odległościowy.

 

Myślę, że na chwilę obecną wystarczy już tej teorii. Obiecuję, że następne artykuły nie będą już czysto teoretyczne, a konieczna teoria będzie wprowadzana na bieżąco razem z praktyczną jej realizacją. W kolejnych częściach dowiemy się między innymi jak w oszczędny sposób wygenerować w układzie cyfrowym sygnał „chirp”, jak inaczej modulować częstotliwość fali ciągłej, czy co zrobić, aby pozbyć się niejednoznaczności pomiędzy odległością a prędkością radialną. Zobaczymy też jak w rzeczywistości działa nasza praktyczna realizacja radaru. Do zobaczenia wkrótce.

Ten wpis został opublikowany w kategorii Artykuły. Dodaj zakładkę do bezpośredniego odnośnika.