SYSTÉM PRO LOKALIZACI VZDÁLENÉHO ZDROJE ZVUKU S HRADLOVÝM POLEM

Podobné dokumenty
DIGITÁLNÍ OSCILOSKOP SE SBĚRNICÍ USB

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ MĚŘENÍ VODIVOSTI KAPALIN BAKALÁŘSKÁ PRÁCE

PK Design. MB-S2-150-PQ208 v1.4. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 ( )

ZDROJE MĚŘÍCÍHO SIGNÁLU MĚŘÍCÍ GENERÁTORY

enos dat rnici inicializaci adresování adresu enosu zprávy start bit átek zprávy paritními bity Ukon ení zprávy stop bitu ijíma potvrzuje p

evodníky Univerzita Tomáše Bati ve Zlíně Ústav elektrotechniky a měření Přednáška č. 14 Milan Adámek adamek@fai.utb.cz U5 A

Měřič krevního tlaku. 1 Měření krevního tlaku. 1.1 Princip oscilometrické metody 2007/

LBC 3251/00 Aktivní reproduktor Line Array Intellivox 1b

2. Určete komplexní impedanci dvojpólu, jeli dáno: S = 900 VA, P = 720 W a I = 20 A, z jakých prvků lze dvojpól sestavit?

Zkouškové otázky z A7B31ELI

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

MODERNÍ TRENDY V PROGRAMOVATELNÉ LOGICE, APLIKACE V AUTOMATIZAČNÍ A MĚŘICÍ TECHNICE

v Praze mezi kanály EEG Ondřej Drbal 5. ročník, stud. sk. 9

Alfanumerické displeje

Parametrické přístupy k filtraci ultrazvukových signálů

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA ELEKTROTECHNICKÁ

Číslicová filtrace. FIR filtry IIR filtry. ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

GRAFICKÉ ROZHRANÍ V MATLABU PRO ŘÍZENÍ DIGITÁLNÍHO DETEKTORU PROSTŘEDNICTVÍM RS232 LINKY

Základní metody číslicového zpracování signálu část I.

Inovace bakalářského studijního oboru Aplikovaná chemie. Reg. č.: CZ.1.07/2.2.00/

Experimentální analýza hluku

PROCESOR. Typy procesorů

3. D/A a A/D převodníky

varikapy na vstupu a v oscilátoru (nebo s ladicím kondenzátorem) se dá citlivost nenároèných aplikacích zpravidla nevadí.

Pracovní třídy zesilovačů

REZISTIVNÍ DOTYKOVÉ OBRAZOVKY A VYUŽITÍ V UNIVERZÁLNÍM REGULÁTORU Resistive Touch Screens and Usage in a Universal Controller

STŘEDOŠKOLSKÁ TECHNIKA 2013

Cílem této kapitoly je seznámit s parametry a moduly stavebnice NXT. Obr. 1: Brick s moduly [3]

Zlepšení vlastností usměrňovače s kapacitní zátěží z hlediska EMC

Porovnání korelátorů dodávaných firmou Halma Water Management

Anténní řada 2x2 pro přenos digitálního TV signálu v pásmu 4,4 až 5 GHz

základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů

IMPLEMENTACE AUTOMATIZOVANÉHO MĚŘENÍ HRTF V MATLABU

RADIOVÝ KOMUNIKAČNÍ SYSTÉM WM868 WACO

Akustika. Rychlost zvukové vlny v v prostředí s hustotou ρ a modulem objemové pružnosti K

KONTROLA PŘESNOSTI VÝROBY S VYUŽITÍM MATLABU

Informačné a automatizačné technológie v riadení kvality produkcie Vernár, PŘENOS DAT PO NÍZKONAPĚŤOVÉ ROZVODNÉ SÍTI

Programovatelná logika

Opravné prostředky na výstupu měniče kmitočtu (LU) - Vyšetřování vlivu filtru na výstupu z měniče kmitočtu

Úloha 9. Stavové automaty: grafická a textová forma stavového diagramu, příklad: detektory posloupností bitů.

Druhá generace palivoměru LUN 5275 pro letoun EV-55

ÚVOD DO PROBLEMATIKY PIV

Řadiče periferií pro vývojovou desku Spartan3E Starter Kit Jaroslav Stejskal, Jiří Svozil, Leoš Kafka, Jiří Kadlec.

ednáška a telefonní modemy Ing. Bc. Ivan Pravda

AREM 63 MREM 63. Čtecí moduly APS mini / APS mini Plus. Uživatelská příručka

INTELIGENTNÍ SNÍMAČE

OCHRANA VOJENSKÝCH OBJEKTŮ PROTI ÚČINKŮM VÝKONOVÝCH ELEKTROMAGNETICKÝCH POLÍ, SIMULACE EMC FILTRŮ

... sekvenční výstupy. Obr. 1: Obecné schéma stavového automatu

Virtuální instrumentace v experimentech jaderné fyziky - Vzorové úlohy

TECHNICKÁ UNIVERZITA V LIBERCI Studentská 1402/ Liberec 1

Nové metody stereofonního kódování pro FM pomocí digitální technologie. Pavel Straňák, Phobos Engineering s.r.o.

PK Design. Uživatelský manuál. Modul USB-FT245BM v2.2. Přídavný modul modulárního vývojového systému MVS. Verze dokumentu 1.0 (7. 11.

SPM SPECTRUM NOVÁ UNIKÁTNÍ METODA PRO DIAGNOSTIKU LOŽISEK

4. Zpracování signálu ze snímačů

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Možnosti potlačení asymetrické EMI v pásmu jednotek až desítek MHz

Signálové a mezisystémové převodníky

Vzorkování. Je-li posloupnost diracových impulzů s periodou T S : Pak časová posloupnost diskrétních vzorků bude:

VLASTNOSTI KOMPONENTŮ MĚŘICÍHO ŘETĚZCE - ANALOGOVÁČÁST

[ db ; - ] Obrázek č. 1: FPCH obecného zesilovače

TENZOMETRICKÝ MĚŘIČ. typ Tenz

Střední odborná škola a Střední odborné učiliště, Dubno Ing. Miroslav Krýdl Tematická oblast ELEKTRONIKA

KS 40-1 pro hořáky Speciální regulátor pro průmyslové hořáky

Laboratorní úloha KLS 1 Vliv souhlasného rušení na výsledek měření stejnosměrného napětí

ExperimentalCar. Kurz vyhodnocení komfortu jízdy na sedadle experimentálního vozidla, rozšíření rozsahu WiFi sítě

LOGIC. Stavebnice PROMOS Line 2. Technický manuál

Fyzikální praktikum 1

VLIV GEOMETRICKÉ DISPERZE

Převodník sériového rozhraní SLC-67/73/74

PK Design. MB-ATmega16/32 v2.0. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (21.12.

Převodník USB na RS232. Milan Horkel

MRAR-L. Družicové navigační systémy. Č. úlohy 4 ZADÁNÍ ROZBOR

STUDIUM HLADINOVÉHO ELEKTROSTATICKÉHO

Architektura počítače

Vyšší odborná škola a Střední průmyslová škola, Šumperk, Gen. Krátkého 1, Šumperk

XXXIII Celostátní olympiáda znalostí elektriky a elektroniky Krosno 25. března 2010 TEST PRO ELEKTRONICKOU SKUPINU

Paměťové prvky. ITP Technika personálních počítačů. Zdeněk Kotásek Marcela Šimková Pavel Bartoš

UDAQ-1216A UDAQ-1416A. multifunkèní modul pro rozhraní USB

Systémové elektrické instalace KNX/EIB (5. část) Ing. Josef Kunc

Zemní ochrana rotoru generátoru ve spojení proudové injektážní jednotky PIZ 50V a ochrany REJ 521

GO80 TargGR-EM. Čtečka tf hit pro panely Targha. Kompletní příručka

1 Elektronika pro zpracování optického signálu

Měření kmitočtu a tvaru signálů pomocí osciloskopu

možnost připojení k tabletu ipad (pomocí sady pro připojení kamery) nebo chytrému telefonu (s kabelem OTG) podporujícími formát USB audio

Paměti EEPROM (1) Paměti EEPROM (2) Paměti Flash (1) Paměti EEPROM (3) Paměti Flash (2) Paměti Flash (3)

Laserový skenovací systém LORS vývoj a testování přesnosti

ATICS-2-ISO ATICS-2-80A-ISO

Aplikace číslicového řízení

Obsah. Zobrazovací a ovládací prvky na čelním panelu. Účel použití. Elektrické zapojení. Obr : Analogový vstupní modul 07 AI 91

napájecí zdroj I 1 zesilovač Obr. 1: Zesilovač jako čtyřpól

PROTOKOL O LABORATORNÍM CVIČENÍ

TQS1. Inteligentní teplotní čidlo. Komunikace linkou RS485. Teplotní rozsah -55 C až +125 C. Obrázek září 2005 w w w. p a p o u c h.

ZÁKLADY TRASOVÁNÍ INŽENÝRSKÝCH SÍTÍ

SPARTAN - 3 Xilinx FPGA Device

DIGITÁLNÍ AUDIO ZESILOVAČ

Odolný LNA pro 1296 MHz s E-PHEMT prvkem

Direct Digital Synthesis (DDS)

DataLab IO. DataLab PC/IO

Dvoukanálový monitor absolutního chvění MMS 6120

Transkript:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF CONTROL AND INSTRUMENTATION SYSTÉM PRO LOKALIZACI VZDÁLENÉHO ZDROJE ZVUKU S HRADLOVÝM POLEM BEAMFORMING SYSTEM WITH FPGA DIPLOMOVÁ PRÁCE MASTER'S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR Bc. VÁCLAV VADINSKÝ Ing. ZDENĚK HAVRÁNEK, Ph.D. BRNO 2012

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav automatizace a měřicí techniky Diplomová práce magisterský navazující studijní obor Kybernetika, automatizace a měření Student: Bc. Václav Vadinský ID: 98340 Ročník: 2 Akademický rok: 2011/2012 NÁZEV TÉMATU: Systém pro lokalizaci vzdáleného zdroje zvuku s hradlovým polem POKYNY PRO VYPRACOVÁNÍ: 1) Seznamte se s metodami zpracování signálů z MEMS mikrofonů s digitálním výstupem a metodami pro lokalizaci zdrojů zvuku ve vzdáleném poli (beamforming, akustická kamera). 2) Implementujte metody pro zpracování digitálního 1-bitového signálu (decimaci a filtraci) v hradlovém poli Xilinx pro 32 nebo 36 digitálních MEMS mikrofonů. 3) Proveďte rozbor vhodných algoritmů pro lokalizaci vzdáleného zdroje zvuku s implementací v hradlovém poli Xilinx. Zvolte vhodné finální hradlové pole FPGA podle předpokládané složitosti výpočtu a potřebných hardwarových nároků a algoritmus implementujte. 4) Navrhněte a realizujte měřicí systém s hradlovým polem Xilinx Spartan 6 a digitálními MEMS mikrofony pro lokalizaci a vizualizací zdrojů zvuku ve vzdáleném poli. Zaměřte se na optimalizaci počtu a rozložení mikrofonů v měřicím systému. 5) Ověřte funkčnost celého systému při lokalizaci vzdáleného testovacího zdroje zvuku. Porovnjete výsledky praktické lokalizace s teoretickými (simulovanými) předpoklady. DOPORUČENÁ LITERATURA: [1] Brandstein, M., Ward, D. Microphone Arrays: Signal Processing Techniques and Applications. 416 stran. Springer Berlin Heidelberg, 2010. ISBN 978-3642075476. [2] Firemní literatura Xilinx, Analog Devices, Knowles Acoustics, Akustica. Termín zadání: 6.2.2012 Termín odevzdání: 21.5.2012 Vedoucí práce: Ing. Zdeněk Havránek, Ph.D. Konzultanti diplomové práce: doc. Ing. Václav Jirsík, CSc. Předseda oborové rady

