Filterkoefficienter...

Hur funkar tekniken bakom bra hifi?

Moderator: Redaktörer

Användarvisningsbild
Svante
Audiot!
 
Inlägg: 37552
Blev medlem: 2004-03-03
Ort: oakustisk

Filterkoefficienter...

Inläggav Svante » 2010-04-14 18:16

Här kommer en hitech-fråga, som ändå är lotech...

När man bygger ett andra ordningens filter digitalt så har det filterkoefficienter a0-a2 och b0-b2. Jag behöver explicita funktioner av typen a0=f(f0,Q,fs), a1=g(f0,Q,fs) osv...

Jag har de här i mina program, men jag börjar misstänka att de är fel. Jag har letat mig blå på nätet efter dem, men hittar bara hur man ska ta fram dem och inte resultatet.

Man kan ju göra det antingen med bilinjärtransform eller impulsinvarians, och egentligen vill jag ha båda.

Någon?
Så länge har jag längat efter att loudness war skulle vara över. Nu börjar jag tro att vi faktiskt är där. Kruxet är att vi förlorade.

Användarvisningsbild
MagnusÖstberg
 
Inlägg: 30032
Blev medlem: 2009-03-30

Inläggav MagnusÖstberg » 2010-04-14 18:19

En fråga för lilltroll?
Jag saknar dig.
Medlem på www.faktiskt.se sedan 2006

Användarvisningsbild
Svante
Audiot!
 
Inlägg: 37552
Blev medlem: 2004-03-03
Ort: oakustisk

Inläggav Svante » 2010-04-14 18:24

MagnusÖstberg skrev:En fråga för lilltroll?


Ja, fast han kommer bara att slänga ur sig Matlabkod. Eller länkar till Matlabs manualer. :D
Så länge har jag längat efter att loudness war skulle vara över. Nu börjar jag tro att vi faktiskt är där. Kruxet är att vi förlorade.

Användarvisningsbild
MagnusÖstberg
 
Inlägg: 30032
Blev medlem: 2009-03-30

Inläggav MagnusÖstberg » 2010-04-14 18:45

:D
Jag saknar dig.
Medlem på www.faktiskt.se sedan 2006

Användarvisningsbild
kodapa
 
Inlägg: 3675
Blev medlem: 2009-02-11
Ort: Ulricehamn

Inläggav kodapa » 2010-04-14 19:00

Svante skrev:Ja, fast han kommer bara att slänga ur sig Matlabkod.

Det kan väl inte bli bättre? :)

Användarvisningsbild
Svante
Audiot!
 
Inlägg: 37552
Blev medlem: 2004-03-03
Ort: oakustisk

Inläggav Svante » 2010-04-14 20:07

kodapa skrev:
Svante skrev:Ja, fast han kommer bara att slänga ur sig Matlabkod.

Det kan väl inte bli bättre? :)


Jo, Delphikod.
Så länge har jag längat efter att loudness war skulle vara över. Nu börjar jag tro att vi faktiskt är där. Kruxet är att vi förlorade.

Användarvisningsbild
E
 
Inlägg: 22739
Blev medlem: 2005-05-02
Ort: <hist.> ä. vikt

Inläggav E » 2010-04-15 00:40

Varför misstänker du att de du har är fel? Är det något i MasVis som
inte står rätt till?

Mvh E*
Faktiskt.io – ingenting obekvämt!

Användarvisningsbild
Svante
Audiot!
 
Inlägg: 37552
Blev medlem: 2004-03-03
Ort: oakustisk

Inläggav Svante » 2010-04-15 09:37

E skrev:Varför misstänker du att de du har är fel? Är det något i MasVis som
inte står rätt till?

Mvh E*


Nä. Jag håller på med en ljudeditor som ska kunna göra filtrering med bla 2:a ordningens filter. Ett sånt med Q=0,5 ska inte ringa, men det gör mitt.
Så länge har jag längat efter att loudness war skulle vara över. Nu börjar jag tro att vi faktiskt är där. Kruxet är att vi förlorade.

