Förstår inte formel (Matte problem)
Postat: 25 januari 2023, 22:22:33
Jag fipplar lite med en audio codec och så här långt har allt funkat bra.
Chippet innehåller en parametrisk equlizer och för att ställa den måste man beräkna sex koefficienter.
Det finns ett PC program som man kan knappa in faktorerna Centre Frequency, Gain och Q, för att få ut koefficienterna.
Jag vill göra Frequency, Gain och Q ställbara och då kan man inte använda PC programmet (om man inte vill ha ett antal fasta värden) utan måste använda ett antal formler.
PC Programmet är dock bra att verifiera emot så man får till det.
Mitt problem är att det skiter sig redan på K-värdet (Tio upphöjt i 3dB/20dB) i min (antagligen förenklade värld) så blir det ett decimaltal, men inte enligt PC programmet.
Det måste antingen vara ett fundamentalt fel eller så fattar jag allt fel.
Målet är att få fram alla koefficienterna med hjälp av C-kod, men jag få få beräkningarna att bli rätt innan jag fixar det.
Nedan är ett screenshoot ut PC programmet.
Det baseras på en Samplingsfrekvens på 44100 Hz
Ni ser reulterande koefficienter (I hexadecimala värden)
Jag kan inte begripa hur beskrivna formler kan leda fram till dessa värden.
Databladet är hyggligt "opedagogiskt" då man i beskrivningen använder begreppet "Bandwidth", Tabellen använder Q-värde (vilket är ett normalt begrepp i samband med parametriska EQ), och formeln pratar om cutoff (vilket inte nämns i texten).
Jag är helt fast, då det inte finns något om detta på nätet, mer än en ALSA Driver för LINUX, men jag ser inte beräknings formeln i den koden utan bara hur den läser in koefficienterna.
Chippet innehåller en parametrisk equlizer och för att ställa den måste man beräkna sex koefficienter.
Det finns ett PC program som man kan knappa in faktorerna Centre Frequency, Gain och Q, för att få ut koefficienterna.
Jag vill göra Frequency, Gain och Q ställbara och då kan man inte använda PC programmet (om man inte vill ha ett antal fasta värden) utan måste använda ett antal formler.
PC Programmet är dock bra att verifiera emot så man får till det.
Mitt problem är att det skiter sig redan på K-värdet (Tio upphöjt i 3dB/20dB) i min (antagligen förenklade värld) så blir det ett decimaltal, men inte enligt PC programmet.
Det måste antingen vara ett fundamentalt fel eller så fattar jag allt fel.
Målet är att få fram alla koefficienterna med hjälp av C-kod, men jag få få beräkningarna att bli rätt innan jag fixar det.
Nedan är ett screenshoot ut PC programmet.
Det baseras på en Samplingsfrekvens på 44100 Hz
Ni ser reulterande koefficienter (I hexadecimala värden)
Jag kan inte begripa hur beskrivna formler kan leda fram till dessa värden.
Databladet är hyggligt "opedagogiskt" då man i beskrivningen använder begreppet "Bandwidth", Tabellen använder Q-värde (vilket är ett normalt begrepp i samband med parametriska EQ), och formeln pratar om cutoff (vilket inte nämns i texten).
Jag är helt fast, då det inte finns något om detta på nätet, mer än en ALSA Driver för LINUX, men jag ser inte beräknings formeln i den koden utan bara hur den läser in koefficienterna.