Flerdimensionell diskret faltning
Inom signalbehandling avser multidimensionell diskret faltning den matematiska operationen mellan två funktioner f och g på ett n -dimensionellt gitter som producerar en tredje funktion, också av n -dimensioner. Flerdimensionell diskret faltning är den diskreta analogen till den flerdimensionella faltningen av funktioner i det euklidiska rummet. Det är också ett specialfall av faltning på grupper när gruppen är gruppen av n -tuplar av heltal.
Definition
Problembeskrivning och grunder
I likhet med det endimensionella fallet används en asterisk för att representera faltningsoperationen. Antalet dimensioner i den givna operationen återspeglas i antalet asterisker. Till exempel skulle en M -dimensionell faltning skrivas med M asterisker. Följande representerar en M -dimensionell faltning av diskreta signaler:
För signaler med diskret värde kan denna faltning beräknas direkt via följande:
Det resulterande utgångsområdet för stöd för en diskret flerdimensionell faltning kommer att bestämmas baserat på storleken och stödområdena för de två insignalerna.
Listade är flera egenskaper hos den tvådimensionella faltningsoperatorn. Observera att dessa även kan utökas för signaler med -dimensioner.
Kommutativ egenskap:
Associerad egendom:
Distributionsegendom:
Dessa egenskaper visas i användning i figuren nedan. Givet viss ingång som går in i ett filter med impulssvar och sedan ytterligare ett filter med impulssvar , utmatningen ges av . Antag att utsignalen från det första filtret ges av detta betyder att:
Vidare viks den mellanliggande funktionen sedan ihop med impulssvaret från det andra filtret, och sålunda kan utsignalen representeras av:
Med den associativa egenskapen kan detta skrivas om enligt följande:
vilket betyder att det ekvivalenta impulssvaret för ett kaskadsystem ges av:
En liknande analys kan göras på en uppsättning parallella system som illustreras nedan.
I det här fallet är det tydligt att:
Med hjälp av den distribuerande lagen, visas det att:
Detta innebär att i fallet med ett parallellt system tillhandahålls det ekvivalenta impulssvaret av:
De ekvivalenta impulssvaren i både kaskadsystem och parallella system kan generaliseras till system med -antal filter.
Motivation och tillämpningar
Konvolution i en dimension var en kraftfull upptäckt som gjorde det möjligt att enkelt jämföra ingången och utmatningen av ett linjärt skiftinvariant (LSI) system (se LTI-systemteori ) så länge som filtersystemets impulssvar var känt. Denna uppfattning överförs också till flerdimensionell faltning, eftersom att helt enkelt känna till impulssvaret för ett flerdimensionellt filter också möjliggör en direkt jämförelse mellan ingången och utsignalen från ett system. Detta är djupgående eftersom flera av de signaler som överförs i den digitala världen idag är av flera dimensioner inklusive bilder och videor. I likhet med den endimensionella faltningen tillåter den flerdimensionella faltningen beräkning av utsignalen från ett LSI-system för en given insignal.
Tänk till exempel på en bild som skickas över ett trådlöst nätverk som utsätts för elektrooptiskt brus. Möjliga bruskällor inkluderar fel i kanalöverföring, analog till digital-omvandlaren och bildsensorn. Vanligtvis skapar brus som orsakas av kanalen eller sensorn rumsligt oberoende, högfrekventa signalkomponenter som översätts till godtyckliga ljusa och mörka fläckar på den faktiska bilden. För att befria bilddatan från det högfrekventa spektralinnehållet kan det multipliceras med frekvenssvaret för ett lågpassfilter, vilket baserat på faltningssatsen är ekvivalent med att konvolvera signalen i tids-/spatialdomänen med lågpassfiltrets impulssvar. Flera impulssvar som gör det visas nedan.
Förutom att filtrera bort spektralt innehåll kan den flerdimensionella faltningen implementera kantdetektering och utjämning. Detta är återigen helt beroende av värdena för impulssvaret som används för att konvolvera med ingångsbilden. Typiska impulssvar för kantdetektering illustreras nedan.
Förutom bildbehandling kan flerdimensionell faltning implementeras för att möjliggöra en mängd andra applikationer. Eftersom filter är utbredda i digitala kommunikationssystem, stöds alla system som måste överföra flerdimensionell data av filtreringstekniker. Det används i realtidsvideobearbetning, neurala nätverksanalyser, digital geofysisk dataanalys och mycket mer.
En typisk förvrängning som uppstår under bild- och videoinspelning eller överföringstillämpningar är oskärpa som orsakas av en lågpassfiltreringsprocess. Den introducerade oskärpan kan modelleras med Gaussisk lågpassfiltrering.
Rad-kolumnupplösning med separerbara signaler
Separerbara signaler
En signal sägs vara separerbar om den kan skrivas som produkten av flera endimensionella signaler. Matematiskt uttrycks detta som följande:
Några lätt igenkännbara separerbara signaler inkluderar enhetsstegfunktionen och dirac-delta-impulsfunktionen.
(enhetsstegfunktion)
(dirac-delta impulsfunktion)
Konvolution är en linjär operation. Det följer sedan att den flerdimensionella faltningen av separerbara signaler kan uttryckas som produkten av många endimensionella faltningar. Tänk till exempel på fallet där x och h båda är separerbara funktioner.
Genom att tillämpa egenskaperna för separerbarhet kan detta sedan skrivas om som följande:
Det är då lätt att se att detta reduceras till produkten av endimensionella veck:
Denna slutsats kan sedan utökas till faltningen av två separerbara M -dimensionella signaler enligt följande:
Så när de två signalerna är separerbara kan den flerdimensionella faltningen beräknas genom att beräkna endimensionella faltningar.
Nedbrytning av rad-kolumn
Rad-kolumnmetoden kan tillämpas när en av signalerna i faltningen är separerbar. Metoden utnyttjar egenskaperna för separerbarhet för att uppnå en metod för att beräkna faltningen av två flerdimensionella signaler som är mer beräkningseffektiv än direkt beräkning av varje sampel (förutsatt att en av signalerna är separerbar). Följande visar det matematiska resonemanget bakom rad-kolumnnedbrytningsmetoden (vanligtvis är den separerbara signalen):
Värdet på kan nu återanvändas vid utvärdering av andra -värden med ett delat värde på :
Således kan den resulterande faltningen effektivt beräknas genom att först utföra faltningsoperationen på alla raderna av och sedan på alla av dess kolumner. Detta tillvägagångssätt kan optimeras ytterligare genom att ta hänsyn till hur minnet nås i en datorprocessor.
En processor kommer att ladda in signaldata som behövs för den givna operationen. För moderna processorer kommer data att laddas från minnet till processorns cache, som har snabbare åtkomsttider än minne. Själva cachen är uppdelad i rader. När en cache-linje laddas från minnet laddas flera dataoperander samtidigt. Tänk på det optimerade fallet där en rad med signaldata får plats helt och hållet i processorns cache. Denna speciella processor skulle kunna komma åt data radvis effektivt, men inte kolumnvis eftersom olika dataoperander i samma kolumn skulle ligga på olika cache-linjer. För att dra fördel av det sätt på vilket minnet nås, är det mer effektivt att transponera datamängden och sedan axla den radvis i stället för att försöka komma åt den kolumnvis. Algoritmen blir då:
- Separera den separerbara tvådimensionella signalen två endimensionella signaler och
- Utför radvis faltning på de horisontella komponenterna av signalen med för att erhålla
- Transponera de vertikala komponenterna i signalen som härrör från steg 2.
- Utför radvis faltning på de transponerade vertikala komponenterna av för att få önskad utdata
Beräkningshastighet från rad-kolumnupplösning
Undersök fallet där en bild av storleken passeras genom ett separerbart filter med storleken . Bilden i sig är inte separerbar. Om resultatet beräknas med den direkta faltningsmetoden utan att utnyttja filtrets separerbarhet, kommer detta att kräva ungefär multiplikationer och additioner. Om filtrets separerbarhet beaktas kan filtreringen utföras i två steg. Det första steget kommer att ha multiplikationer och additioner och det andra steget kommer att ha vilket resulterar i totalt eller multiplikationer och additioner. En jämförelse av beräkningskomplexiteten mellan direkt och separerbar faltning ges i följande bild:
Cirkulär faltning av diskreta flerdimensionella signaler
Förutsättningen bakom den cirkulära faltningsmetoden på flerdimensionella signaler är att utveckla en relation mellan faltningssatsen och den diskreta Fouriertransformen (DFT) som kan användas för att beräkna faltningen mellan två diskreta signaler med ändlig utsträckning.
Konvolutionssats i flera dimensioner
För endimensionella signaler säger faltningssatsen att Fouriertransformen av faltningen mellan två signaler är lika med produkten av Fouriertransformerna av dessa två signaler. Således är faltning i tidsdomänen lika med multiplikation i frekvensdomänen. Matematiskt uttrycks denna princip via följande:
När du hanterar signaler av flera dimensioner:
Cirkulär faltningsmetod
Motivet bakom att använda den cirkulära faltningsmetoden är att den är baserad på DFT. Utgångspunkten bakom cirkulär faltning är att ta DFT:erna för ingångssignalerna, multiplicera dem med varandra och sedan ta den inversa DFT. Försiktighet måste iakttas så att en tillräckligt stor DFT används så att aliasing inte uppstår. DFT är numeriskt beräkningsbar när den hanterar signaler av ändlig omfattning. En fördel med detta tillvägagångssätt är att eftersom det kräver att DFT och invers DFT tas, är det möjligt att använda effektiva algoritmer såsom Fast Fourier-transformen (FFT). Cirkulär faltning kan också beräknas i tids-/rumsdomänen och inte bara i frekvensdomänen.
Välja DFT-storlek för att undvika aliasing
Betrakta följande fall där två ändliga signaler x och h tas. För båda signalerna finns en motsvarande DFT enligt följande:
och
Stödområdet för är och och stödområdet för är och .
Den linjära faltningen av dessa två signaler skulle ges som:
för
Resultatet blir att kommer att vara en rumsligt aliasversion av den linjära faltningen resultat . Detta kan uttryckas som följande:
Sedan, för att undvika alias mellan de rumsligt aliasade replikerna, måste och väljas för att uppfylla följande villkor:
Om dessa villkor är uppfyllda kommer resultaten av den cirkulära faltningen att vara lika med den linjära faltningen (med huvudperioden för den cirkulära faltningen som stödområdet). Det är:
för
Sammanfattning av proceduren med DFT
Konvolutionssatsen och cirkulär faltning kan alltså användas på följande sätt för att uppnå ett resultat som är lika med att utföra den linjära faltningen:
- Välj och för att uppfylla och
- Nollställ signalerna och så att de båda är i storlek
- Beräkna DFT för både och
- Multiplicera resultaten av DFT för att erhålla
- Resultatet av IDFT för kommer då att vara lika med resultatet av att utföra linjär faltning på de två signalerna
Överlappa och lägg till
En annan metod för att utföra flerdimensionell faltning är överlappnings- och tilläggsmetoden . Denna metod hjälper till att minska beräkningskomplexiteten som ofta förknippas med flerdimensionella faltningar på grund av de stora mängderna data som finns i moderna digitala system. För korthetens skull används det tvådimensionella fallet som ett exempel, men samma begrepp kan utökas till flera dimensioner.
Betrakta en tvådimensionell faltning med en direkt beräkning:
Om man antar att utsignalen har N icke-nollkoefficienter, och impulssvaret har M icke-nollsampel, skulle denna direkta beräkning behöva MN-multipliker och MN - 1 adderar för att beräkna. Om man istället använder en FFT måste filtrets frekvenssvar och Fouriertransformeringen av ingången lagras i minnet. Enorma mängder beräkningar och överdriven användning av minneslagringsutrymme utgör ett problem när fler dimensioner läggs till. Det är här metoden för överlappning och add-convolution kommer in.
Nedbrytning till mindre faltningsblock
Istället för att utföra faltning av informationsblocken i sin helhet, kan informationen delas upp i mindre block med dimensioner x vilket resulterar i mindre FFTs, mindre beräkningskomplexitet och mindre lagringsbehov. Detta kan uttryckas matematiskt på följande sätt:
där representerar x insignalen , som är en summering av blocksegment, med och .
För att producera utsignalen utförs en tvådimensionell faltning:
Att ersätta resulterar i följande:
Denna faltning tillför mer komplexitet än att göra en direkt faltning; Men eftersom den är integrerad med en FFT snabb faltning, fungerar overlap-add snabbare och är en mer minneseffektiv metod, vilket gör den praktisk för stora uppsättningar av flerdimensionell data.
Fördelning av proceduren
Låt vara av storlek :
- Bryt ingången i icke-överlappande block med dimensioner .
- Nollknapp så att den har dimensioner ( ) ( ).
- Använd DFT för att få .
- För varje ingångsblock:
- Nollpunkten ska ha dimensionerna ( ) ( ).
- Ta diskret Fouriertransform av varje block för att ge .
- Multiplicera för att få .
- Ta invers diskret Fouriertransform av för att få .
- Hitta genom att överlappa och lägga till den sista exempel på med den första exempel på för att få resultatet.
Bildmässigt arbetssätt
För att visualisera överlappnings-lägg-metoden tydligare undersöker följande illustrationer metoden grafiskt. Antag att ingången har ett kvadratiskt områdesstöd med längden N i både vertikala och horisontella riktningar som visas i figuren nedan. Den bryts sedan upp i fyra mindre segment på ett sådant sätt att den nu är sammansatt av fyra mindre rutor. Varje block av den samlade signalen har dimensioner .
Sedan viks varje komponent ihop med filtrets impulssvar. Observera att en fördel för en implementering som denna kan visualiseras här eftersom var och en av dessa faltningar kan parallelliseras på en dator, så länge som datorn har tillräckligt med minne och resurser för att lagra och beräkna samtidigt.
I figuren nedan representerar den första grafen till vänster faltningen som motsvarar komponenten av ingången med motsvarande impulssvar . Till höger om det viks sedan ingången med impulssvaret .
Samma process görs för de andra två respektive ingångarna, och de ackumuleras tillsammans för att bilda faltningen. Detta är avbildat till vänster.
Antag att filterimpulssvaret ett stödområde på i båda dimensionerna. Detta innebär att varje faltning konvolverar signaler med dimensioner i båda och riktningar, vilket leder till överlappning (markerad i blått) eftersom längden på varje enskild faltning motsvarar:
=
åt båda hållen. Den ljusare blå delen korrelerar med överlappningen mellan två intilliggande veck, medan den mörkare blå delen korrelerar med överlappning mellan alla fyra veck. Alla dessa överlappande delar adderas tillsammans utöver faltningarna för att bilda den kombinerade faltningen .
Överlappa och spara
Överlappnings- och sparametoden, precis som metoden överlappning och lägg till, används också för att minska den beräkningskomplexitet som är förknippad med diskreta tidsfaltningar. Denna metod, i kombination med FFT, tillåter att enorma mängder data kan filtreras genom ett digitalt system samtidigt som det nödvändiga minnesutrymmet som används för beräkningar på massiva datamatriser minimeras.
Jämförelse för att överlappa och lägga till
Metoden för överlappning och spara är mycket lik överlappning och lägger till metoder med några få anmärkningsvärda undantag. Överlappnings-add-metoden involverar en linjär faltning av diskreta tidssignaler, medan överlappnings-sparametoden involverar principen om cirkulär faltning. Dessutom använder överlappnings- och sparmetoden endast en engångsnollutfyllnad av impulssvaret, medan överlappnings-adderingsmetoden involverar en nollutfyllnad för varje faltning på varje ingångskomponent. Istället för att använda nollutfyllnad för att förhindra tidsdomänaliasing som dess motsvarighet för overlap-add, kasserar overlap-save helt enkelt alla aliaspunkter och sparar föregående data i ett block för att kopieras till faltningen för nästa block.
I en dimension är skillnaderna mellan prestanda och lagringsmått mellan de två metoderna minimala. I det flerdimensionella faltningsfallet föredras emellertid överlappningssparametoden framför överlappnings-add-metoden vad gäller hastighet och lagringsförmåga. Precis som i överlappnings- och tilläggsfallet åberopar proceduren det tvådimensionella fallet men kan enkelt utökas till alla flerdimensionella procedurer.
Fördelning av proceduren
Låt vara av storlek :
- Infoga kolumner och rader med nollor i början av insignalen i båda dimensionerna.
- Dela upp motsvarande signal i överlappande segment av dimensioner ( ) ( ) där varje tvådimensionellt block kommer att överlappa med .
- Nollknapp så att den har dimensioner ( ) ( ).
- Använd DFT för att få .
- För varje ingångsblock:
- Ta diskret Fouriertransform av varje block för att ge .
- Multiplicera för att få .
- Ta invers diskret Fouriertransform av för att få .
- Bli av med den första för varje utgångsblock .
- Hitta genom att bifoga den sista sampel för varje utgångsblock .
Helixtransformationen
I likhet med rad-kolumnupplösning, beräknar helixtransformen den flerdimensionella faltningen genom att inkorporera endimensionella faltningsegenskaper och operatorer. Istället för att använda separerbarheten av signaler, mappar den emellertid det kartesiska koordinatutrymmet till ett spiralformigt koordinatutrymme, vilket möjliggör en avbildning från ett flerdimensionellt utrymme till ett endimensionellt utrymme.
Flerdimensionell faltning med endimensionell faltningsmetoder
För att förstå helixtransformationen är det användbart att först förstå hur en multidimensionell faltning kan brytas ner till en endimensionell faltning. Antag att de två signalerna som ska konvolveras är och , vilket resulterar i en utgång . Detta uttrycks på följande sätt:
Därefter skapas två matriser som nollställer varje ingång i båda dimensionerna så att varje ingång har ekvivalenta dimensioner, dvs.
{
där var och en av inmatningsmatriserna nu har dimensioner . Det är sedan möjligt att implementera kolumnvis lexikografisk ordning för att konvertera de modifierade matriserna till vektorer, och . För att minimera antalet oviktiga sampel i varje vektor, trunkeras varje vektor efter det sista samplet i de ursprungliga matriserna respektive . Med tanke på detta ges längden på vektor och
+
+
Längden på faltningen av dessa två vektorer, , kan härledas och visas vara:
Denna vektorlängd är ekvivalent med dimensionerna för den ursprungliga matrisutgången vilket gör konvertering tillbaka till en matris till en direkt transformation. Således omvandlas vektorn tillbaka till matrisform, vilket producerar utsignalen från den tvådimensionella diskreta faltningen.
Filtrering på en helix
När man arbetar på ett tvådimensionellt kartesiskt nät, kommer en Fourier-transformation längs endera axlarna att resultera i att det tvådimensionella planet blir en cylinder när slutet av varje kolumn eller rad fäster vid dess respektive topp och bildar en cylinder. Filtrering på en spiral uppför sig på ett liknande sätt, förutom i detta fall fäster botten av varje kolumn till toppen av nästa kolumn, vilket resulterar i ett spiralformat nät. Detta illustreras nedan. De mörka brickorna representerar filterkoefficienterna.
Om denna spiralformade struktur sedan skivas och lindas av till en endimensionell remsa, kommer samma filterkoefficienter på det 2-d kartesiska planet att matcha med samma indata, vilket resulterar i ett ekvivalent filtreringsschema. Detta säkerställer att en tvådimensionell faltning kommer att kunna utföras av en endimensionell faltningsoperator eftersom 2D-filtret har lindats av till ett 1D-filter med luckor på nollor som separerar filterkoefficienterna.
Förutsatt att ett tvådimensionellt lågpassfilter användes, såsom:
0 | -1 | 0 |
-1 | 4 | -1 |
0 | -1 | 0 |
Sedan, när det tvådimensionella utrymmet omvandlats till en helix, skulle det endimensionella filtret se ut som följer:
Lägg märke till i det endimensionella filtret att det inte finns några inledande nollor som visas i den endimensionella filtreringsremsan efter att ha rullats upp. Hela den endimensionella remsan kunde ha rullats ihop med; dock är det mindre beräkningsmässigt dyrt att helt enkelt ignorera de inledande nollorna. Dessutom kommer inget av dessa nollvärden på baksidan att behöva lagras i minnet, vilket bevarar värdefulla minnesresurser.
Ansökningar
Helixtransformationer för att implementera rekursiva filter via faltning används inom olika områden av signalbehandling. Även om Fourier-analys av frekvensdomän är effektiv när systemen är stationära, med konstanta koefficienter och periodiskt samplade data, blir det svårare i instabila system. Helixtransformen möjliggör tredimensionella migreringsprocesser efter stack som kan bearbeta data för tredimensionella variationer i hastighet. Dessutom kan den användas för att hjälpa till med problemet med implicit tredimensionell vågfältsextrapolering. Andra tillämpningar inkluderar användbara algoritmer för seismisk dataregularisering, prediktionsfelfilter och brusdämpning i geofysiska digitala system.
Gaussisk konvolution
En tillämpning av multidimensionell faltning som används inom signal- och bildbehandling är Gaussisk faltning. Detta syftar på att konvolvera en insignal med den Gaussiska fördelningsfunktionen.
Gaussfördelningen samplade vid diskreta värden i en dimension ges av följande (förutsatt att :
Approximation med FIR-filter
Gaussisk faltning kan effektivt approximeras via implementering av ett FIR-filter ( Finite Impulse Response) . Filtret kommer att utformas med trunkerade versioner av Gaussian. För ett tvådimensionellt filter skulle överföringsfunktionen för ett sådant filter definieras som följande:
var
Att välja lägre värden för och kommer att resultera i att utföra färre beräkningar, men kommer att ge en mindre exakt approximation medan att välja högre värden kommer att ge en mer exakt approximation, men kommer att kräva ett större antal beräkningar.
Approximation med boxfilter
En annan metod för att approximera Gaussisk faltning är via rekursiva passeringar genom ett boxfilter. För att approximera endimensionell faltning definieras detta filter som följande:
Vanligtvis utförs rekursiva pass 3, 4 eller 5 gånger för att erhålla en exakt approximation. En föreslagen metod för att beräkna r ges sedan som följande:
där K är antalet rekursiva passager genom filtret.
Sedan, eftersom den Gaussiska fördelningen är separerbar över olika dimensioner, följer det att rekursiva passeringar genom endimensionella filter (som isolerar varje dimension separat) kommer således att ge en approximation av den flerdimensionella Gaussiska faltningen. Det vill säga, M- dimensionell Gaussisk faltning skulle kunna approximeras via rekursiva passeringar genom följande endimensionella filter:
Ansökningar
Gaussiska faltningar används flitigt vid signal- och bildbehandling. Till exempel kan bildsuddighet åstadkommas med Gaussisk faltning där styr styrkan på oskärpan. Högre värden skulle alltså motsvara ett mer suddigt slutresultat. Det används också ofta i datorseendeapplikationer som SIFT-funktionsdetektering ( Scale-invariant feature transform) .