Łukasz Deńca – Implementacja analizatora widma na

Transkrypt

Łukasz Deńca – Implementacja analizatora widma na
Łukasz Deńca – V rok
Koło Techniki Cyfrowej
dr inż. Wojciech Mysiński – opiekun naukowy
IMPLEMENTATION OF THE SPECTRUM ANALYZER
ON MICROCONTROLLER WITH ARM7 CORE
IMPLEMENTACJA ANALIZATORA WIDMA NA
MIKROKONTROLERZE Z RDZENIEM ARM7
Keywords:, ARM7, embedded, spectrum analyzer
Słowa kluczowe: ARM7, analizator widma
The article is about the implementation of a spectrum analyzer on ARM7 core
microcontroller. The system uses a built-in microcontroller A/D converter and a graphical LCD
display. In the microcontroller has been implemented FFT algorithm and the results are presented
graphically on the LCD display.
1. Analizator widma
Analizator widma jest urządzeniem pomiarowym służącym do prezentowania widma
częstotliwościowego badanego sygnału który jest zmienny w czasie. Do badanych wielkości mogą
należeć takie wielkości jak wychylenia mechaniczne, długość fali optycznej itp. Natomiast
najciekawszym i najpowszechniejszym zastosowaniem analizatora widma jest badanie sygnałów
elektrycznych zarówno napięciowych jak i prądowych. Analizator widma znalazł szerokie
zastosowanie przy analizie sygnałów akustycznych, cyfrowych, w diagnostyce np. diagnostyka
uszkodzeń silników elektrycznych oraz w wielu innych dziedzinach.
Okresowe przebiegi badanych sygnałów elektrycznych można przedstawić za pomocą
szeregu Fouriera. Analizator widma właściwie dostarcza informacji o tym z jakich funkcje
harmoniczne składają się na badany sygnał oraz dostarcza informacji o cechach poszczególnych
funkcji harmonicznych takich jak amplituda, częstotliwość , przesunięcie fazowe.
2. Budowa układu pomiarowego
Analizator widma został zaimplementowany na mikrokontrolerze z rdzeniem ARM7.
Układ ma budowę modułową co pozwala na dalszą rozbudowę i udoskonalanie układu.
Rysunek 1. Schemat blokowy przedstawiający budowę układu
Podczas omawiania poszczególnych bloków funkcyjnych analizatora widma posłużymy
się schematem blokowym ( Rysunek 1.)
Układ formujący sygnał – układ składający się z dzielnika napięcia oraz kondensatora
zapewniającego odcięcie składowej stałej sygnału. Dzielnik napięciowy pozwala na
przesunięcia punktu zera pozornego co pozwala na badanie sygnałów przemiennych.
Przetwornik A/C – służy do zbierania próbek sygnału, wykorzystano wbudowany w
mikrokontroler 10-bitowy przetwornik A/C. Procesem zbierania próbek steruje
mikrokontroler przy pomocy modułu TIMER. Układ każdorazowo zbiera 256 próbek
które następnie są przekazywane jako dane wejściowe do obliczeń. Taka liczba próbek
jest wymagana przez algorytm FFT o podstawie 2.
Układ sterujący – jako układ sterujący wykorzystano 32-bitowy mikrokontroler z
rdzeniem ARM7, którego magistrala wewnętrzna jest taktowana z częstotliwością
60MHz. Mikrokontroler wyposażony jest w moduły takie jak przetwornik A/C, TIMER,
UART itp. dzięki temu w projekcie nie ma potrzeby stosowania dodatkowych modułów
zewnętrznych. Rodzina układów z rdzeniem ARM7 cechuje się niewielkim poborem
energii co jest dodatkowym atutem obok bardzo dużej wydajności.
Wyświetlacz LCD – w projekcie zastosowano wyświetlacz graficzny LCD RG240128B,
jest to wyświetlacz oparty o sterownik TOSHIBA T6963C, układ ten cechuje duża
rozdzielczość 240x128, tak duża rozdzielczość jest wymagana do pełnej prezentacji
widma badanego sygnału.
3. Implementacja algorytmu FFT
Transformacja Fouriera jest transformacją całkową z dziedziny czasu w dziedzinę
częstotliwości. Transformacja Fouriera rozkłada funkcję na szereg funkcji okresowych tak, że
uzyskana transformata podaje w jaki sposób poszczególne częstotliwości składają się na pierwotną
funkcję.
Dyskretną transformatę Fouriera możemy uzyskać ze wzoru
(1) jednak
złożoność
2
obliczeniowa tego zadania wynosi: O N
operacji co nie pozwala zastosować go w systemach
wbudowanych które posiadają niewielką moc obliczeniową.
N 1
Xk
xn e
2 i
nk
N
k
0,..., N
(1)
1
n 0
Najpopularniejszą wersją FFT jest FFT o podstawie 2. Jest to bardzo efektywna operacja,
k
jednak wektor próbek wejściowych musi mieć długość N 2 gdzie k to pewna liczba naturalna.
Wynik otrzymuje się na drodze schematycznych przekształceń, opartych o tak zwane struktury
motylkowe.
Rysunek 2. Struktura motylkowa
Złożoność obliczeniowa algorytmu Szybkiej transformacji Fouriera wynosi:
O N log 2 N
(2)
Natomiast złożoność algorytmu DFT wynosi:
(3)
Mniejsza złożoność obliczeniowa FFT pozwala na wykorzystanie tego algorytmu w
systemach wbudowanych.
W mikrokontrolerze liczby zespolone zostały zaimplementowane jako para licz
odpowiadająca odpowiednio części rzeczywistej i części urojonej. Liczba zespolona w pamięci
mikrokontrolera jest przechowywana w postaci struktury danych, dla powyższej struktury
dodatkowo należy zaimplementować podstawowe operacje matematyczne na liczbach
zespolonych.
O N2
Rysunek 3. Struktura przechowująca liczbę zespoloną
4. Prezentacja układu
Przedstawienie układu rzeczywistego oraz prezentacja wyników działania układu.
Rysunek 4. Prezentacja wyświetlacza graficznego
Na rysunkach 4 i 5 zaprezentowano zdjęcia układu zaimplementowanego analizatora
widma, na wyświetlaczu LCD widzimy efekt pracy układu który analizuje podany na wejście
sygnał prostokątny o wypełnieniu 50%.
Rysunek 5. Zdjęcie zbudowanego analizatora widma
5. Podsumowanie
Zaprezentowana implementacja analizatora widma cechuję się prostą budowa blokową a
wykorzystanie bloków wewnętrznych mikrokontrolera obniża koszty implementacji. Układ
próbkuje sygnał badany z częstotliwością 40kHz co zapewnia mu możliwość pracy w paśmie
akustycznym do 20kHz.
Zaprezentowany układ umożliwia dalszą rozbudowę projektu o kolejne moduły
zwiększające funkcjonalność projektu. Układ można dodatkowo wyposażyć w moduł komunikacji
sieciowej z nadrzędnym kontrolerem lub komputerem PC, przekształcić układ w samodzielny
układ diagnostyczny czy przekształcić go do postaci kompaktowego multimetru.
Literatura
[1] http://en.wikipedia.org/wiki/Fast_Fourier_transform,
[2] LPC2100 Mikrokontrolery z rdzeniem ARM7 , Lucjan Bryndza, Wydawnictwo BTC,
Legionowo 2007,
[3] http://www.nxp.com, noty katalogowe procesora NXP LPC2138,
[4] Wprowadzenie do cyfrowego przetwarzania sygnałów, Lyons Richard, Wydawnictwa
Komunikacji i Łączności WKŁ, 1999.