HiFiForum.nu
Home | Forums | Profile | Register | Active Topics | Links | Members | Articles | PM | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

Private Messages
You must log in to check messages
 All Forums
 HiFiForum.nu - Mångfaldens forum
 Bildreportage - Teknik & DIY
 Digitalt högtalarfilter i FPGA Ver 0.2

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

Screensize:
UserName:
Password:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert EmailInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
Bjäris Posted - 2018/12/09 : 22:38:51
Anledningar till ny version
Det finns ett antal punkter som gör att jag vill utveckla en ny version även om Ver 0.1 sitter i stereon här hemma och fungerar fint.
1. Ver 0.1 blir lite för varm, och drar en del ström. Det tycker inte känns bra ur miljösynpunkt.
2. Jag vill kunna ladda in nya filterkoeficienter på ett smidigt sätt utan att behöva synesetisera om koden för FPGAn.
3. Jag vill kunna utnyttja FPGAn fullt ut, och för det behövs en extern klocka med högre frekvens.
4. Det viktigaste. Vad ska jag annars göra nu när ver 0.1 är klar.

Uppdateringar till Ver 0.2
1. Ny kraftförsörjning som klarar inspänning mellan 10-20 V.
2. Ny analog del. Med DAC som drar mindre ström än Ver 0.1. Sen har jag tagit bort den analoga volymkontrollen, som visade sig brusa en del.
3. En Raspberry Pi har integrerats, för att ta över uppgifterna som en picoblaze processor i FPGA:n hade hand om. Raspberry Pi används även för att konfigurera FPGA kretsen vid uppstart.
4. Eftersom en Raspberry Pi har mera minne och processorkraft än picoblaze processor har, så har jag även lagt till möjlighet att ansluta en grafisk display.

Så här ser schemat ut just nu.
http://privat.bahnhof.se/wb468040/DigitalFilter2/Schematics.pdf

Och så ungefär så här har jag tänkt att mönsterkortet ska se ut.
25   L A T E S T    R E P L I E S    (Newest First)
nisse.p Posted - 2020/08/30 : 01:26:41
Intressant!
Jag lämnar dessa länkar här tror jag..
https://www.psiaudio.swiss/avaa-c20-active-bass-trap/
https://patentimages.storage.googleapis.com/97/68/54/f7bbe19cfb098d/GB2532796A.pdf
https://youtu.be/fw2Oj7QB0FQ
Bjäris 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 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 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.
Wheels 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.
HerrD 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.
Bjäris Posted - 2020/08/20 : 16:36:30
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.
Wheels Posted - 2020/08/20 : 15:40:07
Mycket imponerande bygge!
Vad har du för processor?
Bubbel 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.
Bjäris 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

HerrD Posted - 2020/04/12 : 23:19:05
Bra jobbat, kul att se framstegen!
Pac Posted - 2020/04/12 : 10:49:46
Kan bara instämma i Tomas kommentar, vilket projekt! Wow!
Bjäris 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?
Tomas J 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!
Bjäris 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.
Bjäris 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 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 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.
esl 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
Bjäris Posted - 2019/04/27 : 23:04:34
Esl: Vilken minidsp är det som du har tittat på?
Bjäris Posted - 2019/04/24 : 21:48:18
Det beror på om man ser konstruerandet eller skälva lyssnandet som hobbyn. Om man ser lyssnandet som hobbyn och arbetet för att komma dit som just arbete, då kanske man får kanske lägga på en 150 kr/timme. Men nu har jag ett till stor del självbyggt system som jag är ganska nöjd med, och ser själva konstruerandet som själva hobbyn.
HerrD Posted - 2019/04/24 : 19:06:56
quote:
Jag har hört någon säga att hifi är en dyr hobby, men jag lyckas lägga ner ganska många timmar per krona som jag behöver köpa utrustning för, så jag tycker den verkar ganska billig. :)


Och vad tror du att du kostar per timme?
Bjäris Posted - 2019/04/24 : 18:27:09
Nu är jag inte så jättebra påläst kring vad de nyare minidsp varianterna klarar. Tittade på deras hemsida och det finns en uppsjö med nya varianter.

När jag började med projektet så hade minidsp bara analoga ingångar, och jag vill ha så ren signalkedja som möjligt, därför har jag bara digitala ingångar på mitt kort.

Sen hade minidsp lite halvdåliga recensioner kring DA omvandlarna när jag tittade för några år sedan, och problem med brus mm. Nu har minidsp dsp enheter i olika prisklasser, så det borde ju inte vara något problem i de dyrare.

Jag tror att minidsp fortfarande byter samplingsfrekvens på ljudet och använder 48 eller 96 khz som samplingsfrekvens. Mitt använder den samplings frekvensen som insignalen har hela vägen till DA omvandlarna. Jag körde blindtest för några år sedan och testade om jag kunde höra skillnad på om en cd skiva var omsamplad till 48 khz och det kunde jag. Så en apple TV av gen 2 försämrar i alla fall ljudet när den byter samplingsfrekvens. Hur det är med minidsp vet jag inte, de kanske har bättre algoritmer.

Anledningen till att jag fortsätter med prorjektet är att jag vill veta hur min enhet fungerar och att jag vill ha signalkedjan så ren som möjligt. Om jag skulle satsa på ett annat system, så hade det nog blivit http://www.freedsp.cc/.

Det vore jättekul om du ville bygga ett digitalt filter enligt min ritning, men jag kan inte rekomendera dig att vänta. Det kommer nog ta några år innan jag är klar.
Jag har hört någon säga att hifi är en dyr hobby, men jag lyckas lägga ner ganska många timmar per krona som jag behöver köpa utrustning för, så jag tycker den verkar ganska billig. :)
esl Posted - 2019/04/23 : 01:04:12
Vad kan du göra bjäris som man inte kan med en minidsp?
För mig lutar det åt minidsp om jag inte hittar ett alternativ.
behöver 2*3 kanaler ut för aktiv delning samt möjlighet till FIR filter och delay.
Bjäris Posted - 2019/04/08 : 08:51:16
Nu har jag beställt plåten från ett annat ställe. Det blev en hundring dyrare på grund av frakten, men å andra sidan får jag dubbelt så mycket och i den tjockleken jag ville han från början.

HiFiForum.nu © HiFiForum.nu except: Logos and Trademarks are property of their owners, Comments are property of their posters Go To Top Of Page
Denna sida genererades på 0.28 sekunder. Snitz Forums 2000