mike34
 
Inlägg: 2857
Blev medlem: 2004-10-22

Inläggav mike34 » 2010-04-15 11:22

Tja eftersom jag vet precis vad det är frågan om nu så måste jag lägga mig i.
SKOJAR !!!!

Lilltroll har ju lösningen så klart. Men filter har jag i kod hehe för xcore i XC :D. lite cryptiska metoder som lämnar dubbla returvärden. men det går väl att hacka om.

Men ringningen , tja, avrundningsfel eller overflow i variablerna ?
Mycket jag inte förstår har jag fått se sen jag satte snurr på de där filtrena.
Va ?!?! Flyger dom ÖVER solen? - Christer Olsson

Användarvisningsbild
E
 
Inlägg: 22739
Blev medlem: 2005-05-02
Ort: <hist.> ä. vikt

Inläggav E » 2010-04-15 11:43

Svante skrev:Nä.

(Puh!)
Faktiskt.io – ingenting obekvämt!

Användarvisningsbild
kodapa
 
Inlägg: 3675
Blev medlem: 2009-02-11
Ort: Ulricehamn

Inläggav kodapa » 2010-04-15 17:00

Svante skrev:
kodapa skrev:
Svante skrev:Ja, fast han kommer bara att slänga ur sig Matlabkod.

Det kan väl inte bli bättre? :)


Jo, Delphikod.


:)

-Martin-
 
Inlägg: 2258
Blev medlem: 2007-03-28
Ort: OBS! Ej söder

Inläggav -Martin- » 2010-04-15 21:20

Svante, ring Herr Fnozkberg vettja.
:)

Användarvisningsbild
faulhund
 
Inlägg: 326
Blev medlem: 2009-03-08
Ort: Stockholm

Re: Filterkoefficienter...

Inläggav faulhund » 2010-04-29 21:20

Svante skrev:Här kommer en hitech-fråga, som ändå är lotech...
Ja, man gnuggar sig i ögonen, och vet inte om man läst rätt ... när självaste Svante frågar om något så grundläggande ...

Om det är LP-filter av andra ordningen är formel 7.6.5 i Fnozkberg svaret, och för högre ordningar krävs att man har partialbråksuppdelningen. (Så bra att jag har den inom räckhåll nu, sedan den varit nedpackad i 20 år!)
Svante skrev:Man kan ju göra det antingen med bilinjärtransform eller impulsinvarians, och egentligen vill jag ha båda.
Båda samtidigt går ju inte, men du kanske menar att du vill implementera båda som alternativa val. För båda metoderna är ju fullständiga och entydiga, så i annat fall blir problemet överbestämt. En lösning för impulsinvarians skulle kanske kunna vara att (med hjälp av optimering då) approximera ett impulssvar (eventuellt givet i godtyckliga samplingpunkter i godtyckligt antal) med en ARMA-funktion av givet gradtal.

Vad har du kommit fram till?
Om det är någon här som jag inte har förolämpat i kväll, så ber jag denne om ursäkt. (J. Brahms)

Användarvisningsbild
Svante
Audiot!
 
Inlägg: 37552
Blev medlem: 2004-03-03
Ort: oakustisk

Inläggav Svante » 2010-04-29 23:55

Alltså, det är ju så enkelt, men jag får inte till det. Det handlar om andra ordningens filter, alltså ett polpar och ett nollställepar.

Hur går jag från Q-värden och brytfrekvenser (för pol- och nollställeparen) (vid en given samplingsfrekvens) till filterkoefficienterna a0-2 och b0-2.

Fnosken, ja, de kurserna genomsyrades av en rätt skön humor. Jag har för mig att jag bläddrade i formelsamlingen, men att jag inte hittade det jag ville, åtminstone inte explicit.

Jag är förvånad att jag inte hittar den där övergången någonstans, det måste ju vara vardagsmat för alla som bygger filter.