ABSTRAKT Práce se zabývá zpracováním signálů z mikrofonních polí k lokalizaci zdroje zvuku. Porovnává různé typy polí, např. křížové pole, kruhové pole. Je zde uveden způsob implementace beamformingu do FPGA a návrh přípravku pro zpracování signálů s mikrofonního pole. KLÍČOVÁ SLOVA Mikrofonní pole, akustická kamera, FPGA, číslicové filtry, tvarování přijímacích charakteristik ABSTRACT This thesis deals with processing signals from the microphone arrays for sound source localization. Compares different types of fields, such as cross-field and circular array. It is shown here how to implement Beamforming on FPGA and design of signal processing with a microphone array. KEYWORDS Microphone array, acoustic camera, FPGA, digital filters, beamforming VADINSKÝ, Václav Systém pro lokalizaci vzdáleného zdroje zvuku s hradlovým polem: diplomová práce. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, ÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY, 2012. 61 s. Vedoucí práce byl Ing. Zdeněk Havránek, Ph.D.

PROHLÁŠENÍ Prohlašuji, že svou diplomovou práci na téma Systém pro lokalizaci vzdáleného zdroje zvuku s hradlovým polem jsem vypracoval samostatně pod vedením vedoucího diplomové práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené diplomové práce dále prohlašuji, že v souvislosti s vytvořením této diplomové práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a jsem si plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení 152 trestního zákona č. 140/1961 Sb. Brno................................................. (podpis autora)

Poděkování Děkuji vedoucímu diplomové práce Ing. Zdeňku Havránkovi, Ph.D za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady při zpracování mé diplomové práce. V Brně dne................................................. (podpis autora)

OBSAH Úvod 11 1 Lokalizace zdroje zvuku 12 1.1 Přehled metod............................... 15 1.1.1 Metoda tvarování přijímacích charakteristik.......... 15 1.2 Rozložení mikrofonního pole....................... 17 1.3 Vliv vzorkovací frekvence mikrofonů na výsledek lokalizace zdroje zvuku 18 2 Zpracování signálu z MEMS mikrofonů 20 2.1 Sigma-delta A/D převodník....................... 20 2.2 CIC filtr.................................. 21 2.3 FIR filtr.................................. 23 2.4 Výsledné zpracování........................... 24 3 HW realizace měřicího systému 27 3.1 Hradlového pole.............................. 27 3.2 Napájení.................................. 29 3.3 Konfigurace hradlového pole....................... 30 3.4 FT245R.................................. 31 3.5 Připojení mikrofonů............................ 31 4 Implementace v FPGA 34 4.1 Přenos dat................................. 34 4.2 FIR filtr.................................. 37 4.3 Posunuté čtení hodnot z mikrofonů................... 40 4.4 Výpočet hodnoty signálu v požadovaném bodě............. 42 4.5 Řízení přenosu dat do PC........................ 45 4.6 Generování hodinových signálů..................... 46 5 Ovládací program pro PC 48 6 Výsledky 49 7 Závěr 51 Literatura 53

8 Přílohy 55 8.1 Simulace náhodného kruhového pole.................. 55 8.2 Simulace spirálového pole........................ 56 8.3 Simulace křížového pole......................... 57 8.4 Simulace třínásobného kruh. pole, varianta 1.............. 58 8.5 Simulace třínásobného kruh. pole, varianta 2.............. 59 8.6 Vliv vzorkovací frekvence na lokalizaci zvuků.............. 60 8.7 Motiv plošného spoje a osazení součástek................ 61 8.8 CD s elektronickou verzí práce a zdrojovými kódy........... 61

SEZNAM OBRÁZKŮ 1 Ukázka aplikace mikrofonního pole. [4]................. 11 1.1 Šíření zvukové vlny. [4].......................... 12 1.2 Rozlišení mikrofonního pole........................ 13 1.3 Určení zpoždění signálu. [10]....................... 14 1.4 Určení směru příchodu zvuku v prostoru................. 14 1.5 Metoda Delay And Sum. [4]....................... 15 1.6 Rozložení mikrofonů a lokalizace 4 stejných zdrojů zvuků........ 18 1.7 Frekvenční char. mikr. pole a lokalizace 4 různých zdrojů zvuků.... 18 1.8 Lokalizace zdroje při vzorkovacích frekvencí 10kHz a 20kHz...... 19 1.9 Lokalizace zdroje při vzorkovacích frekvencí 30kHz a 40kHz...... 19 2.1 Vliv řádu sigma-delta modulátoru na rozprostření kvantovacího šumu. [13]..................................... 21 2.2 Blokové schéma CIC filtru [6]...................... 22 2.3 Frekvenční charakteristika decimačního CIC filtru........... 22 2.4 Blokové schéma FIR filtru........................ 23 2.5 Frekvenční charakteristika výsledného FIR filtru............ 25 2.6 Detail frekvenční charakteristiky výsledného FIR filtru........ 26 3.1 Schéma zapojení a osazení deksy s mikrofonem............. 32 3.2 Schéma zapojení.............................. 33 4.1 Časový diagram čtení dat [18]...................... 34 4.2 Stavový automat čtení dat........................ 35 4.3 Časový diagram odesílání dat [18].................... 36 4.4 Stavový automat odesílání dat...................... 36 4.5 Struktura FIR filtru MAC [7]...................... 38 4.6 Struktura FIR filtru DA [7]....................... 38 4.7 Rozhraní modulu FIR filtru [7]..................... 39 4.8 Časový diagram bloku FIR filtru [7]................... 40 4.9 Principiální schéma bufferu dat..................... 42 4.10 Stavový automat realizující beamforming................ 43 4.11 Hlavní stavový automat......................... 45 4.12 Odesílací stavový automat........................ 46 4.13 Blokové schéma DCM jednotky [8].................... 46 5.1 Čelní panel programu........................... 48 6.1 Frekvenční charakteristika testovaného mikr. pole........... 49 6.2 Lokalizace zdroje o frekvenci 1,5kHz.................. 50 6.3 Lokalizace zdroje o frekvenci 2,0kHz.................. 50 6.4 Lokalizace zdroje o frekvenci 3,0kHz.................. 50

8.1 Rozložení mikrofonů a lokalizace 4 stejných zdrojů zvuků........ 55 8.2 Frekvenční char. mikr. pole a lokalizace 4 různých zdrojů zvuků.... 55 8.3 Rozložení mikrofonů a lokalizace 4 stejných zdrojů zvuků........ 56 8.4 Frekvenční char. mikr. pole a lokalizace 4 různých zdrojů zvuků.... 56 8.5 Rozložení mikrofonů a lokalizace 4 stejných zdrojů zvuků........ 57 8.6 Frekvenční char. mikr. pole a lokalizace 4 různých zdrojů zvuků.... 57 8.7 Rozložení mikrofonů a lokalizace 4 stejných zdrojů zvuků........ 58 8.8 Frekvenční char. mikr. pole a lokalizace 4 různých zdrojů zvuků.... 58 8.9 Rozložení mikrofonů a lokalizace 4 stejných zdrojů zvuků........ 59 8.10 Frekvenční char. mikr. pole a lokalizace 4 různých zdrojů zvuků.... 59 8.11 Lokalizace zdrojů zvuků při vzorkovacích frekvencí 10kHz a 40kHz.. 60 8.12 Motiv desky plošných spoju, strana Bottom a Top. Měřítko 1:2.... 61 8.13 Osazení desky plošných spoju, strana Bottom a Top.......... 61

SEZNAM TABULEK 1.1 Pozice zdrojů zvuků a jejich frekvence.................. 17 2.1 Paramtery MEMS mikrofonů [16][17].................. 20 3.1 Využítí FPGA obvodu CIC filtrem................... 27 3.2 Využití FPGA CIC filtrem........................ 28 3.3 Využití FPGA FIR filtrem........................ 28 3.4 Implementace zpracování signálů 16-ti mikrofonů............ 28 3.5 Konfigurační módy FPGA [9]...................... 30

ÚVOD Mikrofonní pole mají spoustu využití. Jedním z nich je použití např. v konferenčních místnostech, kde mohou nahradit spoustu mikrofonů pro každého jednotlivého řečníka. Mikrofonní pole v tomto případě plní funkci vysoce směrového mikrofonu, který se zaměří na konkrétního řečníka a hlasy ostatních řečníků nebo ruchů z okolí jsou potlačeny. Díky rozvoji MEMS mikrofonů se mikrofonní pole začínají uplatňovat v mobilních telefonech. Díky jejich malým rozměrům lze do mobilního telefonu vměstnat několik mikrofonů a vytvořit tak mikrofonní pole, které se potom zaměřuje pouze na hlas volajícího a potlačuje okolní zvuky, což přispívá ke kvalitě hovoru. Další oblastí využití mikrofonních polí je vytváření tzv. mapy hluku, neboli akustické kamery. Využití nalézá především k informaci o rozložení zdrojů zvuků. Pomáhá např. při návrhu nových výrobků, aby vlivem obtékaného vzduchu produkovaly co nejméně hluku. V této práci se pokusím popsat, jak mikrofonní pole fungují a jakým způsobem se určuje intenzita zvuku v daném místě. Protože metody pro určení zdroje zvuku, v případě této práce metody tvarování přijímacích charakteristik, jsou výpočetně náročnější a jako mikrofony budou použity digitální MEMS mikrofony o velkém počtu (32), kde je potřeba jejich signál předzpracovat, je k tomuto účelu použito hradlové pole FPGA. Hradlová pole jsou vhodná k paralelnímu zpracování dat a proto se přímo vybízí k použití zpracování signálů z mikrofonního pole. Výsledkem je mapa zvuků, která je pomocí USB rozhraní posílána do PC. Protože se do PC posílá už jen výsledná mapa, dochází k poklesu nároků na rychlost přenosu dat a na výpočetní výkon PC. Obr. 1: Ukázka aplikace mikrofonního pole. [4] 11

1 LOKALIZACE ZDROJE ZVUKU K lokalizaci zdroje zvuku se používají tzv. mikrofonní pole. Jde o několik mikrofonů, vhodně uspořádaných tak, aby mohly lokalizovat zdroj zvuku. Mezi základní rozložení mikrofonů můžeme považovat tyto tři typy: lineární rovinné prostorové Popis funkce mikrofonního pole bude dále vysvětlen na lineárním poli, které je jednoduché na pochopení. Obr. 1.1: Šíření zvukové vlny. [4] Zvuk se z ideálního bodového zdroje zvuku šíří podle ilustrace v pravé části obrázku 1.1. V případě dostatečné vzdálenosti zdroje zvuku od mikrofonního pole, lze kruhovou akustickou vlnu zjednodušit na rovinnou vlnu, jak je ukázáno v levé části obrázku. Když bude zdroj zvuku umístěn naproti středu mikrofonního pole, dopadne zvuk na všechny mikrofony ve stejném čase. Při vychýlení o určitý úhel bude každý mikrofon v jiné vzdálenosti od zdroje a proto na jednotlivé mikrofony dorazí zvuk s jiným časovým zpožděním. Toho se využívá při určení směru zdroje zvuku. Rozlišení mikrofonního pole závisí na frekvenci zdroje zvuku, rozmístění a vzdálenostmi jednotlivých mikrofonů v mikrofonním poli a vzdálenosti zdroje zvuku. Tuto vlastnost popisuje následující vztah [3]: R = L D λ (1.1) Kde: R je snímaná oblast [m] L je vzdálenost zdroje zvuku [m] D je rozestup mezi mikrofony [m] 12

