VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF MICROELECTRONICS
ZPRACOVÁNÍ SIGNÁLU Z DIGITÁLNÍCH MIKROFONŮ TYPU MEMS DIGITAL SIGNAL PROCESSING FROM MEMS MICROPHONES
BAKALÁŘSKÁ PRÁCE BACHELOR'S THESIS
AUTOR PRÁCE
CYRIL KONÍČEK
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR
BRNO 2012
doc. Ing. LUKÁŠ FUJCIK, Ph.D.
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav mikroelektroniky
Bakalářská práce bakalářský studijní obor Mikroelektronika a technologie Cyril Koníček 3
Student: Ročník:
ID: 125488 Akademický rok: 2011/2012
NÁZEV TÉMATU:
Zpracování signálu z digitálních mikrofonů typu MEMS POKYNY PRO VYPRACOVÁNÍ: Cílem této práce je návrh, modelování a implementace digitálních filtrů podle zadané specifikace do programovatelného hradlového pole FPGA. K návrhu, modelování a ověření celého systému pro zpracování digitálního signálu z mikrofonu MEMS bude využito návrhové prostředí Matlab. Sada digitálních filtrů bude následně popsána v jazyce VHDL a implementována do obvodu FPGA. Podrobně popište navržený systém z hlediska dosažených parametrů jako je výsledné rozlišení výstupních vzorků, SNR apod. Projekt bude realizován na vývojové desce Spratan-3 Starter Kit. DOPORUČENÁ LITERATURA: Podle pokynů vedoucího práce Termín zadání:
6.2.2012
Termín odevzdání:
31.5.2012
Vedoucí práce: doc. Ing. Lukáš Fujcik, Ph.D. Konzultanti bakalářské práce:
doc. Ing. Jiří Háze, Ph.D. Předseda oborové rady
UPOZORNĚNÍ: Autor bakalářské práce nesmí při vytváření bakalářské práce porušit autorská práva třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být 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í části druhé, hlavy VI. díl 4 Trestního zákoníku č.40/2009 Sb.
Abstrakt Práce se zabývá návrhem filtrů pro zpracování signálu z digitálního mikrofonu typu MEMS. V práci jsou teoreticky rozebrány typy mikrofonů, struktura digitálního mikrofonu AMDP421, struktura a návrh jednotlivých filtrů jak v programu MATLAB, tak i v jazyce VHDL. Výsledkem práce je vytvoření návrhu filtrů v jazyce VHDL, jeho implementování do hradlového pole FPGA a vytvoření vstupního a výstupního modulu k desce SPARTAN 3 FPGA STARTER KIT pro demonstraci funkce filtru.
Klíčová slova MEMS, digitální filtr, CIC filtr, FIR filtr, mikrofon, FPGA, VHDL, digitální zpracování signálu, MATLAB
Abstract Proposed bachelor thesis is focused to the filter design for digital signal processing from digital microphone (MEMS type). The microphone types, structure of AMDP421 digital microphone and digital filter types are described in details. Selected filters are modelled, designed and simulated in MATLAB tool to meet the filter specification. The results are sufficiently commented and assessed. Afterwards the digital filters are described in VHDL language and implemented to the target FPGA circuit. In frame of the work the extended modules to SPARTAN 3 STARTER KIT are developed and designed to evaluate and demonstrate the proper function of the proposed filter design.
Keywords MEMS, digital filter, CIC filter, FIR filter, microphone, FPGA, VHDL, digital signal processing, MATLAB
-3-
Bibliografická citace: KONÍČEK, C. Zpracování signálu z digitálních mikrofonů typu MEMS. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, 2012. 37 s. Vedoucí bakalářské práce doc. Ing. Lukáš Fujcik, Ph.D..
-4-
Prohlášení Prohlašuji, že svoji bakalářskou práci na téma Zpracování signálu z digitálních mikrofonů typu MEMS jsem vypracoval samostatně pod vedením vedoucího bakalářské 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é bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této 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.
V Brně dne 30. května 2012
………………………………………… podpis autora
Poděkování Děkuji vedoucímu bakalářské práce doc. Ing. Lukáši Fujcikovi, Ph.D. za účinnou metodickou, pedagogickou a odbornou pomoc a další cenné rady při zpracování práce.
V Brně dne 30. května 2012
……………………………………….. podpis autora
-5-
Obsah Úvod ........................................................................................................................... 9 1
Mikrofon............................................................................................................. 10 1.1 1.2 1.3
Uhlíkový mikrofon .......................................................................................... 10 Elektrodynamický mikrofon cívkový................................................................. 10 Kondenzátorový mikrofon................................................................................ 11
2
Digitální MEMS mikrofon ADMP421 .................................................................. 12
3
MEMS technologie .............................................................................................. 13 3.1 Mikrosenzorové systémy.................................................................................. 13 3.1.1 Piezoodporové mikrosenzory tlaku .............................................................. 13 3.1.2 Kapacitní mikrosenzory tlaku ..................................................................... 13
4
Modulátor sigma-delta ........................................................................................ 14
5
Digitální filtrace .................................................................................................. 16
6
Decimační filtr..................................................................................................... 17 6.1 Filtr CIC......................................................................................................... 17 6.1.1 Návrh filtru CIC........................................................................................ 19 6.1.2 Návrh filtru v jazyce VHDL ........................................................................ 20 6.2 Filtry FIR ....................................................................................................... 21 6.2.1 Návrh filtru FIR ........................................................................................ 22 6.2.2 Návrh filtru v jazyce VHDL ........................................................................ 25 6.3 Výsledný decimační filtr .................................................................................. 26
7
Verifikace filtrů................................................................................................... 29
8
Syntéza filtru....................................................................................................... 31
9
Vstupní a výstupní blok ....................................................................................... 32 9.1 9.2
Vstupní modul ................................................................................................ 32 Výstupní modul .............................................................................................. 32
10 Závěr .................................................................................................................. 34 11 Seznam použitých zdrojů..................................................................................... 35 12 Seznam zkratek ................................................................................................... 36 13 Přílohy na CD ..................................................................................................... 37
-6-
Seznam obrázků a tabulek Obr. 1: Konstrukce uhlíkového mikrofonu: Zapojení používané v telefonii [1] .................... 10 Obr. 2: Konstrukce elektrodynamického mikrofonu [1]......................................................... 11 Obr. 3: Zapojení kondenzátorového mikrofonu [1] ................................................................ 11 Obr. 4: Funkční blokové schéma mikrofonu ADMP421 [2] .................................................. 12 Obr. 5: Převodový mechanismus MEMS o velikosti asi 100µm realizovaný technologií objemového mikroobrábění [3] ......................................................................................... 13 Obr. 6: Jednočipový kapacitní senzor tlaku s integrovanými vyhodnocovacími elektronickými obvody [3] ................................................................................................ 13 Obr. 7: Blokové schéma sigma-delta modulátoru 1. řádu [4] ................................................. 14 Obr. 8: Časové průběhy signálů v modulátoru při sinusovém vstupním napětí [4]................ 14 Obr. 9: Proces decimace pro decimační faktor 2 .................................................................... 17 Obr. 10: Blokové schéma navrhnutého decimačního filtru .................................................... 17 Obr. 11: Struktura filtru s klouzavým průměrem [6] .............................................................. 18 Obr. 12: Struktura filtru CIC prvního řádu vygenerovaná programem SIMULINK .............. 18 Obr. 13: Kmitočtové charakteristiky pro různé řády CIC filtru s decimačním faktorem 8 [6] ........................................................................................................................................... 18 Obr. 14: Kmitočtová charakteristika CIC filtru pátého řádu s decimační faktorem 32 .......... 19 Obr. 15: Blokové schéma CIC filtru pátého řádu s decimačním faktorem 32 ........................ 20 Obr. 16: Model filtru CIC ....................................................................................................... 21 Obr. 17: Základní struktura FIR filtru řádu M [6] .................................................................. 21 Obr. 18: Ideální modulové kmitočtové charakteristiky číslicových filtrů: a) dolní propust, b) horní propust, c) pásmová propust, d) pásmová zádrž [7] ............................................ 22 Obr. 19: Příklady osové a středové souměrnosti impulsních charakteristik číslicového filtru FIR s lineární fází: a, b)dolní propust – konstantní modul v pásmech; c ,d) dolní propust – diferenciátor [7] ................................................................................................................. 23 Obr. 20: Znázornění parametrů potřebných pro návrh filtru typu dolní propust pomocí metody optimální zvlněné aproximace.............................................................................. 24 Obr. 21: Kmitočtová charakteristika navrženého FIR filtru ................................................... 25 Obr. 22: Blokové schéma struktury se sdíleným aritmetickým blokem ................................. 26 Obr. 23: Model filtru FIR........................................................................................................ 26 Obr. 24: Kmitočtová charakteristika výsledného decimačního filtru ..................................... 27 Obr. 25: Detail kmitočtových charakteristik navržených filtrů .............................................. 27 Obr. 27: Simulační prostředí ISim při verifikaci filtru FIR .................................................... 29 Obr. 27: Celý verifikační proces pro signál chirp ................................................................... 30 Obr. 29: Schéma zapojení a návrh desky vstupního modulu .................................................. 32 Obr. 30: Schéma zapojení výstupního modulu ....................................................................... 33 -7-
Obr. 31: Návrh desky plošných spojů výstupního modulu ..................................................... 33 Tab. 1: Požadované parametry navrhovaného filtru ............................................................... 16 Tab. 2: Parametry potřebné k návrhu decimačního kompenzačního FIR filtru typu dolní propust ............................................................................................................................... 24 Tab. 3: Výsledné velikosti designu jednotlivých částí návrhu ................................................ 31 Tab. 4: Výsledky syntézy pro různé struktury filtrů vygenerované v prostředí MATLAB .... 31
-8-
Úvod Práce se zabývá návrhem filtrů pro zpracování signálu z digitálního mikrofonu typu MEMS (Micro Electro Mechanical System). Tyto mikrofony se nejvíce užívají v mobilních telefonech, bluetooth náhlavních soupravách, tabletech atd. Zejména kvůli využívání tohoto mikrofonu v telekomunikaci, se práce zaměřuje na přenos frekvencí, důležitých pro porozumění mluveného slova. Podstatou práce je vytvoření návrhu filtrů v programu MATLAB a jazyku VHDL (VHSIC Hardware Description Language) pro implementace do hradlového pole FPGA (Field Programmable Gate Array). V práci jsou teoreticky rozebrány struktury starších mikrofonů, až po novější typy digitálních MEMS mikrofonů. Dále je v práci popsána struktura digitálního mikrofonu AMDP421 a návrh jednotlivých filtrů v programu MATLAB pro filtraci výstupního signálu z mikrofonu. Nakonec je popsána realizace struktury filtrů v jazyce VHDL a jejich verifikace oproti referenčním filtrům popsaným v prostředí MATLAB.
-9-
1 Mikrofon Mikrofon je elektromechanické zařízeni sloužící k přeměně akustického signálu na signál elektrický. Kvalita této přeměny závisí na zvolené konstrukci mikrofonu. Základní typy mikrofonů zde přiblížím.
1.1
Uhlíkový mikrofon
Uhlíkový mikrofon se používal zejména v telekomunikaci, a to kvůli svému omezenému kmitočtu 200 až 3400 Hz. Tento kmitočet je dán materiálem a principem, který mikrofon využívá ke své činnosti. Uhlíkový prach vykazuje určitý elektrický odpor, který je nepřímo úměrný tlaku působícím na tento prach. Toho se využívá následovně. Mezi pohyblivou a nepohyblivou elektrodou je nasypán uhlíkový prach, který je stlačován pomocí zvuku, jenž působí tlakem na pohyblivou membránu. Díky tomuto tlaku mění prach svůj elektrický odpor, a tím dochází ke změně proudu v elektrickém obvodu. Konstrukci tohoto mikrofonu vidíme na obr. 1. Z funkce je patrné, že mikrofon funguje jako elektromechanický zesilovač. Změny tlaku na vstupu mikrofonu mohou být i několikanásobně menší než změny proudu na výstupu. Nevýhoda tohoto principu je, že se při přesýpání uhlíkových zrnek, které je způsobené otřesy zařízení, generuje značný hluk. Proto se mikrofon většinou usazuje do tlumících pružin, které tyto otřesy zmenšují. [1]
Obr. 1: Konstrukce uhlíkového mikrofonu: Zapojení používané v telefonii [1]
1.2
Elektrodynamický mikrofon cívkový
V tomto mikrofonu se využívá cívky připevněné k pohyblivé membráně. Cívka se pohybuje v poli permanentního magnetu, a tím se na ní indukuje elektrický proud. Na cívky elektrodynamických mikrofonů se používají různé materiály, od čehož se odvíjí i cena. U levných mikrofonů se cívka vine na papírovou kostru, u dražších bývá cívka samonosná. Jako materiál se využívá měděný anebo hliníkový drát, popř. fólie vinuté na výšku. Také se používají eloxované hliníkové fólie vinuté naplocho. Konstrukce elektrodynamického mikrofonu je znázorněna na obr. 2. [1]
- 10 -
Obr. 2: Konstrukce elektrodynamického mikrofonu [1]
1.3
Kondenzátorový mikrofon
Uvnitř mikrofonu je jedna pevná a jedna pohyblivá elektroda, která je tvořena membránou. Tyto elektrody jsou velmi blízko u sebe. Při působení zvuku na membránu se membrána rozechvěje, čímž se mění kapacita takto vzniklého kondenzátoru. Elektrický signál, získaný tímto způsobem, je velmi slabý, a proto musí být zesílen předzesilovačem s vysokým vstupním odporem. Předzesilovač je většinou součástí pouzdra mikrofonu. Zapojení mikrofonu je znázorněno na obr. 3. [1]
Obr. 3: Zapojení kondenzátorového mikrofonu [1]
- 11 -
2 Digitální MEMS mikrofon ADMP421 Digitálním mikrofonem je v dnešní době myšlen jakýkoliv mikrofon, který nemá analogový výstup. Mikrofon ADMP421 se skládá z několika bloků. V první řadě je zde MEMS mikrofon, za který je připojen analogově/digitální (A/D) převodník s modulátorem využívající pulsně hustotní modulaci (PDM – pulse density modulation). Na výstupu potom dostáváme digitální jednobitový signál se zvoleným vzorkovacím kmitočtem. Ten můžeme volit v rozmezí 1 až 3,3 MHz. Tento výstupní signál je pulsně hustotně modulován. Na A/D převod a modulaci byl využit Sigma-Delta (Σ-∆) modulátor čtvrtého řádu. Celé blokové schéma mikrofonu ADMP421 je na obr. 4. [2]
Obr. 4: Funkční blokové schéma mikrofonu ADMP421 [2]
- 12 -
3 MEMS technologie Jedná se o novou technologii mikrosystémové techniky. Využívá se stejného materiálu, jako při výrobě integrovaných obvodů (např. křemíku), který v těchto mikroaplikacích vykazuje vlastnosti běžných materiálů (např. oceli). Díky tomu můžeme vyrábět spoustu mikroskopických aplikací, jako jsou senzory tlaku, akcelerometry, mikroskopické manipulátory, motory a další. Toho se využívá v mnoha oblastech elektroniky. Mikrosystémové aplikace najdeme v lékařské technice (elektronicky řízené skalpely), automobilové technice (airbagy, řídící a monitorovací systémy), letectví a kosmické technice. Pro výrobu MEMS systémů se používá zejména povrchové a objemové mikroobrábění substrátu. [3]
Obr. 5: Převodový mechanismus MEMS o velikosti asi 100µm realizovaný technologií objemového mikroobrábění [3]
3.1
Mikrosenzorové systémy 3.1.1
Piezoodporové mikrosenzory tlaku
Piezoodporové senzory s křemíkovou membránou jsou v průmyslu velmi používané. Měřený tlak se převádí na mechanické namáhání piezorezistorů vytvořených v pružné membráně. Tento typ senzorů tlaku je teplotně závislý a má lineární převodní charakteristiku. [3] 3.1.2
Kapacitní mikrosenzory tlaku
Zde se také používá tenká membrána z křemíku, ale její pohyb je převáděn na změnu kapacity. Plocha elektrod bývá řádově jednotky až desítky mm2 a vzdálenost v jednotkách µm. Kapacita takto vzniklého kondenzátoru se pohybuje od 1 až do 100 pF. Kapacitní senzory nevykazují žádnou hysterezi, jejich převodní charakteristika je nelineární a mají velmi malou teplotní závislost. Na obr. 6 je vidět uspořádání jednočipového kapacitního senzoru. [3]
Obr. 6: Jednočipový kapacitní senzor tlaku s integrovanými vyhodnocovacími elektronickými obvody [3]
- 13 -
4 Modulátor sigma-delta
Obr. 7: Blokové schéma sigma-delta modulátoru 1. řádu [4]
Obr. 8: Časové průběhy signálů v modulátoru při sinusovém vstupním napětí [4]
- 14 -
Modulátor Σ-∆ se nijak výrazně neliší od A/D převodníku Σ-∆. Jediná změna je, že od A/D převodníku vyžadujeme na výstupu vícebitové slovo, a proto se za Σ-∆ modulátor přidává decimátor. Tento decimátor sčítá a průměruje výstupní jednobitový signál a převádí ho na vícebitový. Zde ovšem decimátor není použit, protože na výstupu je vyžadován jednobitový signál. Princip celého Σ-∆ modulátoru je znázorněn na obr. 7 a 8. Vzorkovací kmitočet Σ-∆ modulátoru musí splňovat Nyquistův vzorkovací teorém, abychom předešli aliasingu [7], f f max < vz (1) 2 kde fmax je maximální kmitočet analogového signálu a fvz je vzorkovací kmitočet modulátoru. Aliasingu se při zpracování akustického signálu nemusíme obávat, protože Σ-∆ modulátory pracují se vzorkovacím kmitočtem pohybujících se řádově v jednotkách MHz, což je několikanásobně větší kmitočet, než u akustického signálu.
- 15 -
5 Digitální filtrace Jelikož výstupem z mikrofonu AMDP421 je jednobitový signál (bitstream) s kmitočtem 1 MHz, musíme k jeho úpravě použít číslicové filtry. Šířka pásma snímaná mikrofonem je 0 – 20 kHz, což znamená, že signál na výstupu je silně převzorkován. Toto převzorkování je typické pro modulaci Σ-∆ a slouží k odstranění šumů. Cílem naší digitální filtrace je z tohoto signálu vytvořit signál s nižším vzorkovacím kmitočtem a vyšší bitovou šířkou. Šířku propustného pásma jsem zvolil 0 – 5 kHz, protože se v tomto pásmu nacházejí dominantní složky signálu řeči, vyšší frekvence už jsou méně důležité a můžeme je odfiltrovat. Výsledné snížení vzorkovacího kmitočtu je omezeno dle Nyquistova vzorkovacího teorému (1). V tab. 1 jsou shrnuty parametry, kterých se budu snažit dosáhnout. Tab. 1: Požadované parametry navrhovaného filtru
Parametr Vstupní vzorkovací kmitočet Výstupní vzorkovací kmitočet SNR (Signal to Noise Ratio) Šířka propustného pásma Bitová šířka vstupního slova Bitová šířka výstupního slova
- 16 -
Hodnota 1 MHz 15,625 kHz > 55 dB 0 – 5 kHz 1 bit 9 bitů
6 Decimační filtr Pro snížení vzorkovacího kmitočtu se využívají decimační filtry. Tyto filtry se obvykle skládají z filtru CIC (Cascade Integrate Comb) a filtru FIR (Finite Impulse Response) zapojených to série. Ono snížení vzorkovacího kmitočtu se označuje decimačním faktorem D. Filtr s decimačním faktorem 2 bude mít na svém výstupu dvakrát méně vzorků signálu, než na vstupu. Proces decimace je velmi jednoduchý, jde pouze o ponechání každého D–tého vzorku. Vzorkovací frekvence je též snížena D–krát. Na obr. 9 je znázorněn tento decimační proces s decimačním faktorem 2. Při decimaci je potřeba mít na paměti, že decimovaný signál může obsahovat kmitočty vyšší, než jaký dovoluje Nyquistův teorém (1). Proto je potřeba před nebo za operaci decimace zařadit antialiasingový filtr typu dolní propust, který bude odstraňovat kmitočty vyšší než Fvz/(2*D). [5]
Obr. 9: Proces decimace pro decimační faktor 2
Decimace výstupního signálu mikrofonu bude probíhat ve dvou krocích, nejprve bude signál s vzorkovacím kmitočtem 1 MHz decimován filtrem CIC s decimačním faktorem 32 na kmitočet 31,25 kHz, a dále budeme decimovat filtrem FIR typu dolní propust. Ten bude mít decimační faktor 2. Výstupem z této soustavy filtrů bude vícebitové slovo s kmitočtem vzorků 15,625 kHz. Blokové schéma je znázorněno na obr. 10.
Obr. 10: Blokové schéma navrhnutého decimačního filtru
6.1
Filtr CIC
CIC filtr se nejčastěji využívá tam, kde je potřeba decimovat vysokým decimačním faktorem. Jeho struktura je oproti FIR filtru velmi jednoduchá, neobsahuje násobičky signálu a nepotřebuje místo pro uchovávání koeficientů. Struktura CIC filtrů se vyvíjí z filtrů s klouzavým průměrem obr. 11.
- 17 -
Obr. 11: Struktura filtru s klouzavým průměrem [6]
Tyto filtry nejprve sčítají vstupní vzorky, a poté je průměrují podle decimačního faktoru D. Na výstupu filtru je kmitočet vzorků D–krát menší než na vstupu. CIC filtr používá taky určitou formu průměrování hodnot. Jak je vidět na obr. 12. Nejprve je k vstupnímu vzorku přičten zpožděný vzorek před decimačním členem, poté je signál podvzorkován a následně je od tohoto signálu odečten zpožděný signál po decimaci. Takto funguje CIC filtr 1. řádu. [6]
Obr. 12: Struktura filtru CIC prvního řádu vygenerovaná programem SIMULINK
Nevýhodou CIC filtrů je jejich útlum v propustném pásmu a aliasing. Kolem potlačených kmitočtů se promítají obrazy propustného pásma, ty je nutno utlumit, aby se neprojevovaly ve výsledném propustném pásmu. Základní antialiasingovou metodou je zvětšení řádu filtru, kde s každým řádem se zvětšuje i útlum v propustném pásmu viz.obr.13. Ten lze však lehce kompenzovat v následujícím filtru FIR.
Obr. 13: Kmitočtové charakteristiky pro různé řády CIC filtru s decimačním faktorem 8 [6]
- 18 -
6.1.1
Návrh filtru CIC
Zde si je nutno dobře rozmyslet, co od filtru budeme požadovat a podle toho správně určit výsledný řád filtru. Výrobce mikrofonu AMDP421 udává SNR výstupního signálu 61 dB. Z čehož můžeme určit maximální šířku výstupního slova n. Tuto šířku výstupního slova vypočítáme ze vztahu: [6] n=
SNR − 1,761 6,02
(2),
kde n je počet bitů výstupního slova a SNR je odstup užitečného signálu od šumu. Po dosazení a vypočítání je n rovno 9,84, a z toho určíme počet bitů výstupního slova. To bude mít šířku 9 bitů. Nyní již můžeme navrhnout CIC filtr s požadovanou decimací 32. Filtr jsem navrhoval pomocí programu MATLAB a jeho funkce fdesign.decimator().
Obr. 14: Kmitočtová charakteristika CIC filtru pátého řádu s decimační faktorem 32
Při návrhu je potřeba dbát na to, aby byly obrazy propustného pásma dostatečně utlumeny. Tyto obrazy se nacházejí kolem decimačních kmitočtů a je potřeba, aby byly utlumeny nejméně o 55 dB. Navržený CIC filtr je pátého řádu, což jsem určil podle SNR výstupního signálu z mikrofonu, a také podle zvolené šířky propustného pásma. Strukturu tohoto filtru vygenerovanou programem SIMULINK můžeme vidět na obr. 15.
- 19 -
Obr. 15: Blokové schéma CIC filtru pátého řádu s decimačním faktorem 32
Pro úplnost zde uvedu i výpis příkazu info() pro navržený filtr v programu MATLAB. Filter Structure Decimation Factor Differential Delay Number of Sections Stable Linear Phase
: : : : : :
Input Output Filter Internals
: s2,0 : s9,-18 : Minimum Word Lengths
Integrator Section Integrator Section Integrator Section Integrator Section Integrator Section Comb Section 1 Comb Section 2 Comb Section 3 Comb Section 4 Comb Section 5
6.1.2
1 2 3 4 5
: : : : : : : : : :
Cascaded Integrator-Comb Decimator 32 1 5 Yes Yes (Type 2)
s27,0 s27,0 s24,-3 s20,-7 s17,-10 s15,-12 s14,-13 s13,-14 s12,-15 s12,-15
Návrh filtru v jazyce VHDL
Při převádění filtru do kódu jazyka VHDL jsem se řídil strukturou filtru, která je uvedena na obr. 15. Nejprve bylo potřeba určit kmitočet hodinového signálu clk. Jelikož v celém filtru výpočty mohou probíhat paralelně, zvolil jsem tento kmitočet na 1 MHz, což je i kmitočet vstupního signálu. Na výsledné velikosti filtru se značně podílí i metoda návrhu. Tu jsem zvolil ,,minimal word lengths“ pro co nejmenší velikost registrů. Podstatou metody je po každém integračním nebo derivačním členu, vždy zmenšit bitovou šířku výstupního slova, při zachování dostatečně přesného výsledku. Ze struktury je patrné, že integrátory pracují na nejvyšším kmitočtu a přitom mají největší bitovou šířku. Proto bylo žádoucí výpočty provádět paralelně a ne sériově. Derivátory pracují na 32–krát menším kmitočtu, což nabízí možnost provádět výpočty sériově při použití jednoho derivátoru. Zde má ale každý derivátor jiné bitové šířky vstupních a výstupních signálu, a proto je toto řešení méně vhodné. Výpočty se zde budou provádět stejně jako u integrátorů a to paralelně. Snížení kmitočtu jsem vyřešil čítačem s pětibitovým registrem, který se každý kmit hodinového signálu inkrementuje o 1. - 20 -
Při přetečení tohoto čítače se provedou přesuny dat do vstupních registrů derivátoru, čímž se zaručí ono snížení kmitočtu, signál out_enable je aktivní vždy, při následující náběžné hraně signálu clk po vyslání dat na výstup. Dále bylo potřeba převést vstupní signál z jednoho bitu na dvoubitové číslo s rozsahem 1 až -1. Zde jsem pouze z nulové hodnoty signálu udělal hodnotu -1. Na výstupu filtru ovšem při tomto rozkmitu vstupních hodnot získáme pouze hodnoty 127 až -128. Což je polovina rozsahu jakého může nabývat devítibitový výstup. Řešení problému jsou dvě. První spočívá ve vytvoření filtru, který bude mít při rozmítání ±1 desetibitový výstup o hodnotách 255 až -256 a tento výstup se následně převede do devítibitového registru. Při tomto řešení se zvýší šířky registrů, což se projeví na velikosti výsledného designu filtru. Druhé řešení je poněkud jednoduššího charakteru, a to přivádět na vstup filtru signál o vyšší hodnotě než je ±1. Již při rozmítání vstupního signálu ±2 má výstup požadovaný rozsah. Rozmítáním ještě vyššími hodnotami můžeme zvýšit amplitudu výsledného signálu. Testováním jsem zjistil, že i při vyšší intenzitě zvuku přicházejícího na mikrofon, dosahovala amplituda výstupního signálu z filtru menších hodnot, a proto se mi zdá tato metoda vhodnější. Na obr. 16 je znázorněn model filtru s jeho vstupními a výstupními signály.
Obr. 16: Model filtru CIC
6.2
Filtry FIR
FIR filtry jsou struktury s konečnou impulsní odezvou, a díky této konečné impulsní odezvě jsou vždy stabilní. Struktura FIR filtru je tvořena ze základních bloků, jako jsou násobičky, sčítačky, zpoždění, a narozdíl od IIR (Infinite Impulse Response) filtrů neobsahují zpětné vazby. Základní blokové schéma FIR filtru řádu M je na obr. 17. [6]
Obr. 17: Základní struktura FIR filtru řádu M [6]
Tento typ filtru s konečnou impulsní odezvou se nejčastěji používají jako dolní, horní a pásmová propust či zádrž. Dolní propust upravuje vstupní signál tak, že potlačuje složky s vyšším kmitočtem než je kmitočet mezní. Horní propust propouští složky signálu s vysokým kmitočtem a pásmová propust propouští jen určité kmitočtové pásmo signálu. FIR struktury se zde užívají proto, že jsou vždy stabilní a velice snadno můžeme docílit lineární fázové
- 21 -
charakteristiky v celém kmitočtovém rozsahu, narozdíl od IIR struktur. Ideální modulové kmitočtové charakteristiky těchto filtrů jsou znázorněny na obr. 18. [7]
Obr. 18: Ideální modulové kmitočtové charakteristiky číslicových filtrů: a) dolní propust, b) horní propust, c) pásmová propust, d) pásmová zádrž [7]
6.2.1
Návrh filtru FIR
Pří návrhu filtru si musíme nejdříve ujasnit, co od něho požadujeme, nebo jaký tvar by měla mít jeho kmitočtová charakteristika. Protože před tímto filtrem byl použit filtr CIC, je potřeba v propustném pásmu vykompenzovat jeho útlum. Kmitočtová charakteristika propustného pásma filtru CIC má tvar funkce sinc. Aby byl tento útlum vykompenzován, musí mít navrhovaný FIR filtr v propustném pásmu tvar přesně opačný a to inverzní funkci sinc. Aby bylo přesně ohraničené propustné pásmo, bude tento filtr typu dolní propust. Poslední požadavek na filtr je lineární fázová kmitočtová charakteristika. Pro zaručení linearity fázové kmitočtové charakteristiky filtrů FIR, a tudíž i konstantního skupinového zpoždění musí platit podmínka: [7] h(n) = ± h( N − 1 − n) , pro n = 0, 1, 2, … , N-1.
(3)
Tato podmínka vyjadřuje symetrii nebo antisymetrii impulsní charakteristiky číslicového filtru. To znamená, že impulsní odezva filtru musí být osově nebo středově souměrná. Délka impulsní charakteristiky N může být lichá nebo sudá, z toho vychází 4 typické případy průběhu charakteristiky. Tyto případy středové a osové souměrnosti jsou na obr. 19. [7] - 22 -
Obr. 19: Příklady osové a středové souměrnosti impulsních charakteristik číslicového filtru FIR s lineární fází: a, b)dolní propust – konstantní modul v pásmech; c ,d) dolní propust – diferenciátor [7]
K návrhu číslicových filtrů typu FIR se nejčastěji používají tyto metody: - metoda váhové posloupnosti (metoda okna), - metoda vzorkování kmitočtové charakteristiky, - metoda optimální rovnoměrně zvlněné aproximace. [7] Pro návrh filtru jsem použil funkci programu MATLAB, a to fdesign.decimator(). Jako metodu, která byla použita pro návrh FIR filtru, jsem zvolil metodu optimální rovnoměrně zvlněné aproximace – ,,equiripple”. Ta funguje tak, že k výslednému návrhu filtru dochází postupně v několika aproximacích, kde se upravuje výsledný tvar filtru, aby co nejlépe odpovídal zadané kmitočtové charakteristice. [7] Díky této metodě můžeme poměrně snadno najít nejmenší řád filtru, který bude splňovat naše požadavky, což je v návrhu filtru pro hradlová pole více než žádoucí. Z předchozího uvažování víme, že máme navrhnout FIR filtr typu dolní propust s lineární fázovou charakteristikou.
- 23 -
Obr. 20: Znázornění parametrů potřebných pro návrh filtru typu dolní propust pomocí metody optimální zvlněné aproximace
Na obr. 20 jsou znázorněny důležité parametry, které formují výslednou kmitočtovou charakteristiku filtru. Apass je maximální povolené zvlnění propustného pásma filtru, Astop značí minimální odstup signálu propustného a zádržného pásma, Fpass udává dovolenou šířku propustného pásma filtru a Fstop je kmitočet začátku pásma utlumeného o hodnotu Astop. Odstup propustného a nepropustného pásma jsem zvolil na 55 dB. Další důležitý parametr pro vytvoření kompenzačního filtru je řád předchozího CIC filtru. Ten je důležitý proto, aby se správně nastavilo mírné zesílení v propustném pásmu. Nakonec bylo potřeba určit bitovou šířku koeficientů. Testováním jsem zjistil, že pro tyto požadavky postačují koeficienty o dvanáctibitové šíři. Po zadání všech parametrů byl navrhnut výsledný FIR filtr. Ten je 40. řádu a jeho kmitočtová charakteristika je na obr. 21. V tab. 2 jsou vypsány všechny potřebné parametry pro návrh. Tab. 2: Parametry potřebné k návrhu decimačního kompenzačního FIR filtru typu dolní propust Parametr
Hodnota
Vstupní vzorkovací kmitočet
31,250 kHz
Výstupní vzorkovací kmitočet
15,625 kHz
Decimační faktror
2
Kmitočet Fpass
5 kHz
Kmitočet Fstop
7,8125 kHz
Apass
0.01 dB
Astop
55 dB
Řád předchozího CIC filtru
5
Bitová šířka koeficientů
12 bitů
Bitová šířka vstupního slova
9 bit
Bitová šířka výstupního slova
9 bitů
- 24 -
Obr. 21: Kmitočtová charakteristika navrženého FIR filtru
Pro úplnost zde dále uvedu i výpis příkazu info() pro navržený filtr v programu MATLAB. Filter Structure Decimation Factor Polyphase Length Filter Length Stable Linear Phase
: : : : : :
Direct-Form FIR Polyphase Decimator 2 21 41 Yes Yes (Type 1)
Arithmetic Numerator Input Filter Internals Output Product Accumulator Round Mode Overflow Mode
: : : : : : : : :
fixed s12,12 -> [-5.000000e-001 5.000000e-001) s9,0 -> [-256 256) Specify Precision s9,0 -> [-256 256) s20,12 -> [-128 128) s23,12 -> [-1024 1024) nearest saturate
6.2.2
Návrh filtru v jazyce VHDL
Nejdříve je potřeba pochopit strukturu decimačního filtru FIR. FIR filtr pracuje tak, že ve své paměti má uložený určitý počet koeficientů a ten samý počet vstupních zpožděných signálů. Každý vzorek signálu se vynásobí s určitým koeficientem, poté se všechny výsledky sečtou a výsledná suma se po úpravě bitové šířky přivede na výstup filtru. U decimačního FIR filtru je situace trochu jiná. Princip vysvětlím přímo na navrženém filtru. Ten je 40. řádu, to znamená, že má 41 koeficientů a ty se musí násobit se 41 zpožděnými vstupními signály. Jelikož se jedná o decimační filtr s decimačním faktorem 2, tak je rozdělen do dvou sekcí, první má 21 koeficientů a druhá 20. Tyto koeficienty jsem získal z programu MATLAB. Vstupní signál a jeho zpožděné vzorky se též rozdělí na 2 oddíly, stejně jako koeficienty. Do prvního oddílu budou vstupovat pouze liché vstupní vzorky a do druhého oddílu pouze sudé. Dále tyto oddíly pracují už jako obyčejné FIR filtry, kde výsledný signál celého decimačního - 25 -
filtru se tvoří ze sumy jejich výsledných součtů. Při návrhu je třeba se zaměřit zejména na počet použitých násobiček ve výsledném designu. S ohledem na velikost filtru je žádoucí používat pouze jednu násobičku při multiplexování jejích vstupů. Hodinový signál clk bude mít kmitočet stejný jako u filtru CIC, a to 1 MHz, což umožňuje využít strukturu FIR filtru se sdíleným aritmetickým blokem, kde je využita pouze jedna násobička a jeden součtový člen. Blokové schéma této struktury je na obr. 22.
Obr. 22: Blokové schéma struktury se sdíleným aritmetickým blokem
Celý proces funguje tak, že po signálu in_enable z filtru CIC je 31 náběžných hran signálu clk, ve kterých se vždy musí pronásobit vstupní vzorky s koeficienty jedné sekce. Výsledky se z jednotlivých násobení sečtou a vyčkává se na další signál in_enable. Proces se opakuje s druhou sekcí, sečtou se výsledky a na výstup se přivede konečný součet s upravenou bitovou šířkou. Koeficienty mají 12 bitů a jsou uloženy v paměti RAM. Není nutné ukládat všech 41 koeficientů, díky zrcadlové symetrii stačí uložit jen polovinu koeficientů. Zpožděné vstupní vzorky jsou ukládány do pole registrů, kde při příchodu nového vstupního vzorku se poslední zahodí. Výstupní signál se mění s kmitočtem 15,625 kHz. Potvrzovací signál out_enalble je aktivní vždy, při následující náběžné hraně signálu clk po vyslání dat na výstup. Na obr. 23 je znázorněn model filtru s jeho vstupními a výstupními signály.
Obr. 23: Model filtru FIR
6.3
Výsledný decimační filtr
Zapojením filtru CIC a filtru FIR do kaskády získáme výsledný decimační filtr. Jeho kmitočtová charakteristika je zobrazena na obr. 24. Detail kmitočtové charakteristiky spolu s charakteristikami filtrů CIC a FIR je na obr. 25. Modře je zde vyznačena charakteristika výsledného filtru, červeně filtru CIC a zeleně filtru FIR. Dále je zajímavý detail propustného pásma filtru, který najdeme na obr. 26. Zde je jasně vidět kompenzace útlumu filtru CIC filtrem FIR, výsledkem je rovná charakteristika v propustném pásmu.
- 26 -
Obr. 24: Kmitočtová charakteristika výsledného decimačního filtru
Obr. 25: Detail kmitočtových charakteristik navržených filtrů
- 27 -
Obr. 26: Detail propustného pásma kmitočtových charakteristik navržených filtrů
Ve výsledném VHDL popisu filtru je potřeba spojit oba dva bloky a výstupní signál z FIR filtru převést z dvojkového doplňku na devítibitové číslo s rozsahem 0 až 512. Hodnota 256 zde bude reprezentovat hodnotou 0. Tento převod provádíme z důvodu následného digitálně analogového převodu ve výstupním modulu. Výstupní převodník nedokáže pracovat s číslem ve dvojkovém doplňku.
- 28 -
7 Verifikace filtrů Verifikace je velmi důležitá část v procesu návrhu filtru. Ve své podstatě je to ověření funkce jak vnitřních, tak i výstupních signálů. Verifikaci jsem prováděl v simulačním prostředí ISim. Ta probíhala následovně. Nejprve jsem v MATLABu pomocí modelu Σ-∆ převodníku prvního řádu (dspsdadc) vytvořil výstupní signály o hodnotách ±1 dvou typů signálu. Prvním je sinusový signál s kmitočtem 100 Hz a druhý je signál chirp, který obsahuje kmitočty od 0,1 Hz až po 40 kHz. Ty jsem přivedl na referenční modely filtrů vytvořené v MATLABu, a tak získal referenční výstupní signály. Jako referenční CIC filtr jsem uvažoval jeho podobu s desetibitovým výstupem, protože ta vykazovala výstup se správným rozkmitem. Signály z Σ-∆ modulátoru jsem použil i jako vstupní stimuly v simulaci a výstupní signály jsem porovnával. Pro každý filtr byl vytvořen testbench, který porovnává výstupy ze simulace filtru a výstupy z referenčního filtru. Když se mezi signály objeví odchylka, program vypíše hlášení o chybě. Pro správnou funkci je velmi důležité, aby výstupy referenčních filtrů a výstupy ze simulací byly totožné. Na obr. 27 je znázorněno simulační prostředí ISim při verifikaci filtru FIR. V simulaci filtru CIC se ověřila navržená metoda buzení pomocí vstupních stimulů ±2, výstupní signál byl totožný se signálem z referenčního filtru.
Obr. 27: Simulační prostředí ISim při verifikaci filtru FIR
Na obr 28. je vidět celý verifikační proces pro signál chirp, nahoře je analogový signál, pod ním se nachází signál z Σ-∆ modulátoru, následuje výstup z CIC filtru, dále výstup z filtru FIR a poslední je výstup z celkového decimačního filtru. Na vertikální ose je amplituda signálu a na ose horizontální se nachází počet vzorků. Testovací soubory pro jednotlivé filtry a výstupy referenčních filtrů jsou uloženy v příloze na CD.
- 29 -
Obr. 27: Celý verifikační proces pro signál chirp
- 30 -
8 Syntéza filtru Syntéza je proces, při kterém se určuje výsledná velikost návrhu a počet prvků, které jsou použity pro výsledný design. Syntézu filtrů a vlastně i návrh v jazyce VHDL jsem prováděl v návrhovém prostředí Xilinx ISE Design Suite 13.1. V tab. 3 jsou uvedeny výsledky syntézy navržených filtrů CIC, FIR, výsledného decimačního filtru a děličky signálu pro hodinový signál clock, která je součástí decimačního filtru. Důležitým parametrem je také množství prvků, které jsou k dispozici. To se odvíjí od typu obvodu FPGA, pro který návrh provádíme. V tab. 3 jsou uvedeny hodnoty pro hradlové pole Spartan 3. Tab. 3: Výsledné velikosti designu jednotlivých částí návrhu Dělička
CIC
FIR
Decimační filtr
K dispozici
Slices
6 (0 %)
125 (6 %)
221 (11 %)
345 (17 %)
1920
Slices Flip Flops
7 (0 %)
195 (5 %)
271 (7 %)
472 (12 %)
3840
4 input LUTs
13 (0 %)
189 (4 %)
394 (10 %)
585 (15 %)
3840
Bonded IOBs
3 (1 %)
13 (7 %)
22 (12 %)
13 (7 %)
173
MULT18X18s
0 (0 %)
0 (0 %)
1 (8 %)
1 (8 %)
12
GCLKs
1 (12 %)
1 (12 %)
1 (12 %)
2 (25 %)
8
Pro srovnání výsledných velikostí jsem navržené filtry vytvořil i pomocí generátoru VHDL kódu obsaženého v prostředí MATLAB. Zde jsem použil všechny možné designy filtrů, které generátor nabízí. V tab. 4 jsou uvedeny výsledky syntézy pro návrhy filtrů pomocí generátoru. Navržený FIR filtr se svojí strukturou nejvíce podobá vygenerovanému designu „fully serial“, kde je taktéž použita pouze jedna násobička. Pro zajímavost jsem zde také uvedl návrh FIR filtru „distributed arithmetic“, kde se za pomoci distribuované aritmetiky upraví struktura filtru tak, že v ní nebude potřeba násobička signálu, což výrazně zmenší velikost filtru. Ovšem ruční návrh by byl příliš složitý, a proto jsem volil design s jednou násobičkou. Tab. 4: Výsledky syntézy pro různé struktury filtrů vygenerované v prostředí MATLAB CIC
FIR fully paraller
FIR partly serial
FIR fully serial
FIR distributed arithmetic
Slices
127 (6 %)
1227 (63 %)
601 (31 %)
592 (30 %)
357 (18 %)
Slices Flip Flops
198 (5 %)
381 (9 %)
464 (12 %)
474 (12 %)
280 (7 %)
4 input LUTs
189 (4 %)
2289 (59 %)
986 (25 %)
993 (25 %)
570 (14 %)
Bonded IOBs
15 (1 %)
22 (12 %)
22 (12 %)
22 (7 %)
22 (7 %)
MULT18X18s
0 (0 %)
12 (100 %)
2 (16 %)
1(8 %)
0 (0 %)
GCLKs
1 (12 %)
1 (12 %)
1 (12 %)
1 (12 %)
1 (12 %)
- 31 -
9 Vstupní a výstupní blok Součástí zadání bylo vytvořit vstupní a výstupní moduly pro desku SPARTAN 3 FPGA STARTER KIT, ve které bude decimační filtr implementován. Vstupní blok by měl přivádět data z mikrofonu na filtr. Výstupní blok bude obsahovat digitálně analogový převodník, kterým se bude převádět výstupní digitální signál na analogový. Dále je tento analogový signál vyveden na výstup pro sluchátka. Pro návrh obou modulů byl použit program EAGLE.
9.1
Vstupní modul
Vstupní modul je velmi jednoduchý, je zde pouze digitální mikrofon ADMP421 a kondenzátor s kapacitou 100nF. Ten je zapojen mezi svorky napájení, aby se z něj odstranily parazitní artefakty. Mikrofon je zapojen tak, aby platná data na výstupu byly vždy s náběžnou hranou vzorkovacího signálu clock. To znamená, že pin L/R select musí být spojen s pinem GND. Napájecí napětí i vzorkovací signál se bude přivádět z desky SPARTAN 3 FPGA STARTER KIT. Napájecí napětí má hodnotu 3,3 V, vzorkovací kmitočet je 1 MHz. Pod mikrofonem musí být vyvrtána díra, aby jeho membrána nebyla zaslepena. Výsledná deska a její schéma je znázorněno na obr. 29. Zejména, kvůli malým rozměrům jsem si desku nechal vyrobit u firmy MESIT PCB, spol. s r. o..
Obr. 29: Schéma zapojení a návrh desky vstupního modulu
9.2
Výstupní modul
Výstupní modul převádí digitální signál z výstupu filtru na analogový pro poslech ve sluchátkách. Schéma vychází z digitálně analogového převodníku používající žebříčkovou síť rezistorů R-2R, popsaném v [6]. Poté je zde zapojen nízkonapěťový mono/stereo zesilovač TDA7050, který zesiluje převedený signál pro jeho vyvedení na sluchátkový výstup. Napájení má hodnotu 3,3 V a odebírá se z desky SPARTAN 3 FPGA STARTER KIT. Výsledné zapojení je uvedeno na obr. 30, návrh desky plošného spoje se nachází na obr. 31. Výstupní modul má sloužit pouze k demonstraci výstupního signálu, nejsou kladeny vysoké nároky na přesnost analogově digitálního převodu, a proto jsem zvolil toto zapojení, které k tomuto účelu plně dostačuje .
- 32 -
Obr. 30: Schéma zapojení výstupního modulu
Obr. 31: Návrh desky plošných spojů výstupního modulu
- 33 -
10 Závěr Cílem této práce bylo navrhnout sérii filtrů, které budou sloužit k úpravě výstupního signálu z mikrofonu AMDP421 pro přenos řeči. Tento mikrofon patří do skupiny mikrofonů typu MEMS, což znamená, že jeho membrána je vytvořena na polovodičovém čipu a její zákmity se převádějí na elektrický signál. Tento elektrický signál je analogový, a proto je převeden A/D převodníkem na signál digitální. K převodu signálu zde slouží modulátor typu Σ-∆ čtvrtého řádu. Výstupem z digitálního mikrofonu AMDP421 jsou jednobitové vzorky s vzorkovacím kmitočtem 1 až 3,3 MHz. Tento signál je pulsně hustotně modulován, a od toho se odvíjí i následující filtrace. Podstatou filtrace tohoto signálu je zdecimování vzorkovacího kmitočtu na kmitočet nižší, se zachováním Nyquistova vzorkovacího teorému (1). Pracovní pásmo jsem určil na 0 až 5 kHz, v tomto pásmu se nacházejí nejvýznamnější kmitočtové složky signálu pro porozumění mluveného slova. Vzorkovací kmitočet mikrofonu jsem zvolil nejnižší možný, a to 1 MHz, aby mohl být decimační faktor filtrů co nejmenší. K decimování signálu jsem použil nejprve CIC filtr, který decimuje s decimačním faktorem 32 a zvedá šířku výstupního slova na 9 bitů. Vzorkovací kmitočet signálu po projití CIC filtrem se zmenší 32–krát, a to na hodnotu 31,25 kHz. Poté je signál přiveden do FIR filtru typu dolní propust s decimačním faktorem 2. Tento filtr především kompenzuje útlum filtru CIC a také ohraničuje propustné pásmo. Výsledný signál po filtraci má vzorkovací kmitočet 15,625 kHz a devítibitovou šířku výstupního slova. SNR soustavy filtrů je větší než 55 dB a proto vyhovuje našim požadavkům. Navržené filtry byly popsány v jazyce VHDL pro implementaci do hradlového pole FPGA. U filtru CIC byla použita standardní struktura s paralelními výpočty viz. obr. 15 a pro FIR filtr byla použita struktura se sdíleným aritmetickým blokem viz. obr. 22. Verifikace filtrů proběhla úspěšně, filtry popsané v jazyce VHDL měly při přivádění testovacích signálů na vstupy totožný výstupní signál s referenčními filtry. Výsledky syntézy filtru CIC, co se velikosti tyká, se nijak výrazně neliší od výsledků pro jeho vygenerovaný ekvivalent. Pro Výsledná syntéza designu FIR filtru potvrdila použití pouze jedné násobičky, což představuje značnou úsporu místa. U FIR filtru byla výsledná velikost designu oproti vygenerovanému ekvivalentu několikanásobně menší. Součástí práce bylo také navrhžení vstupního a výstupního modulu pro SPARTAN 3 FPGA STARTER KIT. Vstupní modul obsahuje digitální mikrofon AMDP421 a přivádí jeho výstupní signál na vstup filtru. Výstupní modul převádí výstupní digitální signál na analogový, který je poté vyveden na výstup pro sluchátka. Vzniklé moduly slouží k prezentaci funkce navrženého decimačního filtru.
- 34 -
11 Seznam použitých zdrojů [1]
Elektroakustika [online]. 2012 [cit. 2012-5-07]. Konstrukce mikrofonů. Dostupné z:
.
[2]
Firemní literatura firmy Analog Devices [online]. 11/2011. ADMP421. Dostupné z: .
[3]
HUSÁK, Miroslav. Užití MEMS v průmyslu. Automa [online]. 2008, 12, [cit. 2011-12-07]. Dostupné z: .
[4]
VRBA, Kamil; HANÁK, Pavel. A/D převodníky [online]. Brno, 30.4. 2007 [cit. 2011-12-07]. Sigma-delta. Dostupné z: .
[5]
PRCHAL, Josef a Boris ŠIMÁK. Digitální zpracování signálů v telekomunikacích. 1. vyd. Praha: Vydavatelství ČVUT, 2000, 222 s. ISBN 80-010-2149-1.
[6]
HÁZE, Jiří, et al. Teorie vzájemného převodu analogového a číslicového signálu [online]. Brno, 10.2.2010 [cit. 2011-12-07]. Dostupné z: .
[7]
VÍCH, Robert a Zdeněk SMÉKAL. Číslicové filtry. 1. vyd. Praha: Academia, 2000, 218 s. ISBN 80-200-0761-X.
- 35 -
12 Seznam zkratek A/D
Analog/Digital
CIC
Cascaded Integrator Comb
FIR
Finite Impulse Response
FPGA
Field Programmable Gate Array
GND
Ground
IIR
Infinite Impulse Response
MEMS
Micro Electro Mechanical System
PDM
Pulse Density Modulation
SNR
Signal to Noise Ratio
VHDL
VHSIC Hardware Description Language
VHSIC
Very High Speed Integrated Circuits
Σ-∆
Sigma-Delta
- 36 -
13 Přílohy na CD VHDL popisy filtrů VHDL popisy filtrů vygenerované pomocí MATLABu Testbench pro jednotlivé filtry Výsledky simulací Referenční filtry v MATLABu Testovací signály
- 37 -