Analizator widma z FFT na STM32 z Cortex-M4

W artykule przedstawiamy przykład implementacji analizatora widma FFT sygnału pochodzącego z mikrofonu zamontowanego na płytce zestawu STM32F4DISCOVERY. Krok po kroku pokazujemy w jaki sposób odbierać sygnał, jak go przetwarzać oraz jak wyświetlić wynik na kolorowym wyświetlaczu LCD. W projekcie przyjęto zakres analizowanych częstotliwości do 16 kHz, jednak całość stanowi podstawę, którą można rozwijać i modyfikować w zależności od wymagań. Projekt został utworzony w środowisku CooCox CoIDE z wykorzystaniem kompilatora GNU Tools ARM Embedded.

 

 

Fot. 1. Testowanie układu analizatora widma sygnałem audio z głośnika na który podawany jest prostokątny sygnał o częstotliwości 6,76 kHz

Wprowadzenie

Z sygnałami akustycznymi spotykamy się każdego dnia, umożliwiają nam one przekazywanie w prosty sposób różnych informacji. Mogą być one z łatwością generowane i odbierane zarówno przez człowieka jak i maszynę, ale w tym drugim przypadku kwestia interpretacji informacji zawartych w nich wygląda nieco gorzej. O ile rozpoznawanie mowy na typowym komputerze z odpowiednim oprogramowaniem nie stanowi większego problemu o tyle może się on pojawić w systemach z mniejszymi zasobami i możliwościami. Jeżeli mimo wszystko chcielibyśmy zagłębić się w tematykę rozpoznawania prostych komend dźwiękowych i zaimplementować ten proces na jakimś niewielkim układzie z mikrokontrolerem to warto zacząć od podstaw i poznać w jaki sposób odbierać i analizować sygnały akustyczne.

 Rys. 2. Przykładowe przebiegi sygnałów wybranych głosek

Rys. 2. Przykładowe przebiegi sygnałów wybranych głosek

 

Wiadomo, że każde słowo składa się z liter, a te z kolei z technicznego punktu widzenia są sygnałami o określonym czasie trwania i mającymi pewną wyjątkową formę (unikalny przebieg wartości w czasie) – rysunek 2. Niestety analiza sygnałów w tej postaci jest bardzo trudna, ale na szczęście z teorii sygnałów wiadomo, że każdy sygnał opisany w dziedzinie czasu można przedstawić w dziedzinie częstotliwości poprzez zastosowanie transformaty Fouriera, co pozwala nam zobaczyć ile i jakie częstotliwości tworzą analizowany sygnał oraz amplitudy poszczególnych składowych – rysunek 3.

 Rys. 3. Widma częstotliwościowe sygnałów z rysunku 2

Rys. 3. Widma częstotliwościowe sygnałów z rysunku 2

 

Do pobrania

O autorze