Obr. 1.2: Rozlišení mikrofonního pole. λ je vlnová délka zdroje zvuku [m] Podmínkou pro platnost toho vztahu je, že L D a R λ Při návrhu mikrofonní pole je potřeba brát zřetel na možnost vzniku prostorového aliasing efektu. Podobně jako u vzorkovacího Shenonova teorému, kde vzorkovací frekvence musí být alespoň dvojnásobná oproti maximální frekvenci vzorkovaného signálu, platí u mikrofonního pole, že vzdálenost mezi mikrofony musí být menší, než je polovina vlnové délky zvuku. D min < v 0.5 (1.2) f Kde: D je vzdálenost mezi mikrofony [m] v je rychlost šíření zvuku [ms 1 ] f je frekvence zdroje zvuku [Hz] Výpočet zpoždění Výpočet zpoždění dopadu signálu je pro lineární pole jednoduchý, pro přehlednost je problém zobrazen na obrázku 1.3. Pro výpočet zpoždění mezi jednotlivými mikrofony v lineárním poli, lze při uvažování rovinné akustické vlny určit zpoždění od referenčního mikrofonu pomocí vztahu: t = x sin(θ) v (1.3) Kde: t je zpoždění dopadu signálu [s] v je rychlost šíření zvuku [ms 1 ] 13

x je vzdálenost od referenčního mikrofonu [m] θ úhel dopadu zvuku Obr. 1.3: Určení zpoždění signálu. [10] Při určení zpoždění u prostorového pole je situace trochu složitější. Kromě úhlu náklonu (elevace) směru zdroje zvuku potřebujeme ještě znát azimut. Protože však většinou nepotřebujeme znát mapu na základě elevace a azimutu, ale vytváříme mapu, reprezentující rovinu v prostoru o rozměrech x a y vzdálenou od mikrofonního pole o hodnotu z, je potřeba přepočítat souřadnice pomocí vztahů pro převod z cartesianského do sférického systému souřadnic, jak je uvedeno na obrázku 1.4. Obr. 1.4: Určení směru příchodu zvuku v prostoru. Z vypočítané elevace φ a azimutu θ se určí zpoždění signálu od středu mikrofonního pole pomocí následujícího vztahu [10]: t = Kde: t je časové zpoždění [s] cos(φ)cos(θ)m.x + cos(φ)sin(θ)m.y + sin(φ)m.z v M.x je poloha mikrofonu v ose x [m] (1.4) 14

M.y je poloha mikrofonu v ose y [m] M.z je poloha mikrofonu v ose z [m] v je rychlost šíření zvuku [ms 1 ] 1.1 Přehled metod 1.1.1 Metoda tvarování přijímacích charakteristik Metoda tvarování přijímací charakteristiky je často označována podle anglického názvu Beamforming. Používá se k oddělení jednotlivých zdrojů zvuků a samotné lokalizaci zdroje zvuků. Tato metoda je vhodná k lokalizaci více zdrojů zvuku. Potlačení nežádoucích ruchů stoupá s použitým počtem mikrofonů. Pro lineární mikrofonní pole je pro každý uvažovaný směr zvuku potřeba změnit odezvu pole v rozsahu 90 až90. Pro rovinné pole se tento proces ještě znásobí pro změnu azimutu (0 360 ). Tato metoda je výpočetně náročná, náročnost samozřejmě závisí na počtu kroků výpočtů - rozlišení výsledné mapy. Jednou z metod pro zpracování signálů je bemformer typu delay&sum. Delay&Sum beamformer Jedná se o jednoduchou metodu. Princip je znázorněn na následujícím obrázku. Pro zaměření pole na požadovaný směr příchodu signálu se nastaví vhodné časové zpoždění z každého mikrofonu. Zpožděné signály se potom sečtou a výsledná amplituda signálu určuje intenzitu zvuku v daném směru. [3] Obr. 1.5: Metoda Delay And Sum. [4] Suma signálů z jiných směrů bude nižší, čímž dochází k jejich potlačení. Výstupní signál lze určit podle následujícího vztahu: N y(t) = x n (t τ n ) (1.5) n=1 15

Případně lze rovnici upravit přidáním amplitudového váhování, aby maximum výsledného signálu bylo jedna. y(t) = 1 N N x n (t τ n ) (1.6) n=1 Filter&Sum beamformer Jde o podobný princip jako v případě Delay&Sum beamformeru, kde místo časových zpoždění jsou vloženy FIR filtry. Použitím FIR filtrů lze lépe měnit přijímací charakteristiku pole, ale stoupá zde výpočetní náročnost, protože oproti jednoduššímu určení potřebného časového zpoždění je potřeba určit koeficienty všech FIR filtrů. [2][3] Převod do frekvenční oblasti Při použití této metody se signál z každého mikrofonu rozdělí do několika frekvenčních pásem, např. pomocí FFT. Jednotlivá frekvenční pásma se poté zpracují zvlášť, často pomocí technik určených k lokalizaci úzkopásmových signálů. Implementace tohoto algoritmu do FPGA by znamenala použít pro každý mikrofon FFT transformaci signálu a poté zpracovávat signál N mikrofonů krát počet frekvenčních pásem. Rapidně by vzrostly nároky na velikost hradlového pole. Tato metoda umožňuje volbu více parametrů při lokalizaci zvuku a mohla by vykazovat lepší parametry než jednodušší metody. [2] Metoda odhadu časového zpoždění signálu Tato metoda je založena za odhadu zpoždění signálů mezi jednotlivými mikrofony. Pomocí určité metody, například vzájemné korelace příchozích signálů se určí vzájemná zpoždění signálů mezi mikrofony. Zpoždění, ve kterém se ve funkci vzájemné korelace vyskytne extrém, pak určuje časové zpoždění signálu mezi dvěma senzory, představitelem je metoda GCC-PHAT (Generalized Cross Correlation - Phase Transform). Pomocí křížové korelace se zjistí posunutí signálu mezi mikrofony. Z těchto zpoždění a rozmístění mikrofonů se vypočítá poloha přijmutého zvuku. Tato metoda je výpočetně nenáročná oproti beamforming metodám, ale umožňuje lokalizovat pouze jeden zdroj zvuku. Z důvodu jednoduchosti výpočtu je často používána pro určení zdroje zvuku, ale nelze ji použít pro aplikaci akustické kamery. [11] 16

1.2 Rozložení mikrofonního pole Mikrofonní pole se dají zkonstruovat v různých provedení, tvarů. Rozměry a rozložení mikrofonů určují výsledné vlastnosti pole, jako je např. frekvenční charakteristika nebo směrovost. K porovnání jsem nasimuloval vlastnosti kruhového mikrofonního pole, náhodného kruhového pole, křížového pole, čtvercového pole a spirálového pole. Všechny typy polí měli stejný počet 32 mikrofonů. Nasimulovány ještě byly dvě varianty pole, které se skládají ze 3 soustředných kruhů. Tyto pole měli počet mikrofonů 36. Pro všechny typy polí byly při simulaci zvoleny stejné podmínky. Vzdálenost zdroje zvuku je 1m. Pro simulaci lokalizace jednoho zdroje zvuku je pozice zdroje naproti středu mikrofonního pole. Při simulaci více zdrojů zvuků o stejné frekvenci byly použity 4 zdroje umístěny symetricky 1m od středu pole o frekvencích 1500Hz. Při simulaci zdrojů zvuků s různou frekvencí byly použity tyto frekvence zdrojů: Pozice x,y [m] f [Hz] 1,1 2500 1,-1 1800-1,1 1000-1,-1 2200 Tab. 1.1: Pozice zdrojů zvuků a jejich frekvence. Při simulaci frekvenční charakteristiky pole, byla uvažována změna zdroje zvuku pouze v ose X, protože zobrazení pro změnu polohy v ose X a Y není možné. Toto zjednodušení nemá nevýhody pro kruhové pole, které je symetrické, a tak jeho frekvenční vlastnosti jsou stejné ve všech směrech. Problém ale nastává při ostatních typů polí, jako např. kruhové náhodné nebo křížové, které nemají stejnou frekvenční charakteristiku ve všech směrech. Tato jejich vlastnost je vidět při lokalizaci stejných zdrojů zvuků. Veškeré výsledky simulací jsou z důvodu přehlednosti přiloženy v příloze. Zde jsou pro ilustraci zobrazeny výsledky simulací pro jednoduché kruhové pole. Z výsledků provedených simulací nejhůře dopadlo křížové pole. Jeho frekvenční charakteristika vykazuje nejhorší potlačení postranních laloků. Náhodné kruhové pole a spirálové kruhové pole mají podobné vlastnosti. Nevýhodou obou polí je jiná frekvenčních charakteristika v každém směru. U náhodného kruhového pole samozřejmě záleží na aktuálním náhodném vygenerování pozic mikrofonů. Nejlépe dopadlo jednoduché kruhové pole, jeho frekvenční charakteristika je ve všech směrech podobná, což je vidět při lokalizaci 4 stejných zdrojů zvuků, nicméně se ve 17

Obr. 1.6: Rozložení mikrofonů a lokalizace 4 stejných zdrojů zvuků. Obr. 1.7: Frekvenční char. mikr. pole a lokalizace 4 různých zdrojů zvuků. výsledné mapě vyskytlo 5 imaginárních zdrojů, které by v praxi šli jednoduše zaměnit za skutečné zdroje zvuků. Tento jev se ale při simulaci zdrojů zvuků s rozdílnou frekvencí nevyskytl. 1.3 Vliv vzorkovací frekvence mikrofonů na výsledek lokalizace zdroje zvuku Metoda beamformingu dealy&sum je založená na zarovnání příchozích signálů podle časového zpoždění a v implementaci se zpoždění signálů realizuje posunutím signálu o daný počet vzorků, ovlivňuje vzorkovací frekvence přesnost zarovnání signálů. Vzorkovací frekvence má tedy vliv na rozlišení mapy zvuku a potlačení nežádoucích ruchů, jak je vidět z následujících obrázků. V příloze je ještě ukázka lokalizace 4 různých zdrojů při dvou různých vzorkovacích frekvencí. Se vzrůstající vzorkovací frekvencí stoupají i nároky na velikost paměti. Protože mikrofonní pole je určeno ke zpracování akustických signálů, zvolil jsem výslednou 18

Obr. 1.8: Lokalizace zdroje při vzorkovacích frekvencí 10kHz a 20kHz. Obr. 1.9: Lokalizace zdroje při vzorkovacích frekvencí 30kHz a 40kHz. vzorkovací frekvenci mikrofonů po decimaci signálu 50kHz, která je dostatečně vysoká pro celé akustické pásmo (20Hz-20kHz) a podle simulací dostatečná vzhledem k zaokrouhlení časového zpoždění. 19

