ADC volym och bit mening?

Permalänk

ADC volym och bit mening?

Så jag får in en signal från en 16-bit ADC. Så jag antar att de 16-bitarna är bara amplituden från sinus signalen? frågan är hur vet den vilken volym den är? Volymen bör väl styras beroende på volten, så hur kan den veta vilken volym den ska sätta?

Det jag försöker att göra är att ändra volymen via VHDL programmering, fast jag hittar inte hur ADC fungerar eller vad den ger ut.

Permalänk
Medlem

Signalen har ingen egentlig volym utan volymen är inbäddad i själva signalen.

Ett exempel skulle vara en sinuskurva vid frekvensen 1000 Hz. Volymen på den signalen är i direkt i relation till amplituden på signalen. Om du får in en signal vars amplitud går i topp och i botten så ska den spelas upp så högt som det kan spelas upp. En signal som slutar 1/4 från toppen och botten ska tolkas som en signal som spelas upp hälften så högt som en som slår i toppen och botten. Det finns även s.k. clipping som gör att man kan spela upp en signal med högre upplevd volym (notera att detta dock innebär en distortion av signalen vilket inte alltid är önskvärt).

Hoppas detta hjälper dig framåt.

Visa signatur

-- Citera mig om ni vill få återkoppling --

Permalänk
Medlem

Svårt att förstå sammanhanget, så du kommer nog få lite olika svar, beskriv lite bättre vad du gör.
Annars är amplituden samma sak som volymen på en digital signal. Men man ska ju undvika att ändra amplituden på den digitala signalen för då tappar man rätt mkt ljudkvalite, normalt justerar man volymen på själva förstärkaren efter DA-omvandlingen.

Permalänk

@dopedog @teejee

Ok, så att ändra amplituden är det enda sättet, om jag inte har tillgång till DAC egna volymkontroller. Jag kommer att skicka ut flera ljudsignaler genom samma DAC, fast "bas" volymen skulle ju kunnas ändras med DAC volymkontroller.

Så får alla 16-bit ADC ut samma bitar eller är det olika på olika ADC? Jag skulle då behöva att veta hur jag ska kunna öka amplituden utan att förstöra signalen, och för att göra det så måste jag veta vad bitarna gör för något.

Permalänk
Rekordmedlem

Adcn i sig ger en utsignal som representerar ett värde mellan dess 0 och max, vill du veta den verkliga ljudvolymen måste du referera signalnivån mot ett fast definierat referensvärde på nått sätt och kalibrera hela signalkedjan.
Ska du mäta med absoluta nivåer så kan det tex finnas angivet att ett ljudtryck på 120 dB motsvarar en elektrisk signalnivå på 0dBu och att detta motsvarar adcns "klippgräns" (dBFS), sedan får du räkna bakåt utifrån det.
Du måste alltså ha mer uppgifter för att veta vilken absolut ljudnivå ett svar från en adc motsvarar, adcn ger alltså bara ut "nått som befinner sig "här" mellan noll och max" men du måste veta vad noll och max är och adcns upplösning och vad den elektriska nivån motsvarar för akustisk nivå (mikrofonens känslighet)

Det finns ett antal dB värden som refererar till absolutvärden som används just för att man ska kunna räkna ut fysiska nivåer och inte bara skillnader i dB, dBu och dBV är ganska vanligt och vet man då även känsligheten på mikrofonen (Volt per Pascal) och mellanliggande förstärkarsteg osv så går det att räkna ut vilken ljudnivå ett visst digitalt tal motsvarar, det kan också vara så att utrustningen redan är kalibrerad på nått sätt och man fått uppgifter om absolutnivåer från tillverkaren
https://en.wikipedia.org/wiki/Decibel#Voltage
https://en.wikipedia.org/wiki/DBFS
http://www.analog.com/library/analogDialogue/archives/46-05/u...

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Rekordmedlem
Skrivet av Frejoh466:

@dopedog @teejee

Ok, så att ändra amplituden är det enda sättet, om jag inte har tillgång till DAC egna volymkontroller. Jag kommer att skicka ut flera ljudsignaler genom samma DAC, fast "bas" volymen skulle ju kunnas ändras med DAC volymkontroller.

Så får alla 16-bit ADC ut samma bitar eller är det olika på olika ADC? Jag skulle då behöva att veta hur jag ska kunna öka amplituden utan att förstöra signalen, och för att göra det så måste jag veta vad bitarna gör för något.

Vad är det du vill göra, ska du programmera en egen eq algoritm ?

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Medlem
Skrivet av Frejoh466:

@dopedog @teejee

Ok, så att ändra amplituden är det enda sättet, om jag inte har tillgång till DAC egna volymkontroller. Jag kommer att skicka ut flera ljudsignaler genom samma DAC, fast "bas" volymen skulle ju kunnas ändras med DAC volymkontroller.

Så får alla 16-bit ADC ut samma bitar eller är det olika på olika ADC? Jag skulle då behöva att veta hur jag ska kunna öka amplituden utan att förstöra signalen, och för att göra det så måste jag veta vad bitarna gör för något.