Faulhund: hur ser 7.6.5 ut? Jag har inte samlingen här (om det nu är saamma som jag hade).
Så länge har jag längat efter att loudness war skulle vara över. Nu börjar jag tro att vi faktiskt är där. Kruxet är att vi förlorade.

Användarvisningsbild
n3mmr
 
Inlägg: 7541
Blev medlem: 2005-01-05
Ort: Varande: semester efter semester efter semester

Inläggav n3mmr » 2010-04-30 10:30

Svante skrev:Alltså, det är ju så enkelt, men jag får inte till det. Det handlar om andra ordningens filter, alltså ett polpar och ett nollställepar.

Hur går jag från Q-värden och brytfrekvenser (för pol- och nollställeparen) (vid en given samplingsfrekvens) till filterkoefficienterna a0-2 och b0-2.

Fnosken, ja, de kurserna genomsyrades av en rätt skön humor. Jag har för mig att jag bläddrade i formelsamlingen, men att jag inte hittade det jag ville, åtminstone inte explicit.

Jag är förvånad att jag inte hittar den där övergången någonstans, det måste ju vara vardagsmat för alla som bygger filter.

Faulhund: hur ser 7.6.5 ut? Jag har inte samlingen här (om det nu är saamma som jag hade).


Berätta gärna vem Hr Fnozkberg är, eller vad Fnosken är för kurs eller nåt!
Om du inte förstår vad författaren skriver kan det vara så att du behöver bli bättre på att läsa.
Självbevarelsedriften säger mig att jag bör uttrycka mig försiktigare på ett sånt här forum.

Användarvisningsbild
Tore
 
Inlägg: 74
Blev medlem: 2007-11-30

Inläggav Tore » 2010-04-30 14:17


Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2011-05-05 08:13

Mja, jag har en del i ANSI C kod oxå numera.

Men den första delen är "lätt", hur man trollar om från Q, fs och Gain, till a[] samt b[] i den tidskont. världen. Sen får du röja på med Z transform.

Titta mitt på denna sida
http://en.wikipedia.org/wiki/Q_factor

Bild

PS. Jag sitter mest och imp filter i asm, med omvänd pipelineordning just nu. Dvs att det sista pipelinesteget gör fetch, och det första pipelinesteget gör instruction decode. Längre bort än så kommer man inte från MATLAB!
Varför gör man så då.
Jo En branch kan då avsluta med en fetch på nästa inst. i sista steget, och i nästa operation görs då decode på denna till att börja med, utan att man förlorat en enda cykel pga branch eller missar i en branch prediction. Det medför att man kan exekvera minst 4 HW trådar parallellt utan att de någonsin krigar om L1 cache acess ... vilket lätt inses typ DS

Tiderna förändras, nu sitter Svante i något äckligt högnivå, medan jag skriver ren ASM.
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

-Martin-
 
Inlägg: 2258
Blev medlem: 2007-03-28
Ort: OBS! Ej söder

Inläggav -Martin- » 2011-05-11 09:41

n3mmr skrev:Berätta gärna vem Hr Fnozkberg är, eller vad Fnosken är för kurs eller nåt!

"Fnozkberg" (eller egentligen Lars F Nozkberg om rätt ska vara rätt) var under den preudonym som Kåre Mossberg (som ledde filterkursen/kurserna på KTH) skrev sin litteratur och som användes under kurserna. Studentikååst så det står härliga till... :)
"Fnosk" är väl egentligen samma som (normerad) frekvens fast i "samplingsdomänen". Fnosk = 1 motsvarar väl gränsen på 1:a Nyqvist om jag inte minns fel(?)

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2011-05-12 19:50

Jo, men när Mossberg försvann inkl T3 blev S3 så fick inte FNOSKen vara kvar.
Numera motsvarar fs == 1 normerat
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *


Återgå till Teknikforum


Vilka är online

Användare som besöker denna kategori: Bing [Bot] och 17 gäster