2 ZPRACOVÁNÍ SIGNÁLU Z MEMS MIKRO- FONŮ V této práci jsou použité MEMS mikrofony od firmy Knowles Acoustic typ SPM0405HE4H. Výstup signálu je digitální ve formátu PDM (Pulse density modulation), kde výstupní logické úrovně log. 1 a log. 0 odpovídají číselnému údají +1 a -1. Mikrofon je taktován přivedeným hodinovým signálem. Umožňuje volbu přenosu dat při sestupné nebo náběžné hraně hodinového signálu. Tím umožňuje přenášet data ze dvou mikrofonů společně. Použité mikrofony obsahují sigma-delta A/D převodník, výrobce ale neudává řád použitého převodníku. U mikrofonů ADMP421 od firmy Analog device je delta-sigma převodník čtvrtého řádu, dá se očekávat, že podle parametrů obou mikrofonů, především odstupu signálu od šumu, bude použitý delta-sigma převodník v mikrofonu SPM0405 také čtvrtého nebo třetího řádu. Parametry použitých mikrofonů jsou uvedeny v následující tabulce, kde jsou pro porovnání uvedeny parametry mikrofonu od Analog Devices. Tab. 2.1: Paramtery MEMS mikrofonů [16][17] ADMP421 SPM0405 Citlivost [db] -26-26 Odstup signálu od šumu [db] 61 56 Frekvenční rozsah [Hz] 100-15000 100-15000 Napájecí napětí [V] 1,65-3,6 1,6-3,6 Proudový odběr [µa] 650 600 Hodinová frekvence [MHz] 1-3,25 1-3,25 2.1 Sigma-delta A/D převodník Sigma-delta A/D převodníky patří do kategorie převzorkovávacích převodníků, kde vzorkovací frekvence je několikanásobně vyšší, než vyžaduje Nyquistův vzorkovací teorém. Výhodou sigma-delta modulátoru je tvarování kvantovacího šumu, kdy se zvyšujícím se řádem modulátoru se kvantizační šum ve frekvenčním spektru posouvá dále od užitečného signálu blíž ke vzorkovací frekvenci. K převodu na vícebitový signál slouží decimace signálu. Decimací signálu dochází ke snížení vzorkovací frekvence a zároveň k nárůstu bitového rozlišení. Dalším úkolem decimačního filtru je potlačení kvantovacího šumu sigma-delta modulátoru. Protože je kvantovací šum u toho typu převodníku rozprostřen především ve vyšších 20

frekvenčních složkách signálu, zpravidla dál za užitečným signálem, tak se jako filtr tohoto šumu používá dolní propust. Obr. 2.1: Vliv řádu sigma-delta modulátoru na rozprostření kvantovacího šumu. [13] Jako decimační filtr je možné použít některý z běžných číslicových filtrů nebo jejich kombinaci. 2.2 CIC filtr CIC filtr je číslicový filtr používaný ke změně vzorkovací frekvence signálu. Umožňuje signál převzorkovat na vyšší vzorkovací frekvenci nebo podvzorkovat na nižší. Dále pro účely této práce popíši jen verzi pro snížení vzorkovací frekvence. CIC filtr se skládá ze dvou jednoduchých částí, integrátorů a derivátorů. Jejich výhodou oproti FIR nebo IIR filtrům je absence operace násobení. CIC filtry obsahují pouze sčítací a rozdílové členy, díky tomu jsou jednodušší na implementaci v logických hradlových polích. Přenosovou funkci CIC filtru lze popsat dvěma vztahy [6]: nebo R M 1 H(z) = [ z k ] N (2.1) k=0 Kde: R je decimační faktor. M je diferenciální zpoždění. N je řád filtru. H(z) = (1 z R M ) N [Hz] (2.2) (1 z 1 ) N 21

První vztah se dá označit jako nerekurzivní. V něm lze jednoduše vidět, že CIC filtr provádí výpočet aritmetického průměru R M vzorků. V podstatě se jedná o FIR filtr, kde všechny koeficienty jsou rovny 1. Obr. 2.2: Blokové schéma CIC filtru [6] Na obrázku 2.2 je ukázka frekvenční charakteristiky CIC filtru pro R = 8, M = 2 a N = 3. Obr. 2.3: Frekvenční charakteristika decimačního CIC filtru Požadavek na dostatečné potlačení kvantovacího šumu z delta-sigma převodníku je, aby řád CIC filtru [14] N >= 1 + (řád_převodníku) (2.3) Výsledná bitová šířka signálu po decimaci je [14] W = 1 + Nlog 2 (R) (2.4) 22

2.3 FIR filtr FIR filtry patří mezi číslicové filtry, jejichž impulzní charakteristika má konečnou odezvu odpovídající řádu filtru. Tyto filtry obecně slouží k filtraci signálu. Dají se však použít i k decimaci nebo interpolaci signálů. Mezi výhody FIR filtru se dá považovat stabilita, protože FIR filtr je za všech okolností stabilní, díky absenci zpětných vazeb v realizaci filtru a možnost navrhnout filtr tak, aby měl v propustném pásmu lineární fázovou charakteristiku. Mezi nevýhody patří pro dosažení potřebných strmostí mezi propustným a nepropustným pásmem nutnost použít filtr vysokého řádu. Přenosová funkce FIR filtru je: H(z) = Y (z) X(z) = b 0 + b 1 z 1 + b 2 z 2 +... + b n z n (2.5) Typické blokové schéma realizace FIR filtru je uvedeno na obrázku 2.4. Obr. 2.4: Blokové schéma FIR filtru Základní metody návrhu Metoda vzorkování frekvenční charakteristiky Využívá se vlastnosti DFT (diskrétní Fourierova transformace), kde lze ze zpětné DFT určit impulzní odezvu. Při návrhu se postupuje tak, že frekvenční spektrum rozdělíme na N dílů a pro každou n-tou frekvenční složku stanovíme její amplitudu. Poté z těchto koeficientů pomocí inverzní DFT vypočítáme impulzní charakteristiku, její posloupnost je zároveň hodnotami koeficientů FIR filtru. Takto získané koeficienty zaručují, že frekvenční charakteristika filtru bude procházet výše zadanými body. Neurčují však, jaká bude charakteristika mezi těmito body. Lze odhadnout, že čím bude hustěji určena frekvenční charakteristika, tím bude aproximace mezi těmito body lepší [1]. 23

Metoda váhování impulzní charakteristiky Při použití této metody se musí nejdříve určit požadovaná frekvenční charakteristika. Ta je dána třeba Fourierovou řadou. Poté omezíme délku této řady pomocí vynásobení požadované okenní funkce o dané délce a pomocí zpětné DFT opět získáme koeficienty filtru. Volba délky okna a okenní funkce určuje, jak moc se bude výsledná charakteristika lišit od požadované [1]. Metoda equiriple Jde o metodu navrženou autory Remez/Parks a McLellan. Podle zadaných parametrů, jako jsou propustná a postranní pásma, se navíc uvažuje maximální povolené zvlnění amplitudové charakteristiky v propustném pásmu a minimální potlačení signálu v postranních pásmech. Metoda je náročná na výpočet, ale dosahuje dobrých parametrů navržených filtrů. Ve stručnosti jde o vícekrokovou metodu, nejdříve se podle zadaných parametrů navrhne filtr např. metodou váhování impulzní charakteristiky. Poté se ověří požadované vlastnosti filtru. Pokud nevyhovují, upraví se váhovací funkce a celý proces se opakuje [15]. 2.4 Výsledné zpracování Při realizaci zpracování signálů bylo vyzkoušeno několik možností. Nejdříve zpracování signálů pomocí CIC filtru doplněného kompenzačním FIR filtrem pro vyrovnání frekvenční charakteristiky. K implementaci číslicových filtrů byly využity IP Core moduly ve vývojovém prostředí Xilinx, kde stačí zadat požadované parametry filtrů a modul vygeneruje požadovaný filtr. Tyto filtry lze nakonfigurovat jako vícekanálové, kde jsou vstupní a výstupní kanály časově multiplexované. Zde u použití CIC filtrů je omezení na zpracování max. 16 signálů současně. U FIR filtrů je omezen počet na 64 současně zpracovávaných signálů. Toto omezení u CIC filtrů lze při větším počtu zpracovávaných signálu vyřešit použitím několika bloků CIC filtrů. Pak je potřeba vyřešit propojení několika CIC filtrů do jedno kompenzačního FIR filtru. Řešení kombinace CIC a FIR filtrů se ukázalo při pokusech jako funkční. Ale při použití více než 16 mikrofonů narůstající složitost multiplexování výstupů CIC filtrů do FIR filtru. Výhodou toho řešení je nízký řád kompenzačního FIR filtru, který zde byl 24 řádu. Jako další a nakonec finální řešení byl použit jeden blok decimačního FIR filtru, který zvládá zpracování celého požadovaného počtu mikrofonů. Zde odpadla nutnost synchronizovat výstupy CIC filtrů s kompenzačním FIR filtrem. 24

K návrhu FIR filtru byl využit blok FDATool v programu Matlab/Simulink, který umožňuje navrhnou filtry podle různých kritérií. Aby výsledný řád FIR filtru nebyl příliš vysoký, byly zvoleny následující parametry: mezní frekvence propustného pásma F 1 = 10kHz mezní frekvence postranního pásma F 2 = 20kHz maximální zvlnění v propustném pásmu A 1 = 3dB minimální potlačení postranního pásma A 2 = 70dB vzorkovací frekvence mikrofonů F m = 1, 5MHz vzorkovací frekvence po decimaci F v = 50kHz Zvolená metoda návrhu filtru je equiriple. Výsledný řád takto navrženého filtru je 281. To je asi 10-krát více, než u kompenzačního FIR filtru. Mezní frekvence propustného pásma byla zvolena podle výsledků simulací, kdy nemá význam zpracovávat frekvence vyšší než 10kHz. Protože použité hradlové pole obsahuje několik bloků pro zpracování signálů, které obsahují násobičky signálů, nebylo zpracování signálů z mikrofonů pouze FIR filtrem příliš náročné na využití hradlového pole. Výsledná frekvenční charakteristika decimačního FIR filtru je na obrázku 2.6. Obr. 2.5: Frekvenční charakteristika výsledného FIR filtru 25

Obr. 2.6: Detail frekvenční charakteristiky výsledného FIR filtru 26

3 HW REALIZACE MĚŘICÍHO SYSTÉMU Přípravek byl realizován na dvoustranné desce plošného spoje. Deska byla navržena s ohledem na ruční osazování součástek a prokovy mezi stranami desky realizovanými nýty nebo drátovými propojkami. Umístění konektorů bylo koncipováno tak, aby na jedné straně byly všechny konektory pro připojení mikrofonů a na druhé straně USB konektor. Výsledné zapojení je vcelku jednoduché. Celé zařízení je napájeno z USB rozhraní. Aby byl výsledný odběr co nejnižší, byly použity spínané měniče napětí. Schéma zapojení je na obrázku 3.2. 3.1 Hradlového pole Pro volbu vhodného hradlového pole byla provedena syntéza využití různých typů hradlových polí při implementaci číslicových filtrů. Původním záměrem bylo použít hradlové pole řady Spartan 3, a proto byla syntéza provedena na těchto řadách hradlových polích. Při návrhu filtrů se ukázal, jako největší parametr omezující počet implementovatelných mikrofonů do FPGA, velikost decimačního CIC filtru. Využití FPGA Spartan XC3S50AN samotného CIC decimačního filtru v závislosti na počtu kanálů a hodinové frekvenci ukazuje tabulka 3.1. Tyto hodnoty platí pro decimační faktor 64 a 5. řád filtru. Jako vzorkovací frekvence mikrofonů byla brána hodnota 3M Hz. Tab. 3.1: Využítí FPGA obvodu CIC filtrem Hodinová frekvence [MHz] Poč. kanálů 3 6 12 24 48 96 192 240 1 35% 31% 26% 23% 2-55% 46% 35% 29% 4 - - 69% 50% 39% 33% 8 - - - 73% 54% 45% 42% 42% 16 - - - - 79% 64% 55% 52% Tabluka 3.2 ukazuje, jak ovlivňuje řád CIC filtru a použitá hodinová frekvence využití místa u různých typů FPGA. U posledních 3 typů se dá říct, že využití místa v FPGA je zhruba dáno poměrem jejich velikostí. První typ ale oproti druhému má poměr využití plochy k druhému modelu, který obsahuje 2 krát více logických buněk, menší zaplnění místa. To může být dáno, že modely s končící označením A(N) jsou novější generace nežli modely končící označením E. 27

