ETIN80 - Algoritmer i signalprocessorer. EigenBeamformer

Relevanta dokument
Faltningsreverb i realtidsimplementering

Signalanalys med snabb Fouriertransform

Digital Signalbehandling i Audio/Video

Teknisk / Audiologisk Information. FREE VC och FREE VC Open FREE Exclusive och FREE Exclusive Open

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform

Digital signalbehandling Digitalt Ljud

Flerdimensionell signalbehandling SMS022

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

DT1120 Spektrala transformer för Media Tentamen

Spänningsstyrd Oscillator

Tentamen i Signaler och kommunikation, ETT080

Adaptiva Filter. Johan Haarala Signaler och System

Tillämpning av komplext kommunikationssystem i MATLAB

Digital signalbehandling Laboration 2 Digital filtrering

Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University

Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University

EKG-klassificering. Andreas Bergkvist, Michael Sörnell,

Att välja kurser på Datateknik år 4-5

Laboration 3 Sampling, samplingsteoremet och frekvensanalys

Konstruktion av en radiostyrd legobil. Digitala projekt av Arbon Vata Leonardo Vukmanovic Amid Bhatia

Projektrapport i Digitala System

DIGITALA FILTER DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1

Flerdimensionella signaler och system

Tentamen i Elektronik, ESS010, del 2 den 17 dec 2007 klockan 8:00 13:00 för inskrivna på elektroteknik Ht 2007.

Digitala projekt rapport

Umeå universitet Tillämpad fysik och elektronik Ville Jalkanen mfl Laboration Tema OP. Analog elektronik för Elkraft 7.

En generell prediktiv kodare utnyttjar signalens utseende N steg tillbaka i tiden för kodningen, dvs vi kodar efter den betingade fördelningen

DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1. Frekvensfunktioner FREKVENSSVAR FÖR ETT TIDSDISKRET SYSTEM. x(n)= Asin(Ωn)

F5 Introduktion till digitalteknik

Laboration - Va xelstro mskretsar

F5 Introduktion till digitalteknik

Yrkeshögskolan Novia Utbildningsprogrammet i elektroteknik

Resttentamen i Signaler och System Måndagen den 11.januari 2010, kl 14-19

Laboration i Fourieranalys för F2, TM2, Kf2 2011/12 Signalanalys med snabb Fouriertransform (FFT)

