Author |
Topic |
Bjäris
Member
257 Posts |
Posted - 2019/04/27 : 23:04:34
|
Esl: Vilken minidsp är det som du har tittat på? |
|
|
esl
Upptäckare! Mästar-Harry 2007, 200.000-klubben
2578 Posts |
Posted - 2019/05/12 : 11:04:05
|
miniDSP 4*10 och sedan SHD varianten, fast den senare har bara 4 analoga utgångar. Jag behöver 6 utgångar helst 8 |
Innovare necesse est. Det är ännu häftigare utan baffel. |
|
|
Bjäris
Member
257 Posts |
Posted - 2019/07/07 : 13:54:39
|
Projektet rör sig sakta framåt, och jag har fått ljud igenom kortet. Nästa del som jag har börjat jobba med är delningsfiltret. Jag har tänkt att interfacet ska se ut ungefär så här.
Eventuellt kanske jag ska lägga till en graf som visar summan av filtren, och en graf som visar fasen, men frågan är om det blir bra eftersom resultatet beror på elementen och placeringen. Det kanske är bättre att inte visa mera än det jag visar nu, så får man mäta upp resten.
|
|
|
Bjäris
Member
257 Posts |
Posted - 2020/04/09 : 22:13:21
|
Hej Jag har varit riktigt dålig på att uppdatera här på sidan. Jag har kommit fram till att det är roligare att bygga än att dokumentera, framför allt när det är dåligt med tid, men jag ska bli bättre på detta. Kretskortet är färdigbyggt, och funkar fint efter några små fixar.
Sen har jag monterat allt på en aluminiumplatta. Så att det det ska bli mera hanterbart.
Funktionsmässigt i mjukvaran är det FIR filtret som är kvar. Sen blir det till att leta buggar, optimera, och lägga till fler funktioner. |
|
|
Bjäris
Member
257 Posts |
Posted - 2020/04/10 : 16:33:49
|
Här kommer ett blockschema över signalvägen genom FPGAn.
Först går signalen till FIR filtret utan att att passera någon form av omsampling. FIR filtret kompenserar för amplitudskillnader i högtalaren och rummet, samt fasförskjutningar. Sedan går signalen till IIR filtren, som används för att dela upp signalen till de olika elementen. Sist går signalen till delay kretsen som ser till att signalen ligger i fas mellan elementen vid delningsfrekvensen. Där efter synkas samplen till sampelklockan och bitklockan från spdif mottagaren innan de går vidare till DA omvandlaren. På så vis behöver inte signalen samplas om eller samplas upp/ned. Utan signalvägen blir så ren som möjligt. För att det ska fungera med olika samplingsfrekvenser, så kommer varje filter få en ny uppsättning konstanter, så fort samplingsfrekvensen ändras. |
|
|
Bjäris
Member
257 Posts |
Posted - 2020/04/11 : 16:10:05
|
Den delen som kommer ta upp den absolut största delen av FPGAns prestanda är FIR filtret. Det finns block med färdiga moduler i de flesta FPGAer för att öka prestandan. I den här FPGAn finns dsp block (DSP48A1) och ram minnes block (bram). Varje dsp block har en multiplikator som jag kör i 200MHz. Det betyder att den klarar av 512 multiplikationer per kanal för samplingsfrekvensen 192 kHz och det finns 16 st multiplikatorer. Om man konfigurerar bram blocken för 32 bitars ord. Så får man 32 st med 512 ord. 7st bram är redan använda i konstruktionen. 4 st till delay kretsen, och 3st till IIR filtret. Till varje multiplikator behövs 3st bram. En för konstanterna, en för höger kanal, och en för vänster kanal. Detta betyder att bram blir en bristvara, och att jag bara kommer kunna använda 8st multiplikatorer.
Filtret fungerar så att varje konstant multipliceras med motsvarande sampelvärde. Sedan summeras värdena från alla multiplikationerna och skickas ut från filtret. Till sist skickas det älsta sampelvärdet i varje bram vidare till nästa bram. |
|
|
Tomas J
fd _T_
1550 Posts |
Posted - 2020/04/11 : 19:45:11
|
Jag är mållös och verkligen imponerad! Jag förstår väldigt lite av det du skriver men följer ändå med stort intresse!
Korten i tidigare poster ser väldigt seriösa ut, hoppas du går i mål! |
Ett forum dör utan tillströmning av medlemmar, Agera! |
|
|
Bjäris
Member
257 Posts |
Posted - 2020/04/12 : 10:44:04
|
Hej Tomas, är det något du inte förstår, så får vi ju förtydliga lite. Från vilken nivå ska vi ta det? Vet du vad en FPGA eller DSP är? FIR och IIR filter? |
|
|
Pac
200.000-klubben
22004 Posts |
Posted - 2020/04/12 : 10:49:46
|
Kan bara instämma i Tomas kommentar, vilket projekt! Wow! |
// Per Adelsson, pac(a)hififorum.nu, Admin och ägare HiFiForum.nu // HiFiForum.nu's regler, Artikelregister
|
|
|
HerrD
200.000-klubben
1749 Posts |
Posted - 2020/04/12 : 23:19:05
|
Bra jobbat, kul att se framstegen! |
The first principle is that you must not fool yourself and you are the easiest person to fool.
Richard P. Feynman |
|
|
Bjäris
Member
257 Posts |
Posted - 2020/08/19 : 20:27:19
|
Hej på er igen. Nu har det gått lite tid, och det har rört sig sakta framåt. Här nedanför kan ni se programmet som jag använder för att skapa filen med alla konstanter som FPGAn behöver för att filtrera ljudet. De raka sträcken över grafen kan ni bortse ifrån, men vi har ett lågpassfilter på utgång 1 (blå) och ett högpassfilter på utgång 2 (brandgul). Det bruna är kompenseringen för högtalaren och rummet. (Jag tror att lite akustik fix av min hobbyhörna/hemarbetsplats blir ett kommande projekt.) Bilden under är min mätning genom filtret med hjälp av REW. SPDIF signal ut från ljudkortet, och sedan den annaloga signalen från filteret till ljudkortets ingång. Om man lägger i hopp de två graferna i den nedre bilden, så påminner väl resultatet ganska mycket om den gruna i den övre bilden. Vilket betyder att det FUNKAR! :-D
|
|
|
Bubbel
Eojeud-VALS, 100.000-klubben
6797 Posts |
Posted - 2020/08/20 : 08:38:57
|
Jag fattar ingenting mer än att det är ett delningsfilter men jag ger dig tumme upp för det är imponerande. |
Min stereo: Hemmabygge, hemmabygge, hemmabygge, hemmabygge, köpe cdspelare, hemmabygge. |
|
|
Wheels
Semester på egen begäran
821 Posts |
Posted - 2020/08/20 : 15:40:07
|
Mycket imponerande bygge! Vad har du för processor? |
|
|
Bjäris
Member
257 Posts |
|
HerrD
200.000-klubben
1749 Posts |
Posted - 2020/08/20 : 19:59:29
|
Snyggt jobbat! Imponerad över genomförandet. Bravo! Skulle också vilja ha ork och tid till liknande projekt. Kodar hela dagarna och har provat att även göra det på kvällar samt helger och det blir snabbt överdos för min del. |
The first principle is that you must not fool yourself and you are the easiest person to fool.
Richard P. Feynman |
|
|
Wheels
Semester på egen begäran
821 Posts |
Posted - 2020/08/21 : 20:41:39
|
quote: Tack för de uppmuntrande orden. Filtreringen och ljudhanteringen sker i en FPGA. https://www.digikey.se/product-detail/sv/xilinx-inc/XC6SLX9-3TQG144C/122-1747-ND/2339929 Sen har jag en raspberry pi 3 som används för att konfigurera FPGAn och ta hand om display mm. Fördelen med det är att jag kan uppdatera mjukvaran via nätverket på ett smidigt sätt.
Varför just den? Aldrig hört talas om mest ADAU chippen som miniDSP använder man märker i DSP. |
|
|
Bjäris
Member
257 Posts |
Posted - 2020/08/22 : 23:53:57
|
Hej. Det är två helt olika typer av kretsar. Det ena är en DSP, och den jag har använt är en FPGA. En FPGA består av programmerbar logik, som man t.ex. kan programmera en DSP eller annan typ av processor i om man vill. FPGAn ger mig mer flexibilitet men också mer jobb än vad DSPn hade gjort.
Två av skälen till att jag valde att arbeta med FPGA är: -Jag har jobbat med dem förut, och har lite erfarenhet från skolan och hobbyprojekt. -När jag tittar på kapslarna som inte har några ben på undersidan, så får jag ut mer beräkningskraft ur FPGAn. En snabb jämförelse ger: 3 200 mot 172 miljoner multiplikationer / sekund. Sen utnyttjar mitt program bara ca hälften av beräkningskapaciteten i FPGAn just nu, men det får bli en senare fråga.
|
Edited by - Bjäris on 2020/08/23 10:11:25 |
|
|
nisse.p
Member
92 Posts |
Posted - 2020/08/27 : 22:04:53
|
quote: En snabb jämförelse ger: 3 200 mot 172 miljoner multiplikationer / sekund
Teknik tillräckligt avancerat är oskiljaktig från magi..
Men all denna beräkning per sekund, innebär det att det är i princip ingen latency?
Skulle du kunna montera en mikrofon på ingången och ut kommer en filtrerad, fasvänd signal? Vilket kan användas för en aktiv basfälla, noice canceling för frekvenser med lång våglängd. Eller kan den användas för aktiv feedback på bas och mellanregistret med mikrofon monterad i/på lådan som jämför mot en referenssignal och tillför aktiv bromsning av konutslag som överskrider referensen? |
|
|
Bjäris
Member
257 Posts |
Posted - 2020/08/29 : 12:12:48
|
Latencyn på kortet beror framför allt på vad man har för filterfunktion. En DSP brukar ha en buffer på ingången och en på utgången, som bidrar till latency. Så som jag har gjort beräknas värdet sampel för sampel. Nu har jag inte räknat efter hur många sampel jag fördröjer signalen i FPGAn, men så länge man inte filtrerar kan det kanske vara 10 sampels fördröjning, vilket borde vara det samma som att flytta högtalaren ca 8 cm om man kör med 44100 kHz samplingsfrekvens.
Jag har ingen analog ingång på det här kortet, men att använda en FPGA för att breräkna detta tror jag kan vara rätt väg att gå om man vill göra det digitalt. Det kanske blir ett kommande projekt. Just nu känner jag att det vore skönt att bara ha en AD omvandlare som ingång. Nu har jag fullt upp med att ta reda på hur man skriver en overlay till raspberry pi, så att jag kan få ut I2S signal med raspberry pin som slav. Allt känns just nu bara onödigt komplicerat, men det kanske klarnar.
Det finns ju en del som har gjort servokopplingar till subwoofrar, Där kanske man skulle kunna använda ett liknande kort som till basfällan. Till mellanregistret är jag lite mera tveksam, men det kan man väl titta vidare på. Har lite dålig koll på vad det är för latency i AD och DA omvandlarna. |
|
|
nisse.p
Member
92 Posts |
|
Topic |
|