Tab. 3.2: Využití FPGA CIC filtrem XC3S50AN XC3S100E XC2S200A XC3S500 Řád 3 MHz 12 MHz 3 MHz 12 MHz 3 MHz 12 MHz 3 MHz 12MHz 3 23% 19% 17% 13% 9% 7% 3% 3% 4 29% 21% 21% 16% 11% 8% 4% 3% 5 35% 26% 26% 19% 14% 8% 5% 3% Při návrhu FIR filtru byl vyzkoušen rozdíl ve využití místa při použití MAC nebo DA struktury (více v kapitole 4.2). Pro test využití byla použita hodinová frekvence 24M Hz a vstupní šířka dat 16b. Výsledky ukazuje tabulka 3.3. U struktury DA je vidět očekávaný nárůst využití FPGA se stoupajícím počtem zpracovávaných kanálů. Z hodnot v tabulce 3.3 je vidět, že využití FPGA nemá na použitý počet kanálů vliv, ale změna tam je. Pro přehlednost tabulek je totiž udáváno využití pouze Slices bloků, které při implementaci těchto filtrů zabírají nejvíce místa. Využití ostatních částí FPGA, např. LUT jednotek bylo procentuálně nižší, ale nebylo konstantní, jako využití Slices bloků. Tab. 3.3: Využití FPGA FIR filtrem Poč. kanálů MAC DA 1 20% 23% 2 28% 25% 4 20% 29% 8 20% 38% 16 20% - Nakonec byla ještě vyzkoušena implementace CIC filtru a kompenzačního FIR filtru pro 16 mikrofonů, výsledky ukazuje tabulka 3.4. Tab. 3.4: Implementace zpracování signálů 16-ti mikrofonů. XC3S50AN XC3S100E XC3S200A XC3S500E Využití [%] 138 100 54 20 Na základě těchto hodnot pro zpracování 32 mikrofonů a implementaci delay&sum beamformingu by byl zapotřebí alespoň typ XC3S500. Nakonec byl zvolen obvod z novější generace - Spartan 6 XC6SLX9, který původně zvolený typ překonává a je levnější. Díky obsahu DSP bloků umožňuje efektivnější implementaci filtrů bez nadměrného využití ostatních částí FPGA. Základní vlastnosti XC6SLX9 jsou: 28

9152 logických bloků 16 bloků DSP48A pro typické operaci při zpracování signálů velikost blokové RAM 576 Kb 2 CMT jednotky (každá obsahuje 2 bloky DCM a 1 PLL) pro správu hodinových signálů 3.2 Napájení Přípravek byl navržen tak, aby byl celý napájen z rozhraní USB. K napájení hradlového pole jsou potřeba 3 různá napájecí napětí [5]. V CCINT je napájecí napětí sloužící k napájení logických obvodů hradlového pole. Jeho velikost je 1, 2V. V CCAUX je určeno k napájení DCM jednotky sloužící ke generování hodinových signálů a fázových závěsů P LL. Na toto napájecí napětí jsou kladeny vyšší nároky na jeho čistotu, než na ostatní napájecí napětí. Z tohoto napětí se dále napájí část FPGA starající se o nakonfigurování hradlového pole. Doporučená velikost je 2, 5V, ale je možné použít i hodnotu 3, 3V. V CCO napětí je určeno k napájení I/O bran FPGA, jeho velikost se může pohybovat v rozpětí 1, 2 3, 3V a tato hodnota tak určuje velikost výstupních napětí. MCP1603 K vytvoření napětí V CCINT a V CCO byl použit obvod MCP1603. Jeho základní vlastnosti jsou [12]: vstupní napájecí napětí 2, 7 5, 5V výstupní napětí podle modelu: 1, 2, 1, 5, 1, 8, 2, 5 a 3, 3V maximální výstupní proud 500mA spínací frekvence 2M Hz ochrana proti přehřátí a proudovému přetížení účinnost lepší než 90%. Rozsah napájecího plně vyhovuje napájecímu napětí USB. Jejich zapojení vychází z doporučeného zapojení výrobce, byla pouze zdvojnásobena kapacita vstupního a výstupního kondenzátoru pro lepší filtraci napájení na 10µF. Zvolená tlumivka má indukčnost 10µH a díky vysoké spínací frekvenci má malé rozměry. Plošný spoj byl navržen podle doporučení výrobce. Napájecí napětí 3, 3V je také použito k napájení mikrofonů a obvodu FT245R. 29

MCP1824 Pro napětí V CCAUX byl použit obvod MCP1824. Jedná se o lineární stabilizátor napětí, který dosahuje lepších parametrů výstupního napětí, než spínané regulátory napětí. Napájecí napětí se může pohybovat v rozsahu 2, 1 6, 0V, opět vyhovuje napájecímu napětí USB. Obvod se vyrábí v několika verzích výstupního napětí. V tomto zapojení byla použita verze s výstupním napětím 2, 5V. Maximální výstupní proud je 300mA. Bylo by možné použít i verzi s výstupním napětím 3, 3V, ale výrobce FPGA doporučuje hodnotu 2, 5V, při které mají obvody v FPGA nižší odběr proudu. 3.3 Konfigurace hradlového pole Použité hradlové pole lze nakonfigurovat několika způsoby. K volbě slouží vývody M0 a M1, na které se přivedou příslušné logické úrovně. Možnosti konfigurace jsou následující: Tab. 3.5: Konfigurační módy FPGA [9] Konfigurační mód M(1,0) Master Serial/SPI 01 Master SelectMAP/BPI 00 JTAG xx Slave SelectMAP 10 Slave Serial 11 V této realizaci byl použit mód Master Serial/SPI. V tomto módu slouží ke konfiguraci obyčejná sériová FLASH paměť. Pro zvolené hradlové pole je potřeba velikost paměti 4M bit. Použitá pamět je typ AT45DB081D od firmy Atmel, která je podporovaná výrobcem FPGA. Tato paměť má velikost 8M bit, takže v případě lze nevyužitou část použít k vlastním účelům. Tato paměť má rozsah napájecího napětí 2, 7 3, 6V. Maximální hodinová frekvence je 66MHz a proudový odběr do 7mA. Po zapnutí kontrolují konfigurační bloky FPGA hladiny napájecích napětí. Pokud tyto hodnoty překročí minimální hranici, spustí se proces konfigurace podle nastaveného módu. V módu Master Serial/SPI se začne načítat konfigurace z připojené paměti. Konfigurační jednotka obsahuje vlastní zdroj hodin, který ze začátku nastaví na nejnižší možnou hodnotu. V prvních částech obsahu paměti je uložen parametr, jaká hodinová frekvence se má použít pro konfigurace paměti. Po přečtení 30

této hodnoty konfigurační jednotka nastaví uloženou frekvenci a poté může načítat obsah paměti rychleji. U napájecích napětí je kladen důraz na monotónost náběhu napětí. Konfigurace FPGA značně zvýší odběr proudu a pokud by došlo k poklesu hodnoty napětí pod hodnotu spouštějící konfiguraci, mohla by být konfigurace načtena špatně nebo v lepším případě neproběhnout vůbec. Při testování přípravku však bylo hradlové pole vždy úspěšně nakonfigurováno, takže použité stabilizátory napětí jsou vhodné. Přípravek dále obsahuje JTAG rozhraní, přes které může být obvod nakonfigurován a také po otestování konfigurace nahrána do konfigurační FLASH paměti, není tedy potřeba jiný programátor pro FLASH paměť. 3.4 FT245R K přenosu dat do PC byl zvolen obvod FT245R. Jde o převodník z USB rozhraní na paralelní 8-mi bitovou vstupně/výstupní sběrnicí. Základní vlastnosti jsou [18] přenosová rychlost až 1M B/s (D2XX driver), až 300kB/s (VCP driver) hardwarového řízení toku dat výstupní buffer o velikosti 384B, vstupní buffer 128B možnost připojení k 1, 8 5V logice napájecí napětí 4, 35 5, 25V kompatibilní s USB 1.1 a USB 2.0 integrovaný zdroj hodinové frekvence K propojení s FPGA slouží 8-mi bitová datová sběrnice a 4 řídící signály. Převodník má od výroby uloženy ve vnitřní EEPROM paměti některé parametry, jako jsou identifikátory VID a PID, sériové číslo, výrobce obvodu a název obvodu. Uložena je i předpokládaný maximální proudový odběr z USB. Tyto parametry se nechají v případě potřeby změnit. 3.5 Připojení mikrofonů K propojení s mikrofony slouží konektory RJ45. Na každý konektor vychází 8 mikrofonů. Pro přenos signálů z mikrofonů je použit UTP kabel kategorie 5, který obsahuje kroucené páry dvojlinek a je tedy vhodný k přenosu tohoto signálu. Každý mikrofon je umístěn na samostatné destičce, kde se pomocí propojky zvolí, při které hraně hodinového signálu bude přenášet signál. Při testování se objevila nutnost při malém počtu mikrofonů (2-3) připojených na hodinový signál, připojit na konec vedení odpor o velikosti asi 300Ω, jinak do hradlového pole přicházely náhodné údaje z výstupu mikrofonů. Toto bylo způsobeno 31

špatným impedančním přizpůsobením kabelu a hodinové vstupu mikrofonů. Při více mikrofonech byla jejich celková impedance dostatečná a zakončovací odpor nebyl potřeba. Z tohoto důvodu bylo u FPGA na vstupech mikrofonů nastavena vstupní impedance 75Ω. Udávaná impedance UTP kabelu je asi 100Ω a použitá impedance 75Ω byla jediná z možných variant, která se nejvíce přibližovala impedanci kabelu. Schéma zapojení desky pro mikrofon je uvedeno na obrázku 3.1 spolu s motivem plošného spoje. Zapojení je velice jednoduché, kromě mikrofonu a blokovacího kondenzátoru obsahuje jen propojku pro volbu hrany pro přenos dat. Obr. 3.1: Schéma zapojení a osazení deksy s mikrofonem. 32

Obr. 3.2: Schéma zapojení. 33

4 IMPLEMENTACE V FPGA K implementaci algoritmů bylo použito vývojové prostředí Xilinx ISE WebPack ve verzi 13.1. Moduly byly popsány v jazyce VHDL nebo vygenerovány pomocí IP Core generátorů. 4.1 Přenos dat Jak je uvedeno v části popisující návrh HW, k přenosu dat mezi PC a FPGA slouží obvod FT245R. Pro přenos dat používá 8-mi bitovou sběrnici spolu se čtyřmi řídícími signály. Implementace přenosu dat byla rozdělena na dvě části, na část příjmu dat a na část odesílání dat. Příjem dat Pro příjem dat byl vytvořen modul ftdi p rijem, který obsahuje pro komunikaci s dalšími moduly následující signály: CLK - hodinový signál modulu ARST - asynchronní reset modulu USB_DATA - datová sběrnice k čipu FTDI, přivedeno na vývody data obvodu FTDI RXF - indikace nových dat na sběrnici, přivedeno na vývody data obvodu FTDI RD - přijetí nových dat, přivedeno na vývody data obvodu FTDI DATA - výstup přijatých dat NOVA_DATA - indikace příjmu nového byte EN - řídicí signál povolující modulu přijmout další data Na obrázku 4.1 je časový diagram čtení dat z obvodu. Podle tohoto diagramu byl realizován stavový automat, který reaguje na řídící signály a přijímá data. Schéma tohoto automatu je uvedeno na obrázku 4.2. Obr. 4.1: Časový diagram čtení dat [18] 34

