Sunday 29 October 2017

Glidande Medelvärde Impuls Respons


Frekvensresponsen för det löpande medelfiltret. Frekvensresponsen hos ett LTI-system är DTFS för impulsresponsen. Impulssvaret hos ett L-provrörande medelvärde är. Eftersom det rörliga medelfiltret är FIR, minskar frekvensresponsen till den ändliga sum. We kan använda den mycket användbara identiteten. för att skriva frekvensresponsen som. som vi har låt aej N 0 och ML 1 Vi kan vara intresserade av storleken på denna funktion för att bestämma vilka frekvenser som kommer igenom filtret obetydliga och Som dämpas Nedan är en plot av storleken på denna funktion för L 4 röd, 8 grön och 16 blå. Den horisontella axeln sträcker sig från noll till radianer per prov. Notera att frekvensresponsen i alla tre fall har en lågpassskarakteristik A konstant komponent nollfrekvens i ingångskortet genom filtret obetydligt Vissa högre frekvenser, såsom 2, elimineras helt av filtret. Om avsiktet var att designa ett lågpassfilter har vi n ot gjort mycket bra Några av de högre frekvenserna dämpas endast med en faktor på ca 1 10 för 16-punktets glidande medelvärde eller 1 3 för det fyrapunktsrörande genomsnittsvärdet. Vi kan göra mycket bättre än det. Ovanstående plot skapades av följande Matlab code. omega 0 pi 400 pi H4 1 4 1-exp - i omega 4 1-exp - i omega H8 1 8 1-exp - i omega 8 1-exp - i omega H16 1 16 1-exp - i omega 16 1-exp - i omega-plot omega, abs H4-abs H8 abs H16-axel 0, pi, 0, 1.Copyright 2000- - University of California, Berkeley. Assume den första beställningen IIR Filter. Yn alpha xn 1 - alpha yn - 1.Hur kan jag välja parametern alpha st IIR approximerar så bra som möjligt FIR som är det aritmetiska medelvärdet av de sista k-proven. Var n i k, infty, vilket betyder inmatningen för IIR kan vara längre än k och ändå vill jag ha den bästa approximationen av medelvärdet av de senaste k-inmatningarna. Jag vet att IIR har oändligt impulsrespons, därför söker jag efter den bästa approximationen jag är glad för analytisk lösning om det är för eller. Hur kan dessa optimeringsproblem lösas med endast 1: a order IIR. asked 6 okt 11 på 13 15.Det måste följa yn alpha xn 1 - alpha yn - 1 precis Phonon 6 okt 11 på 13 32.This Är bunden att bli en väldigt dålig approximation. Kan du ha råd med något mer än en första order IIR leftaroundabout 6 okt 11 på 13 42. Du kanske vill redigera din fråga så att du inte använder dig för att innebära två olika saker, t. ex. Andra visade ekvationen kunde läsa zn frac xn cdots frac x nk 1, och du kanske vill säga vad exakt är ditt kriterium så bra som möjligt, till exempel vill du att du ska vara så liten som möjligt för alla n, eller vert yn - zn vert 2 för att vara så liten som möjligt för alla n Dilip Sarwate 6 okt 11 Vid 13 45. niaren Jag vet att det här är ett gammalt inlägg, så om du kan komma ihåg hur är din funktion f härledd, har jag kodat en liknande sak men med de komplexa överföringsfunktionerna för FIR H1 och IIR H2 och gör sedan summa abs H1 - H2 2 Jag har jämfört detta med din summa fj, men får olika resulterande utdata. Tyckte jag skulle fråga innan du plungade igenom matematiken Dom 7 juni 13 på 13 47. OK, låt oss försöka härleda den bästa början yn alpha xn 1 - alpha yn - 1 Alfa xn 1 - alfa alfa x n-1 1 - alfa 2 yn - 2 alfa xn 1 - alfa alfa x n-1 1 - alfa 2 alfa x n-2 1 - alfa 3 yn - 3 ände så att koefficienten x Nm är alfa 1-alfa m. Nästa steg är att ta derivat och ekvate till noll. Det ser ut som problemet med det som jag har sett på en plot av den härledda J för K 1000 och alfa från 0 till 1. det är felaktigt, för det bästa svaret är alfa 0. Jag tror att det är ett misstag här. Sättet att det ska vara enligt mina beräkningar är att använda följande kod på MATLAB ger något likvärdigt men annorlunda. minimum. Så låt oss anta att vi egentligen bara bryr oss om approximationen över stödlängden för FIR-filtret. I så fall är optimeringsproblemet bara J2 alfa summa alpha 1-alfa m-frac 2.Plotting J2 alpha för olika värden av K versus alpha resulterar i datumet i diagrammen och tabellen nedan. För K 8 alfa 0 1533333 För K 16 alfa 0 08 För K 24 alfa 0 0533333 För K 32 alfa 0 04 För K 40 alfa 0 0333333 För K 48 alfa 0 0266667 För K 56 alfa 0 0233333 För K 64 alfa 0 02 För K 72 alfa 0 0166667.Den röda streckade linjerna är 1 K och de gröna linjerna är alfa, värdet av alfa som minimerar J2 alfa vald från tt alfa 0 01 1 3. Det är en bra diskussion om detta problem i Embedded Signal Processing med Micro Signal Archite cture grovt mellan sidorna 63 och 69 På sidan 63 innehåller den en avledning av det exakta rekursiva glidande medelfilteret som niaren gav i sitt svar. För bekvämligheten med hänsyn till följande diskussion motsvarar den följande skillnadsekvation. Den approximation som sätter Filtrera i formuläret du angav kräver förutsatt att x ca y, eftersom och jag citerar från pg 68 y är genomsnittsvärdet av xn-samplar. Denna approximation tillåter oss att förenkla föregående skillnadsekvation enligt följande. Satsning alfa, vi anländer till din ursprungliga form, Y alfa xn 1- alfa y, vilket visar att koefficienten du vill ha med avseende på denna approximation är exakt 1 över där N är antalet prov. Är denna approximation bäst i viss mån Det är verkligen elegant Här är hur storlekssvaret jämförs med 44 1 kHz för N 3, och när N ökar till 10 approximation i blått. Som Peter s svar föreslår kan approximering av ett FIR-filter med ett rekursivt filter vara problematisk under en Minsta kvadrera norm En omfattande diskussion om hur man löser detta problem i allmänhet finns i JOSs avhandling, Tekniker för digital filterdesign och systemidentifikation med applikation på violinen. Han förespråkar användningen av Hankel-norm men i fall där fasen svaret spelar ingen roll, han täcker även Kopec s Method som kan fungera bra i detta fall och använder en L 2 norm. En bred överblick över teknikerna i avhandlingen finns här. De kan ge andra intressanta approximations. FIR-filter, IIR-filter , Och den linjära konstant-koefficientskillnadsekvationen. Kausala rörliga medelvärden för FIR-filter. Vi diskuterade system där varje prov av utmatningen är en viktad summa av vissa av proverna av ingången. Låt oss ta ett orsakssviktat summasystem, Där orsakssamband innebär att ett givet utmatningsprov bara beror på det aktuella ingångsprovet och andra ingångar tidigare i sekvensen. Varken linjära system i allmänhet, eller inte specifikt impulsresponsystem, behöver Kausalitet är dock lämplig för en typ av analys som vi snart kommer att undersöka. Om vi ​​symboliserar ingångarna som värden för en vektor x och utgångarna som motsvarande värden på en vektor y kan ett sådant system skrivas som . Där b-värdena är vikter applicerade på nuvarande och tidigare insamlingsprover för att få det aktuella utgångsprovet Vi kan tänka på uttrycket som en ekvation, med lika sign-signifikans lika eller som en procedurinstruktion med lika sign-signifikansuppgift . Låt oss skriva uttrycket för varje utmatningsprov som en MATLAB-slinga av uppdragsutlåtanden, där x är en N-längdvektor av ingångsprover och b är en M-längdvektorvikt För att hantera specialfallet vid Börja, vi kommer att bädda in x i en längre vektor xhat vars första M-1 prover är noll. Vi skriver den viktade summeringen för varje yn som en inre produkt och kommer att göra några manipuleringar av ingångarna som omvänd b till det här ändamålet. Denna typ av system är ofta c Förklarade ett glidande medelfilter av uppenbara skäl. Från våra tidigare diskussioner borde det vara uppenbart att ett sådant system är linjärt och skift-invariant. Det skulle givetvis vara mycket snabbare att använda MATLAB convolution-funktionen conv i stället för vår mafilt. I stället Att överväga att de första M-1-proverna av ingången är noll, kan vi anse att de är samma som de sista M-1-proverna. Detta är detsamma som att behandla ingången som periodisk. Vi ska använda cmafilt som namnet på funktionen , en liten modifikation av den tidigare mafiltfunktionen Vid bestämning av ett systems impulsrespons är det vanligtvis ingen skillnad mellan dessa två eftersom alla icke-initiala prover av ingången är noll. Eftersom ett sådant system är linjärt och skift - Invariant vet vi att dess effekt på vilken sinusoid som helst kommer att vara bara att skala och flytta den. Här är det viktigt att vi använder den cirkulära versionen. Den cirkulärkonvolverade versionen skiftas och skalas lite medan versionen med vanlig konvolvering snedvrids vid Start. Låt oss se hur exakt skalan och skiftningen är med hjälp av en fft. Både ingång och utgång har endast amplituden vid frekvenserna 1 och -1, vilket är som det borde vara, eftersom ingången var en sinusformad och systemet var linjärt. värdena är större med ett förhållande av 10 6251 8 1 3281 Detta är förstärkningen av systemet. Vad gäller fasen Vi behöver bara se var amplituden är noll. Ingången har en fas av pi 2, som vi begärde The utgångsfasen skiftas med ytterligare 1 0594 med motsatt tecken på den negativa frekvensen eller omkring 1 6 av en cykel till höger, som vi kan se på grafen. Nu ska vi försöka en sinusoid med samma frekvens 1, men istället Av amplitud 1 och fas pi 2, låt s försöka amplitud 1 5 och fas 0.Vi vet att endast frekvens 1 och -1 kommer att ha icke-noll amplitud, så låt oss bara titta på dem. Ge amplitudförhållandet 15 9377 12 0000 är 1 3281 - och för fas. it skiftas igen med 1 0594. Om dessa exempel är typiska kan vi förutsäga effekten av vårt system Impulsrespons 1 2 3 4 5 på någon sinusoid med frekvens 1 - amplituden ökas med en faktor 1 3281 och den positiva frekvensfasen kommer att flyttas med 1 0594. Vi kunde fortsätta att beräkna effekten av detta system på Sinusoider av andra frekvenser med samma metoder Men det finns ett mycket enklare sätt, och en som fastställer den allmänna punkten Eftersom cirkulär konvolvering i tidsdomänen betyder multiplikation i frekvensdomänen följer from. it. med andra ord, DFT av Impulsresponsen är förhållandet mellan DFT-utgången och DFT-ingången i ingången. I denna relation är DFT-koefficienterna komplexa tal. Eftersom abs c1 c2 abs c1 abs c2 för alla komplexa tal c1, c2, berättar denna ekvation oss att Amplitudspektrumet för impulsreaktionen kommer alltid att vara förhållandet mellan amplitudspektrumet för utgången och ingångens. I fallet med fasspektrumet, vinkeln c1 c2 vinkeln c1-vinkel c2 för alla c1, c2 med det förbehållet att faser som skiljer sig med n 2 pi a Re anses lika. Därför kommer fasspänningsfas spektret alltid att vara skillnaden mellan fasspektra av utgången och ingången med vilka korrigeringar med 2 pi som behövs för att hålla resultatet mellan - pi och pi. We kan se faseffekterna Tydligare om vi avvecklar representationen av fas, det vill säga om vi lägger till flera multiplar med 2 pi efter behov för att minimera de hopp som produceras av den periodiska karaktären av vinkelfunktionen. Även om amplituden och fasen brukar användas för grafisk och jämn tabulär Presentation, eftersom de är ett intuitivt sätt att tänka på effekterna av ett system på de olika frekvenskomponenterna för dess ingång, är de komplexa Fourier-koefficienterna mer användbara algebraiskt, eftersom de tillåter det enkla uttrycket av förhållandet. Den allmänna inställningen vi just har Sett kommer att fungera med godtyckliga filter av den skissade typen, där varje utmatningsprov är en viktad summa av en uppsättning ingångsprover. Som tidigare nämnts är dessa Ofta kallade Finite Impulse Response-filter, eftersom impulssvaret är av ändlig storlek eller ibland rörliga medelfilter. Vi kan bestämma frekvensresponsegenskaperna för ett sådant filter från FFT av dess impulsrespons, och vi kan också designa nya filter med önskat Egenskaper av IFFT från en specifikation av frekvensresponsen. Utrikegressiva IIR-filter. Det skulle vara litet att ha namn för FIR-filter om det inte fanns några andra slags s att skilja dem från, och så de som har studerat pragmatik kommer inte att bli förvånad över att Lära sig att det faktiskt finns en annan stor typ av linjärt tidsinvesterande filter. Dessa filter kallas ibland rekursiva eftersom värdet av tidigare utdata liksom tidigare ingångar är viktiga, även om algoritmerna generellt skrivs med hjälp av iterativa konstruktioner. De kallas också Infinite Impulse Response IIR-filter, eftersom deras svar på impulser i allmänhet fortsätter för alltid. De kallas också ibland Autoregressiva filter, eftersom koefficienterna kan anses som resultat av att göra linjär regression för att uttrycka signalvärden som en funktion av tidigare signalvärden. Förhållandet mellan FIR och IIR-filter kan ses tydligt i en linjär konstant-koefficientskillnadsekvation, i E. setting av en viktad summa av utgångar som är lika med en viktad summa av ingångar Detta är som den ekvation som vi gav tidigare för orsakssystemet FIR, förutom att förutom den viktiga summan av ingångar, har vi också en viktad summa av utgångar. Om vi ​​vill tänka på detta som ett förfarande för att generera produktionsprover behöver vi omordna ekvationen för att få ett uttryck för det aktuella utgångsprovet yn. Adopting conventionen att en 1 1 t. ex. genom att skala andra as och bs, kan vi Bli av med 1 a 1 term. ynb 1 xnb 2 x n-1 b Nb 1 x n-nb - a 2 y n-1 - - en Na 1 y n-na. Om alla andra än 1 är noll reduceras detta till vår gamla vän, det kausal FIR-filtret. Detta är det allmänna fallet med ett kausal LTI-filter, Och implementeras av MATLAB-funktionsfiltret. Låt oss se på fallet där b-koefficienterna andra än b 1 är noll istället för FIR-fallet, där a är noll. I detta fall beräknas det aktuella utgångsprovet yn som ett Viktad kombination av det aktuella ingångsprovet xn och de tidigare utgångsproverna y n-1, y n-2 osv. För att få en uppfattning om vad som händer med sådana filter, låt oss börja med fallet där. Det är det aktuella utgångsprovet är summan av det aktuella ingångsprovet och hälften av det föregående utgångsprovet. Vi ska ta en ingångsimpuls genom några steg, en åt gången. Det ska vara klart vid denna punkt att vi enkelt kan skriva ett uttryck för nth-utgången Provvärdet är det bara. Om MATLAB räknat från 0, skulle det vara helt enkelt 5 n. Eftersom det vi beräknar är systemets impulsrespons, har vi visat att ett impulsrespons faktiskt kan ha oändligt många icke-nollprover. För att genomföra denna triviala första - filter i MATLAB, vi kan använda filter Samtalet kommer att se ut så här. och resultatet är. Är den här verksamheten verkligen fortfarande linjär. Vi kan se på detta empiriskt. För en mer allmän inställning, överväga värdet av ett utsignalsprov y N. By successiv substitution kan vi skriva detta som. Detta är precis som vår gamla vän, convolution-sum form av ett FIR-filter, med impulsresponsen som tillhandahålls av uttrycket 5k och längden av impulsresponsen är oändlig Således samma Argument som vi brukade visa att FIR-filter var linjära kommer nu att tillämpas här. Så länge kan det tyckas som mycket väsen om inte mycket Vad är denna hela undersökningsskala bra för. Vi ska svara på denna fråga i steg, som börjar med en Exempel. Det är inte en Stor överraskning att vi kan beräkna en samplad exponentiell genom rekursiv multiplikation Låt oss titta på ett rekursivt filter som gör något mindre uppenbart Den här gången kommer vi att göra det till ett andra orderfilter så att samtalet till filtret kommer att vara av formen. ställa in den andra utmatningskoefficienten a2 till -2 cos 2pi 40 och den tredje utgångskoefficienten a3 till 1 och titta på impulsresponset. Inte mycket användbart som ett filter, men det genererar en samplad sinusvåg från en impuls Med tre multiplicera tillägg per prov För att förstå hur och varför det gör det, och hur rekursiva filter kan utformas och analyseras i det mer allmänna fallet, måste vi gå tillbaka och titta på några andra egenskaper hos komplexa tal, på väg att förstå z-transformen.

No comments:

Post a Comment