Laboration ( ELEKTRO

TNMK054 - LJUDTEKNIK 1 FILTER OCH VCF

Föreläsning 10, Egenskaper hos tidsdiskreta system

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

Välkomna till TSRT19 Reglerteknik Föreläsning 5. Sammanfattning av föreläsning 4 Frekvensanalys Bodediagram

PlantPuppy Räddaren för den som inte kan hålla växterna vid liv

D/A- och A/D-omvandlarmodul MOD687-31

AKTIVA FILTER. Laboration E42 ELEKTRO. UMEÅ UNIVERSITET Tillämpad fysik och elektronik Sverker Johansson Rev 1.0.

IKUSI STG Produktöversikt

Elektro och Informationsteknik LTH Laboration 4 Tidsplan, frekvensplan och impedanser

Bildbehandling i frekvensdomänen

Signalbehandling Röstigenkänning

Rundradiomottagare Mikael Andersson Martin Erikson. Department of electroscience. ETI 041 Radioprojekt

AD-/DA-omvandlare. Digitala signaler, Sampling och Sample-Hold

Populärvetenskaplig text Elektronik för D - ETIA01

Tentamen ssy080 Transformer, Signaler och System, D3

Tentamen i Digitalteknik, EIT020

GRUNDKURS I SIGNALBEHANDLING (454300), 5sp Tentamen

Samtidig visning av alla storheter på 3-fas elnät

Frekvensplanet och Bode-diagram. Frekvensanalys

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

TSIU61: Reglerteknik. Frekvensbeskrivning Bodediagram. Gustaf Hendeby.

Överföringsfunktioner, blockscheman och analys av reglersystem

Ansiktsigenkänning med MATLAB

Signalbehandling, förstärkare och filter F9, MF1016

Linjär prediktion. Prediktiv kodning. Linjär prediktion. Prediktiv kodare och avkodare

DT1130 Spektrala transformer Tentamen

TSIU61: Reglerteknik. de(t) dt + K D. Sammanfattning från föreläsning 4 (2/3) Frekvensbeskrivning. ˆ Bodediagram. Proportionell }{{} Integrerande

Lokaloscillator för FM-rundradiobandet 98,7-118,7 MHz

DIGITAL KOMMUNIKATION

Hambley avsnitt 12.7 (7.3 för den som vill läsa lite mer om grindar) sann 1 falsk 0

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

Implementering av digitala filter

Optimal Signalbehandling Datorövning 1 och 2

4 Laboration 4. Brus och termo-emk

Grundläggande signalbehandling

Laboration i tidsdiskreta system

TEMPERATUR OCH VINDMÄTARE MED HÖGTALARFUNKTION

Elektroteknikens grunder Laboration 3. OP-förstärkare

Programmering av stegmotorer ett miniprojekt i samarbete med Svensk Maskinprovning

Digitala Projekt Konstruktion av Tamagocchi. Av: Oskar Andersson D05 & Danial Rehman D05

A/D D/A omvandling. Lars Wallman. Lunds Universitet / LTH / Institutionen för Mätteknik och Industriell Elektroteknik

Analys/syntes-kodning

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

Digitala projekt - Radiostyrd bil

Specialiseringar InfoCom

Quine McCluskys algoritm

Teknisk / Audiologisk Information. relaxx

Ämnesområde Hörselvetenskap A Kurs Signalteori, 7,5 hp Kurskod: HÖ1007 Tentamenstillfälle

MMA132: Laboration 2 Matriser i MATLAB

Aalto-Universitetet Högskolan för ingenjörsvetenskaper. KON-C3004 Maskin- och byggnadsteknikens laboratoriearbeten DOPPLEREFFEKTEN.

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

TEM Projekt Transformmetoder

Antennförstärkare för UHF-bandet

Fouriermetoder MVE295 - bonusuppgifter

TSKS06 Linjära system för kommunikation Lab2 : Aktivt filter

Tentamen i TMA 982 Linjära System och Transformer VV-salar, 27 aug 2013, kl

Analoga och Digitala Signaler. Analogt och Digitalt. Analogt. Digitalt. Analogt få komponenter låg effektförbrukning

TIDSDISKRETA SYSTEM SYSTEMEGENSKAPER. Minne Kausalitet Tidsinvarians. Linjäritet Inverterbarhet Stabilitet. System. Tillämpad Fysik och Elektronik 1

Tentamen i ESS 010 Signaler och System E3 V-sektionen, 16 augusti 2005, kl

Laboration - Operationsfo rsta rkare

2 Laborationsutrustning

Sekvensnät i VHDL del 2

Tentamen ssy080 Transformer, Signaler och System, D3

Transkript:

ETIN80 - Algoritmer i signalprocessorer EigenBeamformer Author: William Martinsson, D09 (ada09wma@student.lu.se) Mattias Ahlström, D09 (ada09mah@student.lu.se) 5 mars 2014

Innehåll 1 Introduktion 2 2 Bakgrund 2 2.1 EigenBeamformer........................... 2 3 Konstruktion 3 3.1 Matlab - Teoretisk.......................... 3 3.2 Signalprocessor - Praktisk...................... 4 4 Resultat 4 4.1 Test av modellen........................... 4 4.2 Test med signalprocessor....................... 4 4.3 Test med sinusformat filter..................... 5 5 Diskussion 5 A Matlabfunktioner 6 A.1 snirbf.m................................ 6 A.2 stcorrmtx.m.............................. 6 A.3 eigenbeam.m............................. 7 1

1 Introduktion Kunskapen kring digital signalbehandling blir viktigare i takt med att användare och konsumenter ställer högre krav på funktionalitet och prestanda hos integreade kretsar. Det blir extra intressant när det kommer till användningsområden så som akustisk signalbehandling, biomedicinsk signalbehandling och kommunikation. I denna kurs har mest fokus legat på akustisk signalbehandling då det är väldigt tacksamt att utforska vad som är möjligt att utföra med digital signalbehandling. Listan med förslag på olika projekt var lång och det ena projektet lät lika spännande än det andra, tillslut föll valet på att implementera en beamformer[1]. En beamformer eller ett spatialt filter har en mängd olika användingsområden förutom att släcka ut en viss ljudkälla i ett rum som ofta är målet när en akustisk beamformer används. Beamforming används också i t.ex. trådlösa nätverk och radar-teknologin.[2] I denna rapport ska läsaren få en bakgrund kring hur en akustisk beamformer är uppbyggd och hur en implementation av en sådan kan se ut. 2 Bakgrund Uppgiften att implementera en beamformer kan göras på olika abstraktionsnivåer men dimensionerades utifrån tidigare förkunskaper i ämnet samt den tid som fanns till förfogan att göra implementationen. Efter samtal med handledare för projektet föll valet att designa och implementera en Signal to Noise and Interference Ratio (SNIR) beamformer. Med hjälp av eigenvektor-analys är designmålet att maximera den önskade signalens energinivå och minimera energinivån hos störsignalen. Figur 1: Beamformer där insignalerna noteras från x 0 (n) till x K 1(n), filter h 0 (n) till h K 1(n) och utsignal y(n). 2.1 EigenBeamformer För att kunna konstruera ett optimalt filter till varje beamformerkanal ska följande formel uppfyllas 2

ht Ih h opt = arg max h T R nn h Ovanstående ekvation innehåller korrelationsmatrisen R nn som byggs upp enligt följande formler En insignalvektor där k är kanalen och L är antalet sample (1) x k (n) = [ x k (n) x k (n 1)... x k (n L + 1) ] T (2) Från insignalerna x kan korrelationsmatrisen mellan två signaler defineras enligt R xix j = E { x i (n)x T j (n) } (3) Om R xx sedan expanderas fås följande uttryck x 0 (n)x T 0 (n) x 0 (n)x T 1 (n)... x 0 (n)x T K (n) x 1 (n)x T 0 (n) x 1 (n)x T 1 (n)... x 1 (n)x T K R xx = E (n)...... x K (n)x T 0 (n) x K (n)x T 1 (n)... x K (n)x T K (n) (4) Den slutgiltiga korrelationsmatrixen är uppbyggd av submatriser där de olika submatriserna är korrelationen mellan två kanaler och ses tydligt nedan R x0x 0 R x0x 1... R x0x K R x1x 0 R x1x 1... R x1x K R xx =..... (5). R xk x 0 R xk x 1... R xk x K Den slutgiltiga storleken av korrelationsmatrisen är K L K L där K är antalet kanaler och L är antalet korrelationssamples. Från ekvation 1 vill vi nu minimera uttrycket i nämnaren och detta får vi genom att lösa det generella eigenvektorproblemet enligt nedan R nn hλ = Ih R 1 nnih = hλ (6) Från ovanstående ekvation inses lätt att om vi löser ut den egenvektor med högst värde som uppfyller ekvationen får vi vårt optimala filter. 3 Konstruktion 3.1 Matlab - Teoretisk Eftersom signalbehandling oundvikligen innebär många beräkningar som kan vara svåra att felsöka och verifiera bestämde vi oss för att skapa en fungerande modell i matlab innan vi började programmera signalprocessorn. Som bas fanns till vårt förfogande data motsvarande signaler från fyra mikrofoner; en signalkälla och en störkälla samt en mixad källa innehållande kombinationen av de båda andra källorna. Vi beräknade vårt filter från den källa vi 3

ville släcka ut och applicerade det på den mixade signalen. För att undersöka resultaten tittade vi på spektrogram av utsignalen och lyssnade på den genom sound-funktionen i matlab. Modellen var till en början väldigt simpel och visade sig snabbt vara otillräcklig, under projektets gång upptäcktes många problem med modellen som behövde åtgärdas. Eftersom vi saknade någon referens var det svårt att verifiera modellens resultat även när vi var relativt säkra på att den var korrekt. Små och stora fel gav till synes bra resultat dels på grund av vår bristfälliga förmåga att testa och verifiera våra resultat. 3.2 Signalprocessor - Praktisk Implementationen är baserad på en signalprocessor ADSP-21262 med fyra kanaler input och stereo-ljud ut. Programmet som körs på signalprocessorn har en kalibreringsfas, en beräkningsfas och en filtreringsfas. I testutrustningen ingick även en 4-kanals mikrofon-array med förstärkare som användes för att generera insignalen och ett par vanliga hörlurar kopplade till utsignalen. Under kalibreringsfasen beräknas korrelationsmatriser för insignalerna löpande över kalibreringstiden, i vårt fall 10 sekunder. När kalibreringsfasen är över kan beräkningsfasen påbörjas. Där inverteras korrelationsmatrisen och det största egenvärdet med tillhörande egenvektor beräknas. Under filtreringsfasen delas den beräknade egenvektorn upp i lika många delar som vi har insignaler och appliceras som koefficienter i våra FIR-filter. Insignalerna filtreras var för sig och adderas sedan ihop för att skapa den färdiga utsignalen. Beräkningarna som processorn utför verifierades steg för steg med hjälp av modellen och manuellt inmatad data tills det att vi kunde mata in samma data i matlab och få ut precis samma resultat. Till en början hade vi bara två mikrofoner inkopplade men programmet testades även med fyra. 4 Resultat 4.1 Test av modellen Den teoretiska modellen producerar förväntat resultat med de statiska testdata vi har. Den källa som ska släckas ut försvinner från utsignalen medans den andra källan hörs tydligt. Analys av spektrogram visar också att de frekvenser som finns i den oönskade källan försvinner från utsignalen. 4.2 Test med signalprocessor Vid test med riktig hårdvara och mjukvara på signalprocessorn kan entoniga störkällor släckas ut helt men det finns ingenting som tyder på att filtret baseras på vinkeln mellan mikrofon-array och störkälla. Algoritmen verkar istället producera ett filter som eliminerar källan oavsett var den befinner sig. Eftersom den fysiska implementationen har verifierats mot modellen verkar det rimligt att anta att modellen också är felaktig, detta i sig är svårt att verifiera eftersom vi i modellen inte har någon möjlighet att direkt påverka källornas position. 4

4.3 Test med sinusformat filter Genom att undersöka filterkoefficienterna direkt kunde vi konstatera att en sinusformad kalibreringssignal ger ett sinusformat filter om och endast om vi (1) inte inverterar korrelationsmatrisen och således konstruerar en beamformer som förstärker en viss källa istället för att släcka ut den eller (2) regulariserar korrelationsmatrisen genom att addera en identitetsmatris multiplicerad med en faktor av storleksordningen 10 4. Ett sinusformat filter med lämplig förskjutning mellan kanalerna kan i våra tester släcka ut en störkälla i form av en matchande sinus-signal baserat på vinkeln mellan källan och mikrofonerna men systemet är extremt känsligt, området där störkällan är tyst är väldigt litet och minsta rörelse låter störsignalen ljuda igenom. 5 Diskussion Efter projektets slut hade vi inget signifikant resultat som vi kunde utläsa något ifrån. Under projektets gång hade vi ett par gånger resultat som skulle kunna liknas vid en beamformer, det vill säga att vi kunde släcka ut en signal efter att ha utfört kalibreringen på en specifik position ifrån mikrofonerna. Dessa resultat visade sig sedan vara felaktiga eftersom vid upprepade tester kunde inte detta återskapas. Vår teori är att när störsignalen flyttades närmare mikrofonerna blev störsignalen så pass stark att den visade sig på mikrofonerna efter att störsignalen hade flyttats. Eftersom vi i början av projektet inte fick något förväntat resultat från vår fullbandsbeamformer kunde vi inte verifiera något utan agerade i blindo och besannade våra förväntningar. Om detta projekt ska utföras på nytt med liknande upplägg skulle en rekommenderad test-uppsättning med specificerade avstånd ifrån mikrofoner och ljudnivår på dessa vara att föredra. Vi hade gärna sett ett bättre slutresulat men har trots detta lärt oss mycket. Under projektets gång har vi fått insyn i vad som är möjligt att utföra med digital signalbehandling och framför allt hur programmeringen av signalprocessorer går till. Referenser [1] http://en.wikipedia.org/wiki/beamforming [2] http://www.eetimes.com/document.asp?doc_id=1278838 5

A Matlabfunktioner A.1 snirbf.m 1 f u n c t i o n h = s n i r b f (S, N, L) 2 % SNIRBF SNIR beamformer f i l t e r design. 3 % h = SNIRBF (S, N, L) c a l c u l a t e s SNIR beamformer f i l t e r s. The s i g n a l 4 % m a t r i c e s S and N are the input s i g n a l s and n o i s e s i g n a l s o f the 5 % beamformer d e sign. Each column in S and N correspond to a s e n s o r 6 % s i g n a l, and the number o f columns i s the number o f s e n s o r s. The 7 % beamformer f i l t e r s are returned as columns o f h, where each f i l t e r i s L 8 % taps. 9 10 Rxx = stcorrmtx (N, L) ; 11 12 [ ReigV, ReigD ] = e i g ( inv (Rxx) ) ; 13 14 [maxd, indexd ] = max( diag ( ReigD ) ) ; 15 16 h = ReigV ( 1 : end, indexd ) ; 17 18 end A.2 stcorrmtx.m 1 f u n c t i o n Rxx = stcorrmtx (X, L) 2 % STCORRMTX Spatiotemporal c o r r e l a t i o n matrix. 3 % rxy = STCORRMTX (X, L) c a l c u l a t e s the s p a t i o t e m p o r a l c o r r e l a t i o n 4 % matrix o f the s i g n a l matrix X. Each column in X correspond to a s e n s o r 5 % s i g n a l, and the number o f columns i s the number o f s e n s o r s. The 6 % s p a t i o t e m p o r a l c o r r e l a t i o n matrix Rxx i s a stacked matrix o f 7 % c o r r e l a t i o n m a t r i c es o f L c o e f f i c i e n t s. 8 N = s i z e (X, 2) ; 9 10 Rxx = z e r o s (N L) ; 11 12 f o r i =1:N 13 f o r j =1:N 14 Xi = corrmtx (X( :, i ), L 1, c o v a r i a n c e ) ; 15 Xj = corrmtx (X( :, j ), L 1, c o v a r i a n c e ) ; 16 Rxixj = Xj Xi ; 6

17 Rxx(L ( i 1)+1:L i, L ( j 1)+1:L j ) = Rxixj ; 18 end 19 end 20 end A.3 eigenbeam.m 1 % EIGENBEAM eigenbeam f i l t e r used to t e s t with matlab f u n c t i o n sound. 2 % Extracts f i l t e r s from s n i r b f and f i l t e r s with s i g n a l X 3 4 f u n c t i o n out = eigenbeam (X, S, N, L) 5 6 h = s n i r b f (S, N, L) ; 7 8 9 outl1 = f i l t e r ( f l i p u d ( h ( 1 : L) ), 1, X( 1 : end, 1 ) ) ; 10 outl2 = f i l t e r ( f l i p u d ( h (L+1:L 2) ), 1, X( 1 : end, 2 ) ) ; 11 outl3 = f i l t e r ( f l i p u d ( h (L 2+1:L 3) ), 1, X( 1 : end, 3 ) ) ; 12 outl4 = f i l t e r ( f l i p u d ( h (L 3+1:L 4) ), 1, X( 1 : end, 4 ) ) ; 13 14 out = outl1 + outl2 + outl3 + outl4 ; 15 16 end 7