Obr. 4.2: Stavový automat čtení dat Ve stavu ST ART čeká automat na povolení čtení znaku. Pokud je povoleno čtení dat, přejde do stavu RXF _W AIT. Obvod FT245 indikuje log. 0 na vývodu RXF, že jsou k dispozici nová data k přečtení. Pokud k tomu dojde, přejde automat do stavu USB_READ, ve kterém nastaví signál RD do nuly, tím indikuje, že je připraven přijmout data. Obvodu FT245 po obdržení toho signálu přepíše přijatá data na sběrnici. Protože přepsání dat a ustálení stavu na sběrnici trvá dobu T 3 podle časového diagramu, která může být až 50nS, k samotnému přečtení dat dojde až ve stavu READ_W AIT, do kterého přejde automat ze stavu USB_READ. Zde přepíše data ze sběrnice do svého registru a nastaví příznak RD do log. 1. Dále přejde do stavu KONEC, ve kterém nastaví signál NOV A_DAT A do log. 1 a přejde do stavu ST ART, kdy dojde k vynulování příznaku NOV A_DAT A a celý proces příjmu dat se opakuje. Na příjem nových dat lze podle signálu NOV A_DAT A reagovat jak na jeho sestupnou tak i náběžnou hranu. Odesílání dat Pro odesílání dat byl vytvořen modul ftdi o desl. Řešení toho modulu je obdobné jako u modulu příjmu dat. Modul obsahuje pro komunikaci s dalšími moduly následující signály: CLK - hodinový signál modulu ARST - asynchronní reset modulu 35

USB_DATA - datová sběrnice k čipu FTDI, přivedeno na vývody data obvodu FTDI RXE - indikace nových dat na sběrnici, přivedeno na vývody data obvodu FTDI WR - přijetí nových dat, přivedeno na vývody data obvodu FTDI DATA - vstup odesílaných dat ODESL_PRIPRAV - indikace schopnosti odeslat další data NOVA_DATA - vstup signalizace nových dat na vstupu Na obrázku 4.3 je časový diagram zápisu dat do obvodu FT245. Podle tohoto diagramu byl realizován stavový automat, který reaguje na řídící signály a odesílá data. Schéma tohoto automatu je uvedeno na obrázku 4.4. Obr. 4.3: Časový diagram odesílání dat [18] Obr. 4.4: Stavový automat odesílání dat Po asynchronním resetu přechází automat do stavu KON EC ve které neustále setrvává. Pouze při příchodu signalizace nových dat dojde v každém stavu automatu k přechodu do stavu ST ART. Ve stavu ST ART dojde k přepsání vstupních dat do registru a automat přejde do stavu T XE_W AIT. V tomto stavu čeká signalizaci pomocí signálu T XE obvodu FT245 na schopnost odeslat data. Pokud bude podmínka splněna, přejde do stavu USB_W RIT E. Zde přepíše posílaná data na datovou sběrnici obvodu FT245 a tuto operaci potvrdí nastavením log. 1 signálu 36

W R. Poté přejde do stavu W RIT E_W AIT, kde se nic nemění, ale splní se časová podmínka T 7. Dál přejde do stavu KONEC. Signál W R je ve všech stavech, kromě stavů USB_W RIT E a W RIT E_W AIT držen ve stavu log. 0. Obdobně je stav na datové sběrnici udržován ve stavu vysoké impedance, kromě stavů USB_W RIT E a W RIT E_W AIT, kdy jsou na sběrnici nastavena odesílaná data. Přenosová rychlost Maximální přenosová rychlost obvodu FT245 je 1M B/s. Hodinový signál modulů pro přenost dat byl použit 3M Hz. Protože stavové automaty přijímacího a odesílacího modulu mají pět stavů, je se zvolenou hodinovou frekvencí maximální přenosová rychlost (3/5)M B/s. 4.2 FIR filtr K implementaci FIR filtru byl, jak bylo uvedeno v části zpracování signálu z MEMS mikrofonů, využit IP Core generátor. Jeho blokové schéma je uvedeno na obrázku 4.7. IP Core generátor umí implementovat několik variant FIR filtru. Od jednoduchého jednokanálového po vícekanálový. Nabízí implementaci převzorkování signálu nebo přepínání mezi několika uloženými koeficienty filtru. Případně lze za běhu nahrát do filtru nové koeficienty. U realizovaného filtru nebyly využity možnosti přepínání bank koeficientů filtrů nebo nahrávání nových koeficientů. Možnosti realizace FIR filtru IP Core modul nabízí následující možnosti implementace filtru: MAC (Multiply-Accumulate) DA (Distributed Arithmetic). Princip realizace MAC FIR filtru je na obrázku 4.5. Jak je vidět z blokového schématu, jednotka obsahuje několik zpožďovacích registrů, daných počtem koeficientů FIR filtru a bankou hodnot koeficientů FIR filtru. Při předpokladu, že hodinová frekvence FIR filtrů je vyšší o násobek počtu koeficientů, než je hodinová frekvence zpracovávaného signálu, stačí k násobení použít jednu násobící jednotku. Výhodou tohoto řešení je v počtu použitých násobících jednotek, protože při implementaci vysokého řádu FIR filtru by došlo k překročení dostupného množství integrovaných násobiček. Další vlastnost této implementace FIR filtru je zpracovávat několik nezávislých kanálů, maximálně 64. Při zpracování několika kanálů současně je použito několik bank pro vstupní data, které se při filtraci signálu multiplexují a díky tomu 37

Obr. 4.5: Struktura FIR filtru MAC [7] lze stále vystačit s nízkým počtem násobiček. Nevýhodou je nutnost opět zvýšit hodinovou frekvenci tohoto modulu a nárůst využití distribuované nebo blokové RAM v FPGA pro ukládání mezivýsledků [7]. Při konfiguraci FIR filtru si CORE generátor zvolí sám podle počtu kanálů, řádu filtru, hodinové frekvence a šířky vstupního signálu, nejmenší počet násobících jednotek a distribuovanou nebo blokovou paměť RAM. Obr. 4.6: Struktura FIR filtru DA [7] Princip DA FIR filtru je na obrázku 4.6. Z jeho schématu vyplývá, že ke své funkci nepotřebuje žádnou násobící jednotku. Používají se jednoduché bloky, jako bitový posuv, sčítání, odčítání. Všechny tyto funkce se dají efektivně implementovat 38

do FPGA. Při použití této struktury filtru lze v jednom bloku implementovat max. 8 kanálů. Výhodou realizace MAC FIR filtru jsou menší nároky na velikost FPGA, ovšem se stoupajícím řádem filtru klesá maximální možná zpracovávaná frekvence signálu. DA FIR filtr má opačné vlastnosti, se stoupajícím řádem filtru stoupá náročnost na velikost FPGA, ale maximální frekvence zpracovávaného signálu zůstává stejná. Maximální zpracovávané frekvence ale klesají se stoupající šířkou slova zpracovávaného signálu [7]. Výsledná implementace Obr. 4.7: Rozhraní modulu FIR filtru [7] Z rozhraní modulu FIR filtru byly využity signály DIN, DOUT, CLK, RFD, RDY, CHAN_IN a CHAN_OUT. Průběhy těchto signálu při volbě decimačního FIR filtru jsou uvedeny na obrázku 4.8. Dále budou popsány významy pouze použitých signálů. DIN - časově multiplexovaný vstup signálů DOUT - časově multiplexovaný výstup signálů CLK - hodinová frekvence modulu filtru, musí být vyšší než je vzorkovací frekvence vstupních signálů krát počet vstupních signálů RFD - signalizace, že je modul schopen přijmout nová data na vstupu CHAN_IN - udává číslo vstupního kanálu, ze kterého bude číst nová data RDY - signalizace nových dat na výstupu filtru CHAN_OUT - udává číslo výstupního kanálu 39

Obr. 4.8: Časový diagram bloku FIR filtru [7] Aktuální hodnoty signálů z mikrofonů jsou ukládány do registru pojmenovaného jako mikrofony, který má velikost 32 bitů. Číslo jednotlivých bitů odpovídá signálu z jednotlivých mikrofonů. Protože modul FIR filtru vyžaduje přivést na vstup alespoň 2-bitový signál, v mém případě znaménkový, bylo potřeba upravit výstupní 1-bitový signál z mikrofonů na 2-bitový. U 2-bitové proměnné ve dvojkovém doplňku určuje hodní bit znaménko čísla a dolní bit samotné číslo. Protože logické úrovně výstupu signálu z mikrofonů reprezentují hodnoty +1 a -1, bylo na dolní bit vstupu FIR filtru přivedena log. 1 a na horní bit poté pomocí multiplexoru výstupní signál z mikrofonu. Tím bylo dosaženo toho, že na vstupu FIR filtru je buď signál 01 2 nebo 11 2, které odpovídají v desítkové soustavě hodnotám +1 a -1. Ve vhdl byl napsán pro multiplexování vstupů process, skládající se z kombinační a sekvenční části. Kombinační částí je multiplexer, který na základě výstupu signálu CHAN_IN přepíná signál z mikrofonů do pomocného signálu. Sekvenční část reaguje na vzestupnou hranu signálu RF D, při které přepíše hodnotu z výstupu multiplexoru na vstup FIR filtru. Pro implementovaný FIR filtr byla zvolena struktura MAC a hodinová frekvence 48MHz, při této volbě FIR filtr využil 6 násobiček signálu a 2 bloky distribuované RAM. Při volbě hodinové frekvence 96M Hz by došlo ke snížení počtu využitých násobiček signálů na polovinu, ale k nárůstu využití blokové RAM, která je ovšem pro další implementaci potřebnější. 4.3 Posunuté čtení hodnot z mikrofonů Stanovení požadavků Určení maximálního zpoždění signálu bude vysvětleno na kruhovém poli. Pokud budem uvažovat rozsah lokalizace zvuku v náklonu 90 až90, tedy celkem 180, je potřeba počítat s nejméně příznivou krajní polohou zdroje zvuku. Uvažované pole má poloměr r = 0, 3m, takže zvuková vlna ze zdroje umístěného v rovině plochy pole musí urazit mezi nejbližším a nejvzdálenějším mikrofonem vzdálenost 40

2 r = 0, 6m. Uvažovaná rychlost šíření zvuku je v zvuk = 343ms 1, takže požadované časové zpoždění je τ = 2 r v zvuk = 0, 6 343 = 1, 75mS (4.1) Při zvolené vzorkovací frekvenci f vz = 50kHz, kde t vz = 1/f vz = 1/50 = 0, 02mS, vychází poté potřebná paměti τ/t vz = 1, 75/0, 02 = 88 vzorků. O tolik vzorků bude potřeba navzorkovaný signál posouvat. Výsledný signál z mikrofonu má po decimaci velikost 16b, takže pro 32 mikrofonů je potřeba 88 16 32 = 44Kb paměti. Ve skutečnosti je ale potřeba navzorkovat větší množství dat, protože k vyhodnocení signálu o frekvenci f sig = 300Hz, který podle frekvenční charakteristiky na obrázku 1.7 má smysl ještě vyhodnocovat, je potřeba pro každý kanál zvýšit počet vzorků o f vz /fsig = 167. Finální velikost paměti navzorkovaných dat vychází (88 + 167) 16 32 = 128Kb. Proto byla implementována paměť pro každý mikrofon o velikosti 256 vzorků. Využití dostupné paměti v FPGA je tedy 128Kb z 576Kb. Implementace K realizaci byla využita konfigurace dvouportové RAM paměti. Vstupní část má pro každý kanál společný hodinový signál a data. Vstup W EA povolující zápis do paměti má každý blok samostatný. Jako hodinový signál zápisu dat do RAM pamětí byl využit výstupní signál RDY z bloku FIR filtru a jako vstup dat do pamětí výstup dat FIR filtru. Aby se zapisovaly odpovídající výstupní hodnoty z FIR filtru do odpovídající paměti, má každý blok paměti vlastní signál k povolení zápisu dat. Hodnota signálu CHAN_OUT je dekódovaná dekodérem 1 z N, který podle čísla výstupního kanálu přivede na požadovaný blok log. 1 do vstupu W EA, tím je dosaženo zapisování odpovídajících signálů z mikrofonů do příslušných bloků pamětí. Vstupní adresa je pak určena z jiného procesu, který reaguje na signály ze stavového automatu, řídící výpočet lokalizace zvuku. Tento proces kontroluje signál povolující zápis do pamětí od stavového automatu. Pokud je tato podmínka splněna, proces zvýší pří každém dosažení signálu CHAN_OUT hodnotu adresy o 1, až do naplnění celého rozsahu pamětí (255). Pokud není povolen zápis do pamětí, udržují se všechny vstupy W EA pamětí v log. 0 a adresa pamětí je vynulována. Čtení dat z časovým zpožděním K posunutému čtení dat slouží proces, který je řízen stavovým automatem ovládající vzorkování dat i výpočet hodnoty signálu. K určení hodnoty v požadovaném bodě je potřeba načíst 128 vzorků dat z 256 z každé paměti. Ke každé výstupní adrese 41

