Author |
Topic |
Pac
200.000-klubben
22004 Posts |
Posted - 2006/08/10 : 23:15:53
|
Here we go, Nu så! Jag visste väl att det lurkade lite mer än vad som framkommit hitintills. Tack Jesper!!! Denna skall jag läsa några gånger för att smälta.
Du har inga bra länkar att dela med dig av?
|
// Per Adelsson, pac(a)hififorum.nu, Admin och ägare HiFiForum.nu // HiFiForum.nu's regler, Artikelregister
|
|
|
Pac
200.000-klubben
22004 Posts |
Posted - 2006/08/10 : 23:22:32
|
quote: Nu förstår jag ingenting......vadå måste?
Jo, jag tror att konsekvenserna av Jesper's resonemang är att man även i tid bör tillföra möjliga interpolationspunkter. Gör man det möjliggör dessa interpolationspunkter mellan samplena att den ökade kvantiseringen kan användas utan att tillföra distorsion.
Är det korrekt Jesper eller gör jag en tankevurpa igen?
Hmmm... som sagt detta skall studeras närmare. Klart intressant.
|
// Per Adelsson, pac(a)hififorum.nu, Admin och ägare HiFiForum.nu // HiFiForum.nu's regler, Artikelregister
|
|
|
Pac
200.000-klubben
22004 Posts |
Posted - 2006/08/10 : 23:31:43
|
hmmmm... en annan konsekvens av det där borde vara att översamplingen måste ske som multippel av orginal samplingsfrekvens. |
// Per Adelsson, pac(a)hififorum.nu, Admin och ägare HiFiForum.nu // HiFiForum.nu's regler, Artikelregister
|
|
|
esl
Upptäckare! Mästar-Harry 2007, 200.000-klubben
2578 Posts |
Posted - 2006/08/11 : 00:13:57
|
En intressant aspekt vore om man istället för en "rak linje" mellan två samplingspunkter kunde göra en kurvanpassning, alltå en icke rak linje mellan två punkter. Denna linje skulle räknas ut genom att studera informationen före och efter varje sample. Antar att det var det som Denon hade alpha processorn till. Är det det som Pioneer kallade legato link?
Well well... OT jag njuter ibland av SACD och DVD Audio.. gött mos! Hoppas fler hakar på tåget nu när det finns billiga spelaare och mycket skivor.. /esl |
Innovare necesse est. Det är ännu häftigare utan baffel. |
|
|
ohmega
Member
4651 Posts |
Posted - 2006/08/11 : 00:22:30
|
quote: Jo, jag tror att konsekvenserna av Jesper's resonemang är att man även i tid bör tillföra möjliga interpolationspunkter. Gör man det möjliggör dessa interpolationspunkter mellan samplena att den ökade kvantiseringen kan användas utan att tillföra distorsion.
OK...om man använder sig av interpolation så är det ju förstårligt....men om man bara vill utöka bitantalet för att kunna dämpa signalen (eller rättare sagt - reglera utnivån)så är väl detta inte nödvändigt?
Så vad jag menar är ju att...det beror ju på vad som är syftet med transformationen.
Edit: Röd text |
Medlem i klubbstugan SVAVEL - "Vi kör så det ryker" Mitt Hifi-intresse är ingen prylhobby - det är en materialsport :) Anläggning: DVD-Denver + Naim Nait2 + Epos ES11 OCH FT-1600 MkII + 200 CD-skivor |
Edited by - ohmega on 2006/08/11 03:08:38 |
|
|
MatsT
100.000-klubben
2457 Posts |
Posted - 2006/08/11 : 07:12:01
|
Kurvanpassning med rät linje fungerar nog precis lika bra som andra anpassningar av högre ordning i det här fallet. Gissningen av samples kommer alltid att vara fel men eftersom översampling krävs så hamnar extra-samples högt i frekvens och kan filtreras. Viktigare för det ljudande resultatet verkar vara vilken typ av filter som används. |
|
|
Jesper_Nilsson
Member
494 Posts |
Posted - 2006/08/11 : 07:48:45
|
Helt riktigt ohmega, jag var nog lite otydlig. Man behöver inte översampla för att kunna reglera nivån, räcker då med att lägga till decimaler och shifta ner. Men för att kunna transfomrmera signalen dvs, gissa nya värden, måste man ha nya samples och behöver därför översampla. Jag ville poängtera att bara för att man har fler decimalers nogrannhet så är har man inte ändrat något så länge man inte översamplar och interpolerar.
Nollpaddning och filtrering ger inte en rät linje mellan ursprungssamplena, det ger en kurvapassning.
Man kan översampla med en icke multippel av samplingsfrekvensen. Det man då gör är att först översampla och sen undersampla, det är vad som sker i omvandling mellan 44.1 till 48khz.
Jag ska nog rita en bild under dagen om jag hinner, säger ju mer än tusen ord, och i detta fallet tror jag det stämmer..
/Jesper |
|
|
Björn-Ola
Trädgårdsmästarn, 100.000-klubben
7949 Posts |
Posted - 2006/08/11 : 08:12:49
|
Tack, Jesper.
Vad vinner man på att upsampla istället för vanlig oversampling? |
"Innan man är riktigt säker är man ofta tvärsäker" |
Edited by - Björn-Ola on 2006/08/11 08:13:53 |
|
|
Jax
Member
667 Posts |
Posted - 2006/08/11 : 10:04:24
|
Ett korrekt översamplingsfilter har en sinc (sin(x)/x) som impulssvar och interpolationen sker i form av addition av impulssvaren till inkommande sampel. Denna sinc är inte helt perfekt då den är begränsad till den numeriska precisionen i filtret men det går att hålla distortionen på grund av detta under brusnivån från den ursprungliga signalen. Det är därför man skickar in nollsampel mellan de riktiga. Man behöver inte lägga till nollor till inkommande sampel, de extra bitarna får man ur de multiplikationer och additioner man gör i filtret. (exempel, multiplikation av två 8-bit tal ger ett 16-bit resultat).
Att sinc är den korrekta kurvan att anpassa till ges av Shannons samplingteorem. Se länken nedan som är en bra beskrivning av samplingteoremet för de som är matematiskt bevandrade.
http://en.wikipedia.org/wiki/Sampling_theorem |
/Janne
Rörfreak och snål smålänning i blodet.
|
|
|
Jesper_Nilsson
Member
494 Posts |
Posted - 2006/08/11 : 11:27:12
|
quote: Man behöver inte lägga till nollor till inkommande sampel, de extra bitarna får man ur de multiplikationer och additioner man gör i filtret. (exempel, multiplikation av två 8-bit tal ger ett 16-bit resultat).
Helt riktigt att multiplikation av två 8 bitars tal ger 16 bitars resultat. Tar du sen resultatet av två 8 bitars multiplikatoner (som blivit 16 bitar) och multiplicerara med varandra får man 32 bitars resultat och så vidare. Ett digitalt filter av hög branthet genomför en hel drös multiplikationer. Man måset trunkera nånstans. Man brukar ha ett accumulatorregister som är en del större än det ordlängd man vill ha. Man brukar sprida bitarna så man får en del extra decimaler (för att undvika avrundningsfel) och lite extra heltalsbitar oxå så man kan tillåta att talet blir större än 1 momentant i beräkningarna. Det är med detta jag förenklat beskriver att man adderer bitar. När beräkningen är klar ser man till att decimalpunkten ligger rätt och trunkerar till den längd man vill ha, ex 24bitar.
/Jesper |
|
|
MatsT
100.000-klubben
2457 Posts |
Posted - 2006/08/11 : 19:47:54
|
quote: Att sinc är den korrekta kurvan att anpassa till ges av Shannons samplingteorem.
Gäller bara under vissa förutsättningar (inga frekvenskomponenter över halva samplingsfrekvensen i den samplade signalen) annars fås aliasing-fenomen.
Jag hinner inte gräva ned mig så mycket i texten som jax länkade till just nu men den var helt klart intressant.
|
|
|
Jax
Member
667 Posts |
Posted - 2006/08/11 : 20:23:40
|
quote: Gäller bara under vissa förutsättningar (inga frekvenskomponenter över halva samplingsfrekvensen i den samplade signalen) annars fås aliasing-fenomen.
Givetvis, förhoppningsvis har alla komponenter på och över fs/2 filtrerats bort i AD-omvandlingen på produktionssidan.
|
/Janne
Rörfreak och snål smålänning i blodet.
|
|
|
Jesper_Nilsson
Member
494 Posts |
Posted - 2006/08/15 : 09:13:00
|
Vet inte om ämnet är uttömt men jag sa att jag skulle lägga upp lite bilder på vad som händer. Satt en stund och pillade i paint men det belv bara rörigt så jag gjorde några grafer i Matlab. Ni ska se dessa grafer som illustration av vad som händer och inget annat, jag har inte optimerat några filter eller nåt.
Först en bild på en fiktiv insignal.
Samma signal samplad.
Matlab darar raka sträck mellan punkterna. I vårat fall är det en trappfunktion, ni får tänka er det.
Samma signal fast översamplad 10ggr, 10st nollsample emellan.
Denna signal innehåller mycket HF. Jag börjar med att filtrera bort detta med ett "idealt" LP filter som har pulsvaret av en sinc. Pullsvaret för filtret..
Resulterande filtrerade signal ser ut såhär.
Här ser ni den kurvanpassning som interpolationsfiltret ger. Ni ser oxå transientdistoprtionen i början och slutet av signalen.
Låt oss simulera ett analog filter, här ett 8:e ordningens butterworth LP. Dess pulsvar ser ut såhär.
Skillnaden är här att detta filter är kausalt, det ringer bara efter pulsen.
Filtrerar jag med denna får jag detta resultat.
Vilket är ganska likt det jag fick tidigare, i princip bara skillnad i transientdirstortion i början och slutet av signalen. Sinc-filtret är oxå faslinjärt, det är inte butterworth-filtret.
Notera att jag här har implementerat detta LP butterworth-filter digitalt i Matlab men att man i verkligheten kan implementera det analogt efter D/A omvandlingen. Implementeras det analogt behövs ingen översampling. Notera oxå att den ringning som båda fitrerna skapar ligger högt i frekvens.
För att knyta ihop detta med vad tråden handlar om kan vi se två fall av D/A omvandling.
1. Insignalen är 16bitar/44.1khz. Det översamplas och filtreras digitalt. I filterberäkningarna används minst 24bit noggranhet och vi får då en signal som liknar det sinc-filtrerade ovan, reprecenterat med 24bit/"någon högre samplingsfrekens". Denna digitala signal D/A omvandlas sedan och filtreras snällt analogt.
2. Samma insignal, 16bit/44.1khz. Denna D/A omvandlas direkt och rekonstruktionsfiltreras på analogta sidan för att få i princip samma signal som i fall 1. Skillnaden är i pulsvar och fasgång, inte i upplösning.
Slutsatserna av detta är att vi uppnår ingen ökad upplsning genom att uppsampla/översampla digitalt. Men vi uppnår en enklare implementation av D/A omvandlingen.
/Jesper
|
|
|
Topic |
|