Bitarna är enbart amplitud för en ljudkurva i 44kHz (eller vilken samplingsfrekvens du nu har ställt in. Varje sample består av 16 bitars (dvs en nivå mellan 0-65535). Men ska du ändra volym innan du mixar ihop signaler i den digitala delen så behöver du skala amplituden. Bara att plocka in 16bitar och tolka det som en 16bitars integer och skala om det . Men insignalen kanske ligger nära takat (dvs 65535) så ökar du amplituden så kommer ju signalen bottna och du förlorar ju helt dynamiken i ljudet.

Du måste beskriva bättre vad du vill göra. Nu går du direkt på detaljer och samtidigt syns det att du inte har riktig koll på grundbegreppen, då kan det bli rejält fel.

Permalänk
Medlem

@Frejoh466

Som många andra skriver här så känns dina teoretiska kunskaper inte tillräckliga.

Om du enbart vill höja "volymen" på din signal så kan du tyvärr inte göra så mycket efter ADC eftersom risken att du helt bottnar din signal är otroligt hög. Precis som @teejee varnar för.

Vill du öka "volymen" på exempelvis basen så måste du på något sätt separera ut dess frekvenser (frekvensområde), förstärka samt låta den övriga signalen vara oförstärkt och sist men inte minst mixa ihop det hela till en kombinerad signal igen. Precis som @mrqaffe säger är detta typiskt vad en equalizer (EQ) gör. Även här måste du hantera problemet med bottning som @teejee varnar för.

Visa signatur

-- Citera mig om ni vill få återkoppling --

Permalänk

Ok, Så jag har en ljudsignal som skickas in i en DAC, och från ADC så får jag 16-bit per sampling. Dessa 16-bitar ska jag skicka ut igen. Jag kommer att ha ett register med en annan 16-bitars ljud.

Så jag kommer att skicka till baka de 16-bitarna jag just fick från ADC, till DAC, samt de 16-bitarna i registret. De 16-bitarna i registret vill jag då ändra volymen på.

5 min paint, om hur typ jag ska göra.

Så ljudet jag får in kommer att få en annan överlagra ljudsignal som jag kan ändra volymen på (registret har fler är bara en sampling).

EDIT:
@dopedog
Ok, hade hoppas på att det gick att ändra på volymen efter DAC har gjort sitt (därför ville jag veta exakt vad det var som DAC gav ut). Jag får då komma på någon annan lösning.

Permalänk
Rekordmedlem
Skrivet av Frejoh466:

Ok, Så jag har en ljudsignal som skickas in i en DAC, och från ADC så får jag 16-bit per sampling. Dessa 16-bitar ska jag skicka ut igen. Jag kommer att ha ett register med en annan 16-bitars ljud.

Så jag kommer att skicka till baka de 16-bitarna jag just fick från ADC, till DAC, samt de 16-bitarna i registret. De 16-bitarna i registret vill jag då ändra volymen på.

http://i.imgur.com/g1u8xry.jpg
5 min paint, om hur typ jag ska göra.

Så ljudet jag får in kommer att få en annan överlagra ljudsignal som jag kan ändra volymen på (registret har fler är bara en sampling).

EDIT:
@dopedog
Ok, hade hoppas på att det gick att ändra på volymen efter DAC har gjort sitt (därför ville jag veta exakt vad det var som DAC gav ut). Jag får då komma på någon annan lösning.

Vadå "register" ? Efter dacen är det analog signal och då får du hantera signalen analogt.
Vad är det för nått du försöker göra ? Ska du göra en digitalmixer ?

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Skrivet av mrqaffe:

Vadå "register" ? Efter dacen är det analog signal och då får du hantera signalen analogt.
Vad är det för nått du försöker göra ? Ska du göra en digitalmixer ?

Register = minne som jag har sparat en ljudfil på.

Detta är en sampel.

  • Jag får in en ljud signal till analog till digital konverteraren (får ut 16-bitar).

  • Jag skickar ljudet jag har på minnet (16-bitar) till digital till analog konverteraren

  • Jag skickar ut ljudsignalen som jag nyss fick från analog till digital konverteraren tillbaka till digital till analog konverteraren

Eftersom jag verkar ha svårt att förklara vad jag vill göra så har jag en fråga.

Kan jag ändra volymen efter att jag har fått ett sampel (16-bitar) från analog till digital konverteraren?

Permalänk
Medlem
Skrivet av Frejoh466:

Register = minne som jag har sparat en ljudfil på.

Detta är en sampel.

  • Jag får in en ljud signal till analog till digital konverteraren (får ut 16-bitar).

  • Jag skickar ljudet jag har på minnet (16-bitar) till digital till analog konverteraren

  • Jag skickar ut ljudsignalen som jag nyss fick från analog till digital konverteraren tillbaka till digital till analog konverteraren

Eftersom jag verkar ha svårt att förklara vad jag vill göra så har jag en fråga.

Kan jag ändra volymen efter att jag har fått ett sampel (16-bitar) från analog till digital konverteraren?

Berätta gärna exakt vad det är för prylar du använder och hur du har tänkt använda konstruktionen. Inte bara prata om abstrakta konverterare.
Men det är alltså amplituden som bestämmer volumen på en digital signal. Det finns inget annat i den digitala signalen än amplitudvärden med en viss frekvens. Så du ändrar volumen genom att skala amplituden. Men du måste vara försiktig så att inte signalen bottnar eller förlorar för mkt dynamik.

Permalänk
Rekordmedlem
Skrivet av Frejoh466:

Register = minne som jag har sparat en ljudfil på.

Detta är en sampel.

  • Jag får in en ljud signal till analog till digital konverteraren (får ut 16-bitar).

  • Jag skickar ljudet jag har på minnet (16-bitar) till digital till analog konverteraren

  • Jag skickar ut ljudsignalen som jag nyss fick från analog till digital konverteraren tillbaka till digital till analog konverteraren

Eftersom jag verkar ha svårt att förklara vad jag vill göra så har jag en fråga.

Kan jag ändra volymen efter att jag har fått ett sampel (16-bitar) från analog till digital konverteraren?

Ja naturligtvis går det men du får under inga som helst omständigheter överstiga dacens fulla utstyrning, omedelbart du gör det får du 100% dist, det finns ingen som helst marginal där för tar bitarna slut så är de slut så det finns exakt 0 i marginal för överstyrning och digital överstyrning av en dac låter dessutom fruktansvärt illa.
Det vanligaste är nog att signalen görs om till 32-128 bitar och så körs den genom de algoritmer som utför signalbehandling och sedan konverteras det till önskat utformat innan det matas ut, det kräver en hel del avancerad signalbehandling om det ska låta bra men ja det går men det kräver en kunnig programmerare som inte bara kan programmera utan behärskar den analys och signalbehandling som måste till för att det ska låta bra.
Edit: Det blev ett lite dumt svar märkte jag men det får vara kvar. Du måste vara mer konkret med vad du vill ändra och i förhållande till vad, dacens arbetsområde är absolut fixerat och du kan inte ändra signalnivåerrna utanför det.

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Skrivet av teejee:

Berätta gärna exakt vad det är för prylar du använder och hur du har tänkt använda konstruktionen. Inte bara prata om abstrakta konverterare.
Men det är alltså amplituden som bestämmer volumen på en digital signal. Det finns inget annat i den digitala signalen än amplitudvärden med en viss frekvens. Så du ändrar volumen genom att skala amplituden. Men du måste vara försiktig så att inte signalen bottnar eller förlorar för mkt dynamik.

Tanken var väl på ett snabbt och enkelt sätt få reda på om man kan öka amplituden med de 16-bitarna man får från ADC.

Jag får väl kolla lite vidare då.

Permalänk
Medlem

@Frejoh466: Du har ju fått svar. Bara skala det 16-bitarsvärde du har för att ändra "volymen" (hantera som signed int).

Exempel: Halvera volymen
- Dela alla värden med hälften

Dubbla volymen:
- Multiplicera alla värden med två

Visa signatur

Core i7 7700K | Titan X (Pascal) | MSI 270I Gaming Pro Carbon | 32 GiB Corsair Vengeance LPX @3000MHz | Samsung 960 EVO 1TB

Permalänk
Rekordmedlem
Skrivet av Nioreh83:

@Frejoh466: Du har ju fått svar. Bara skala det 16-bitarsvärde du har för att ändra "volymen" (hantera som signed int).

Exempel: Halvera volymen
- Dela alla värden med hälften

Dubbla volymen:
- Multiplicera alla värden med två

Det är inte riktigt så enkelt att öka nivån.

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Medlem

@mrqaffe: Nja, typ så enkelt är det ju, om man förenklar det och inte tänker på att decibel är en logaritmisk skala osv.

Visa signatur

Core i7 7700K | Titan X (Pascal) | MSI 270I Gaming Pro Carbon | 32 GiB Corsair Vengeance LPX @3000MHz | Samsung 960 EVO 1TB

Permalänk
Rekordmedlem
Skrivet av Nioreh83:

@mrqaffe: Nja, typ så enkelt är det ju, om man förenklar det och inte tänker på att decibel är en logaritmisk skala osv.

Nej du kan bör aldrig överstyra, det går att strunta i att hantera överstyrning men då låter det inte bra.
De flesta färdiga dacar jobbar med tvåkomplement så utsignalen byter polaritet, det är alltså inte så att disten ökar lite gradvis som i en analog krets utan man får aldrig nå 0dBFS för en dac om man har några krav på signalkvalitet.
Men om du menar att det matematiskt går att göra så om man totalt skiter i vad den analoga utsignalen blir så... joo, men inte är det direkt nån snygg lösning att överstyra dacen.

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Medlem

@mrqaffe: Självklart måste man se till så man inte slår i taket. Men jag gick inte in på detaljer eftersom ni redan förklarat för TS ganska väl vad man måste ta hänsyn till.

Visa signatur

Core i7 7700K | Titan X (Pascal) | MSI 270I Gaming Pro Carbon | 32 GiB Corsair Vengeance LPX @3000MHz | Samsung 960 EVO 1TB