Obr. 4.9: Principiální schéma bufferu dat RAM je přičtena hodnota, určující posunutí ve čtení dat. Tato hodnota je stejná pro načtení potřebných 128 vzorků dat. 4.4 Výpočet hodnoty signálu v požadovaném bodě Protože byl implementován delay&sum beamformig, hodnota signálu v měřeném bodě je daná součtem zpožděných signálů z mikrofonů. Pro výpočet hodnoty amplitudy signálu je potřeba sečíst posunuté výstupy ze všech zpracovávaných mikrofonů. Součet se provádí pomocí kombinační sčítačky, která sčítá výstupy všech požadovaných mikrofonů z jejich příslušných bloků RAM pamětí. Protože pro určení amplitudy je využito 128 vzorků, hledá se mezi těmito vzorky maximální hodnota amplitudy sečtených signálů. Tato hodnota je poté zapsána do paměti RAM s výsledky. Při simulaci nebyla hledána maximální hodnota signálu, ale počítal se aktuální výkon signálu, P = 1 N ΣN i=1y(i) 2 (4.2) 42

Kde: A je výkon signálu N je počet vzorků y je suma signálů z mikrofonů. který vykazoval lepší odstup lokalizovaného signálu od okolního ruchu. Pro jednodušší implementaci v hradlovém poli byla však hledána maximální hodnota signálu. V praxi se tato metoda ukázala jako dostatečná. Celý proces tvorby mapy zvuku je řízen stavovým automatem. Výchozí stav Obr. 4.10: Stavový automat realizující beamforming automatu je S0, v tomto stavu automat vyčkává na signál SRST. Po příchodu signálu povolujícího sestavit mapu hladiny zvuků přechází do stavu S1. V tomto stavu je hodnota signálu vzorkuj nastavena na 1 a umožňuje běh procesu zajišťující ukládání dat z mikrofonů do pamětí. V tomto stavu čeká automat na naplnění pamětí kontrolou hodnoty adresy zápisu dat. Po naplnění pamětí přejde automat do stavu S2. Ve stavu S2 dojde k vynulování adresy zápisu dat do výstupní paměti, k vynulování adresy čtení koeficientů zpoždění a k vynulování samotných koeficientů zpoždění. Dál automat přejde do stavu S3, kde dochází k načítání koeficientů posunu signálů a inkrementaci adresy pro čtení hodnot koeficientů zpoždění. V dalším stavu S7 se testuje, zda již došlo k načtení všech potřebných zpožďovacích koeficientů. Pokud ne, vrátí se automat do stavu S3. Jinak přejde do stavu S4. Ve stavu S4 nastaví signál povolující výpočet amplitudy signálu a kontroluje příznak dokončení této operace. Pokud je příznak splněn, přejde do stavu S8. Ve stavu S8 přepíše výsledek amplitudy signálu na vstup výsledné paměti a povolí zápis. Poté jde do stavu S9, ve kterém již došlo k zapsání výsledné hodnoty do paměti a proto dojde k zákazu zápisu do výstupní paměti, aby nedošlo k přepsání výsledku. Automat se dál dostává do stavu S5, kde inkrementuje adresu zápisu výstupní paměti (addrvysla) 43

a kontroluje její hodnotu. Pokud je celá paměť naplněná, dojde k přechodu do stavu S6, jinak automat přejde do stavu S3 a začíná výpočet amplitudy pro další bod výsledné matice. Ve stavu S6 dojde k nastavení příznaku dokončení výpočtu mapy hluku a přejde se do stavu S0. Celý tento automat je ovládán nadřazeným automatem, který bude popsán dále. Paměť výstupní matice Výsledná mapa zvuku je matice o rozměrech obecně m n. V implementaci byl zvolen rozměr mapy hluku 50x50. K ukládání hodnot této matice byla zvolena dvouportová RAM, kde port pro zápis dat přijímá 16-ti bitová data a rozsah vstupní adresy je 0-2499, to je také hodnota, kterou ve stavu S5 kontroluje automat z obrázku 4.10. Výstupní část paměti je organizována jako 8-mi bitová, má tedy dvojnásobný rozsah adresy a při čtení se přenáší postupně za sebou horní a dolní Byte výsledné hodnoty. Nakonfigurovat takto výstup paměti bylo nutné z důvodu přenosu dat do PC, kde není možné přenášet data větší jak 8 bitů, je to dané použitým převodníkem z USB na paralelní sběrnici. Paměť koeficientů posunutí Koeficienty posunu signálů jsou opět uloženy v paměti RAM. Tato paměť byla nakonfigurována jako paměť typu ROM, kde není umožněn zápis hodnot. Obsah paměti je inicializován při konfiguraci hradlového pole a není možné ho poté měnit. Změnit lze pouze ve vývojovém prostředí Xilinx ISE před vytvořením nového konfiguračního souboru. Protože k posunu signálu nedochází o víc než 127 vzorků, je velikost koeficientů zvolena 8 bitů. Velikost této paměti se odvíjí od velikosti výstupní matice a počtu použitých mikrofonů. V otestované verzi byly použity 4 mikrofony, počet koeficientů je tedy 50 50 4 = 10000. Pro vygenerování koeficientů byl vytvořen skript pro Matlab, který na základě zadaného tvaru mikrofonního pole a požadovaného rozsahu vytváření mapy, vygeneruje COE soubor, ve kterém je uložen obsah paměti koeficientů. COE soubor je textový soubor, ve kterém jsou zapsány hodnoty obsahu paměti, syntaxe tohoto souboru je jednoduchá. Tento soubor je poté možné vložit do IP Core generátoru vytvářejícího paměť RAM. 44

4.5 Řízení přenosu dat do PC Hlavní automat V souboru main.vhd je vytvořen stavový automat, ovládající automat řídící sestavení mapy hluku a posílání dat. Jeho diagram je na následujícím obrázku. Obr. 4.11: Hlavní stavový automat Automat po uvolnění z asynchronního resetu začíná ve stavu S0, zde nastaví signál SRST do 1 a spustí automat pro sestavení mapy hluku. Poté přejde do stavu S1, kde SRST nastaví do hodnoty 0 a pokračuje do dalšího stavu. Ve stavu S2 kontroluje signál hotovo, který signalizuje vytvoření mapy hluku. Při splnění této podmínky pokračuje do stavu S3, kde aktivuje reset automatu pro odesílání dat, přejde do stavu S4, kde předchozí reset deaktivuje a tím spustí odesílání získaných dat do PC, poté přejde do stavu S5, ve kterém setrvává do dalšího asynchronního resetu. Asynchronní reset může být vyvolán buď z jednotky DCM nebo v tomto případě přijetím libovolného znaku z PC. Tímto je umožněno v případě špatného přenosu dat do PC nebo jiné chyby, vyvolat po uplynuté době z PC posláním dalšího znaku reset a zahájit tak znovu a nebo novou sekvenci sestavení mapy hluku. Automat odesílající data Jak bylo uvedeno výše, pro odesílání dat byl také sestaven stavová automat. Jeho diagram je na obrázku 4.12. Obdobně jako hlavní stavový automat začíná po uvolnění s resetu stavem S0. V tomto stavu kontroluje signál z odesílacího modulu, zda je modul připraven odeslat data. Pokud ano, přejde do stavu S1, zde přepíše požadovaná odesílací data na vstup modulu odesílání a signalizuje mu nová data na jeho vstupu. Odesílací modul tyto data přijme. Poté přejde do stavu S2, kde zruší signalizaci nových dat k odeslání a přejde do stavu S3. Zde dochází k inkrementaci adresy paměti s výstupními daty. Pokud nedošlo k odeslání celého obsahu pamětí, automat přechází do stavu S0, jinak se dostane do stavu S4, kde zůstane do příchodu signálu reset. 45

Obr. 4.12: Odesílací stavový automat 4.6 Generování hodinových signálů Hradlové pole Spartan 6 má vyvedeno několik pinů určených k přivedení hodinového signálu. Protože přivádět spoustu potřebných rozdílných hodinových signálů by bylo neefektivní, je vybaven jednotkami DCM (Digital Clock Manager) spravující a generující další hodinové signály. Použité hradlové pole obsahuje celkem 4 tyto jednotky. Pro účely tohoto přípravku byla využita jedna jednotka. Potřebné hodinové signály: 12M Hz - pro generování frekvence k ovládání stavových automatů řídící komunikaci s PC, modulů pro přenos dat a generování hodinové frekvence mikrofonů 1, 5MHz - hodinová frekvence mikrofonů 48MHz - hodinová frekvence FIR filtru 96MHz - hodinová frekvence výstupů RAM pamětí se vzorky dat z mikrofonů; hodinová frekvence paměti s koeficienty zpoždění; hodinová frekvence vstupu paměti s výslednou mapou hluku Obr. 4.13: Blokové schéma DCM jednotky [8]. 46

Jednotka DCM byla do projektu vložena pomocí předpřipraveného kódu z šablony pro použití této jednotky. Do vloženého kódy bylo třeba zapsat údaje o požadovaných frekvencí a nastavení násobícího a dělícího koeficientu pro signál CLK F X. Vstupní hodinová frekvence 48M Hz je generována pomocí krystalového hodinového oscilátoru. Z jednotky DCM jsou využity signály CLK0, kde je výstup signálu 48MHz; CLKDV pro signál 12MHz, CLK2X pro frekvenci 96MHz. Tyto signály jsou generovány tak, aby fázový posuv mezi nimi byl nulový. K vygenerování dalších hodinových signálů, 1, 5MHz a 3MHz, byl využit signál 12M Hz. Pomocí čítače, kde jeho obsah je inkrementován při tiku hodin signálu 12M Hz, se generují požadované signály. Na 0-tém bitu tohoto čítače je brán signál vydělený dvěma, na druhém bitu je signál vydělený čtyřmi - požadované 3MHz a z třetího bitu je brán signál 1, 5MHz. Z výstupů jednotky je použit signál LOCKED, který indikuje, že hodinové signály ještě nejsou v pořádku. Tento negovaný signál je zde přiveden do jednotlivých modulů a procesů jako signál asynchronního resetu. Moduly jsou tedy do stavu, než řádně naběhnou hodinové signály drženy ve stavu RESET. 47

5 OVLÁDACÍ PROGRAM PRO PC K vizualizaci dat byl vytvořen program v prostředí LabView ve verzi 2011. Umožňuje příjem a vizualizaci změřených hodnot. Dálek signalizuje přípravku, že může začít zpracovávat a posílat nové hodnoty. Obvod FT245 se v systému PC jeví jako virtuální sériový port. Lze k němu tedy přistupovat jako k jakémukoliv sériovému portu. Další možností je využít ovladačů D2XX a jeho knihoven, kdy se k obvodu přistupuje přímo a je tak možné dosáhnout vyšších komunikačních rychlostí. Pro použití použitého obvodu v prostředí LabView dodává výrobce obvodu moduly, které umožňují použití obvodu s ovladačem D2XX. Při spuštění programu se podle zadaného indexu zařízení otevře spojení s obvodem, nastaví se komunikační rychlost a velikost softwareového přijímacího a vysílacího bufferu. Poté se odešle jeden znak do přípravku, tím přípravek zahájí sestavování mapy hluku. Během této doby program v 10mS smyčce ověřuje, kolik již bylo přijato dat. Pokud počet přijatých dat souhlasí s požadovaným počtem dat, daným rozměry výsledné matice, dojde k přečtení dat z bufferu. Posílaná data mají velikost 16 bitů, ale posílají se po 8 bitech. Po přijetí se data sestaví na původní 16-ti bitová a z vektoru se složí výsledná matice - mapa hluku. Ta je dále zobrazena pomocí bloku Intensity graph. Celý tento proces posílání znaku, přijmu dat až zobrazení, se cyklicky opakuje. Obr. 5.1: Čelní panel programu. 48

6 VÝSLEDKY Funkčnost přípravku byla ověřena s připojenými čtyřmi mikrofony. Nejdříve bylo nasimulováno chování takového mikrofonního pole, aby se zjistil použitelný frekvenční rozsah. Mikrofonní pole bylo organizováno jako kruhové s poloměrem 10cm. Ze výsledku simulace (obrázek??)frekvenční charakteristiky je použitelný frekvenční rozsah úzký, asi 1, 2 2, 5kHz. Výsledný prostor lokalizace byl nastaven na ±0, 5m pro zdroj vzdálený 0, 5m. Obr. 6.1: Frekvenční charakteristika testovaného mikr. pole Test byl proveden pro zdroje zvuku o frekvencích 1, 5kHz, 2kHz a 3kHz v běžné místnosti, kde se uplatňoval odraz zvuku od stěn. Zdroj zvuku byl umístěn ve vzdálenosti cca 0, 5m od středu mikrofonního pole. Výsledky jsou uvedeny na následujících obrázcích, vlevo jsou výsledky simulace a vpravo reálný test. Z výsledků simulace a testů je vidět, že pro frekvence 1, 5kHz a 2kHz se neuplatňuje prostorový aliasing efekt. Při frekvenci zdroje 3kHz, podle simulace frekvenční charakteristiky pole, už ano. 49

Obr. 6.2: Lokalizace zdroje o frekvenci 1,5kHz Obr. 6.3: Lokalizace zdroje o frekvenci 2,0kHz Obr. 6.4: Lokalizace zdroje o frekvenci 3,0kHz 50

7 ZÁVĚR Na začátku této práce byly popsány některé metody lokalizace zdroje zvuku. U metody bemformingu delay&sum byly porovnány vlastnosti několika typů mikrofonních polí. Z porovnaných typů mělo nejhorší vlastnosti křížové pole, které podle výsledné frekvenční charakteristiky mělo nejmenší odstup požadovaného signálu od potlačovaných. Další nevýhodou tohoto typu pole je jiná odezva na příchozí signál z jiných směrů. Výhodou křížového pole je jeho jednoduchost na sestavení. Dalšími typy bylo náhodné kruhové pole, spirálové pole a kruhové pole. Vlastnosti těchto polí jsou lepší než křížového pole, ale v případě spirálového a náhodného kruhového pole jsou náročnější na konstrukci. Dobré vlastnosti vykazovali jednoduchá kruhová pole, které díky jejich symetričnosti mají téměř shodné frekvenční charakteristiky ve všech směrech. Při simulaci vícenásobných kruhových polí se nevyskytl jev u jednoduchého kruhového pole, které při simulaci 4 stejných zdrojů lokalizovalo dalších 5 výrazných imaginárních zdrojů. Absence tohoto jevu u vícenásobného kruhového pole je způsobena rozložením mikrofonů rovnoměrněji po celé ploše mikrofonního pole. Dále byl simulací vyzkoušen vliv volby vzorkovací frekvence signálu na přesnost lokalizace zdroje zvuku. Protože se v implementaci zarovnávají signály po celých krocích vzorků, hraje volba vzorkovací frekvence podstatný vliv na výsledné zaokrouhlení časového posunutí signálů. Konkrétní vliv na lokalizaci jednoho zdroje signálů při různých vzorkovacích frekvencí je vidět na obrázcích 1.8 a 1.9. Z nich je vidět, že okolí lokalizovaného signálu je při použití vyšší vzorkovací frekvence "čistší". Výsledná vzorkovací frekvence byla na základě těchto simulací zvolena 50kHz. V další části práce bylo popsáno zpracování signálů z digitálních MEMS mikrofonů. Bylo vyzkoušeno několik způsobů zpracování za použití číslicových filtrů. Ve finále byl pro zpracování signálu z mikrofonů zvolen jeden velký decimační FIR filtr. Hodinová frekvence mikrofonů byla zvolena z nižší hranice udávaného rozsahu, aby byla omezena kapacitní zátěž způsobená kapacitou použitých kabelů k připojení mikrofonů na jejich výstupy. Poté byla popsána volba hradlového pole a konstrukce přípravku. V předposlední části byla popsána implementace beamforming algoritmu do hradlového pole. Zvolené hradlové pole se ukázalo jako dostatečně velké, ale s více paměti RAM by se nechal algoritmus vylepšit o paralelní zpracování. V tomto řešení lze z každé paměti číst současně jen jednu hodnotu. Ale při zdvojení paměti na ukládání vzorků mikrofonů by bylo možné číst z každé skupiny pamětí jiné údaje a rozdělit sestavování mapy hluku na poloviny. Každou polovinu by poté sestavoval samostatný beamformer. Při oživování se ukázala volba hodinové frekvence 96M Hz pro sestavení mapy 51

hluku na hranici použitelnosti, protože občas došlo k zaseknutí algoritmu. Proto nejdřív byla ve vývojovém prostředí změněna optimalizace implementace z vyrovnané na optimalizaci na rychlost. Dalšími možnostmi optimalizace při implementaci jsou optimalizace na velikost zabraného místa FPGA nebo na spotřebu FPGA. Při volbě této optimalizace již k zasekávání algoritmu nedocházelo. Protože se nepodařilo stihnout sestavit mikrofonní pole o zadané velikosti a implementovat jeho zpracování do FPGA, bylo provedeno ověření správnosti implementace alespoň na čtyřech mikrofonech. Jak bylo uvedeno v kapitole Výsledky, otestované mikrofonní pole mělo velice blízké vlastnosti nasimulovanému poli. 52

LITERATURA [1] JAN, Jiří. Číslicová filtrace, analýza a restaurace signálů. Vyd. 2. Brno: VU- TIUM, 2002, 427 s. ISBN 80-214-1558-4. [2] BRANDSTEIN, Michael a Darren WARD. Microphone arrays: signal processing techniques and applications. Springer-Verlag Berlin Heidelberg New York, 2001. ISBN 978-3-540-41953-5. [3] Brüel, Kjær TECHNICAL REVIEW - Beamforming [online]. Brüel & Kjær, 2004 [cit. 2012-04-05]. URL: <http://www.bksv.com/doc/bv0056.pdf>. [4] SØRENSEN, Jes. Noise Source Identification. [online]. [cit. 2012-03-15]. URL: <http://www.bksv.com>. [5] Spartan-6 Family Overview [online]. XILINX, March 21, 2011 [cit. 2012-03-12]. URL: <http://www.xilinx.com/support/documentation/user_guides/ds160.pdf>. [6] Cascaded Integrator Comb (CIC) Compiler [online]. XILINX, March 1, 2011 [cit. 2012-03-01]. URL: <http://www.xilinx.com/support/documentation/ip_documentation/ cic_compiler_ds613.pdf>. [7] IP LogiCORE FIR Compiler v5.0 [online]. XILINX, March 1, 2011 [cit. 2012-03-01]. URL: <http://www.xilinx.com/support/documentation/ip_documentation/ fir_compiler_ds534.pdf>. [8] Spartan-6 FPGA Clocking Resources [online]. XILINX, May 12, 2011 [cit. 2012-03-01]. URL: <http://www.xilinx.com/support/documentation/user_guides/ ug382.pdf>. [9] Spartan-6 FPGA Configuration [online]. XILINX, July 6, 2011 [cit. 2012-03-01]. URL: <http://www.xilinx.com/support/documentation/user_guides/ ug380.pdf>. [10] GREENSTED, Andrew. Microphone Array Beamforming. [online]. 29th November 2010 [cit. 2012-03-19]. URL: <http://www.labbookpages.co.uk/audio/beamforming.html>. 53

[11] EKSLER, Václav. Lokalizace zdroje vlnění polem mikrofonů v trojrozměrném prostoru. Elektrorevue [online]. 21.10.2004 [cit. 2012-03-12]. URL: <http://www.elektrorevue.cz/clanky/04051/index.html>. [12] MCP1603: 2.0 MHz, 500 ma Synchronous Buck Regulator. [online]. MICRO- CHIP, 05/15/2007 [cit. 2012-03-12]. URL: <http://ww1.microchip.com/downloads/en/devicedoc/22042a.pdf>. [13] PARK, S. Principles of Sigma-Delta Modulation for Analog-to- Digital Converters [online]. Motorola, 2000, cit. [2012-04-01]. URL: <http://www.numerix-dsp.com/appsnotes/apr8-sigma-delta.pdf>. [14] Combining the ADS1202 with an FPGA Digital Filter for Current Measurement in Motor Control Applications [online]. Texas Instruments, June 2003, cit. [2012-04-29]. URL: <http://www.ti.com/litv/pdf/sbaa094>. [15] Introduction to DSP - filtering: design by equiripple method [online]. BORES Signal Processing, Fri, 06 Feb 2009, cit. [2012-04-05]. URL: <http://www.bores.com/courses/intro/filters/4_equi.htm>. [16] Halogen Free Enhanced RF Protected Digital Mini SiSonicTM Microphone Specification [online], cit. [2011-03-22]. URL: <http://www.chipcatalog.com/knowles_acoustics/spm0405he4h.htm>. [17] Data Sheet ADMP421 [online]. Analog Devices, 11/2011, cit. [2012-03-22]. URL: <http://www.analog.com/static/imported-files/data_sheets/admp421.pdf>. [18] FT245R USB FIFO IC Datasheet [online]. FTDI Chip, April 2011, cit [2012-05-01]. URL: <http://www.ftdichip.com/support/documents/datasheets/ics/ds_ft245r.pdf>. 54

8 PŘÍLOHY 8.1 Simulace náhodného kruhového pole Obr. 8.1: Rozložení mikrofonů a lokalizace 4 stejných zdrojů zvuků. Obr. 8.2: Frekvenční char. mikr. pole a lokalizace 4 různých zdrojů zvuků. 55

8.2 Simulace spirálového pole Obr. 8.3: Rozložení mikrofonů a lokalizace 4 stejných zdrojů zvuků. Obr. 8.4: Frekvenční char. mikr. pole a lokalizace 4 různých zdrojů zvuků. 56

8.3 Simulace křížového pole Obr. 8.5: Rozložení mikrofonů a lokalizace 4 stejných zdrojů zvuků. Obr. 8.6: Frekvenční char. mikr. pole a lokalizace 4 různých zdrojů zvuků. 57