Jump to content
Annons

Innehållet i samplingsbitar?


MJInc

Recommended Posts

En sampling med upplösningen 44.1 kHz och 16 bitar innebär att 44100

ggr/sekund så skapas ett värde motsvarande två bytes dvs ett tal mellan 0-65536

utifrån ingående ljudsignal.

Min undran är, vad kan man läsa ut av detta tal? Ljudvolym och frekvens?

Är de första 8 bitarna volymen och de andra 8 frekvensen eller tvärtom.

Är jag helt fel ute? Kan nån förklara med enkla termer?

//Micke...

Link to comment
Dela på andra sajter

Annons

Ok, men då undrar jag. Om det är 1 ren ton så är det ju lätt att läsa ut

frekvensen. Men om talserien, dvs strömmen av bytes, består av en inspelning av

två helt olika frekvenses, hur läsar man ut vilka frekvenser det rör sig om?

Anledningen till mina funderingar är hur man teroetiskt skulle kunna blocka bort

sänka en viss frekvens, dvs hur en eq funkar...kanske börjar bli för komplicerat

att förklara här så jag borde nog leta fram någon läsvärd bok istället...

Link to comment
Dela på andra sajter

Ok, men då undrar jag. Om det är 1 ren ton så är det ju lätt att läsa ut

frekvensen. Men om talserien, dvs strömmen av bytes, består av en inspelning av

två helt olika frekvenses, hur läsar man ut vilka frekvenser det rör sig om?

Anledningen till mina funderingar är hur man teroetiskt skulle kunna blocka bort

sänka en viss frekvens, dvs hur en eq funkar...kanske börjar bli för komplicerat

att förklara här så jag borde nog leta fram någon läsvärd bok istället...

Du får en blandning av frekvenser, så det är nog ganska omöjligt att sortera ut den ena - om man inte har den andra ensam och kan blanda dem med hjälp av fasvändning...

Med en eq ändrar du hela ljudinnehållet - och kan inte sortera ut en viss del av det inkommande ljudet. Hur det sedan fungerar matematiskt, har jag inte den blekaste aning om...

Link to comment
Dela på andra sajter

Jag vet inte om det är standardförfarande för en EQ-plugg, men ett sätt är ju att använda vanliga filter: low-pass för low-shelf, band-pass för parametriska band och high-pass för high-shelf.

In-signalen splittas i antalet EQ-band, de skilda signalerna passerar genom filtren + bipolär förstärkare för cut/boost och adderas med den ursprungliga signalen innan den skickas ut.

Inte världens enklaste beskrivning kanske, så fråga på om något är oklart.

EDIT: Eller så kollar man på wikipedia:

One common type of equalizer is a graphic equalizer, which consists of a bank of band-pass filters, with an independent gain control for each band. Normally, these bands are tight enough to give at least 3dB or 6dB maxium effect for neighboring bands, and cover the range from around 20Hz to 20kHz (which is approximately the range of human hearing). A simple equalizer might have bands at 20Hz, 200Hz, 2kHz and 20kHz, and might be referred to as a 4-band equalizer. A typical equalizer for live microphone work might have as many as 24 or 32 bands.

Hela artikeln.

Redigerat av royen
Link to comment
Dela på andra sajter

In-signalen splittas i antalet EQ-band

Men hur splittar du en ström av 16 bitars tal till respektive band/frekvenser?

Nu menar jag rent matematiskt. Tänk dig t ex att du ska skriva en

programkod som ska hantera detta, hur ser den matematiska principen ut för

att räkna fram de olika frekvenserna som talströmmen representerar.

Det måste ju vara detta som eq-pluggar baseras på. Eller?

//Micke...

Link to comment
Dela på andra sajter

Det finns olika sätt att göra detta på. Jag tänkte visa hur ett väldigt enkelt lågpass-filter fungerar. Ett lågpass filter släpper bara igenom låga frekvenser, och stoppar höga. Det är en av de allra enklaste algoritmerna.

För varje sample gör man följande operation. Det innebär att man gör det 44.100 gånger per sekund.

temp = in x 0.7 + minne x 0.3 // rad 1)

ut = in x 0.9 + temp x 0.1 // rad 2)

minne = temp

Rad 1) styr brytfrekvensen

Dvs, först räknar man fram värdet på utsignalen, sen sparar man den i minnet till nästa gång. 0.7 respektive 0.3 blir ju ett tillsammans, så volymen ändras inte.

Om man ändrar 0.7:0.3 till, säg, 0.5:0.5 så ändrar man filtrets frekvens, mot lägre frekvens.

Rad 2) styr hur mycket basen höjs respektive sänks.

I exemplet ovan höjer man basen och sänker diskanten.

Hoppas det klarnar lite.

Algoritmen ovan är en av de enklaste man kan ha.

Trombonisten

Redigerat av trombonisten
Link to comment
Dela på andra sajter

Skulle föreslå någon bok inom signalbehandling, filter, fourieranalys och liknande. Tror att ämnet är lite väl komplext för att avhandla i en forumpost.

Jag känner att jag börjar förstå lite grann av det här efter att ha pluggat till civilingenjör och gjort mitt examensarbete inom signalbehandling.

/Jonas

Link to comment
Dela på andra sajter

Vill du ha ut ett visst frekvensspektra ur en sampling så kan du göra det ganska enkelt i matlab.Ta din signal, kör en FFT på den (Fast Fourier Transform) så du får den uppdelad i frekvenser, sen är det bara att nolla allt utom dom frekvenser du vill ha. Kom ihåg att göra det på båda sidor av frekvensspektrat bara, annars blir det fel :-) Om du vill ta bort allt utom frekvenserna mellan 8-10 khz så får du nolla allt utom 8000-10000 och 32100-34100. Sen är det bara att inverstransformera den och spara.

Har för mig du kan hitta FFT-EQ's också, fråga google.

Redigerat av Arete
Link to comment
Dela på andra sajter

Ojojoj, vart mycket mer komplext än vad jag föreställt mig. Hittade dokumentation på stanford som förklarar FFT. Rena rama grekiskan! 😏

http://ccrma.stanford.edu/~jos/mdft/Fast_F..._FFT.html#18450

Dom länkade även till Matlab, ska kolla upp det vid tillfälle.

Tack för all hjälp!

//Micke...

Link to comment
Dela på andra sajter

Vem sa att det skulle vara enkelt?

Som alternativ kan du titta på programmet Audacity. Det är ett ljudprogram med öppen källkod. Det borde finnas C-programkod där för diverse saker, inklusive EQ.

Tr.

Link to comment
Dela på andra sajter

Postat (redigerat)

Kanon! Bra ide....ska genast kolla in Audiocity. Det var nån som tipsade om den

som editor tidigare idag har jag för mig!

Det var nog jag i mitt lilla huvud som tyckte att det borde vara enkelt. Hittade

kursmaterial på Lunds Universitets hemsida för signalbehandling i multimedia

som tillsammans med C koden från Audiocity kanske reder ut det hela för mig.

Måste nog oxå fräscha upp mattkunskaperna tror jag...

Tack trombonmannen!!

//Micke...

Edit: Hette visst Audacity...

Redigerat av MJInc
Link to comment
Dela på andra sajter

Intressant tråd. Jag sitter nu själv och ska tänka ut hur jag ska formulera en fråga...

Edit:

1. Så en 44100kHz/mono/16-bit fil använder 16 bitar 44100 gånger per sekund, eller?

2. Vilket resulterar i 705600 bits. Delar vi det på åtta för att få fram det i byts så blir det 88200 bytes. Så en sekunds 44.1kHz/mono/16bit pcm är 88200 byte?

3. Man kan sedan undra hur en 1 Hz ur alla 44100 ska kunna registera vilken frekvens som är just där, vilken dynamik och i vilken fas den är i.

3.1 Är det så att varje Hz ur de sammanlagda 44100 uppdateringarna per sekund endast kan ange en frekvens och det blir den som är dominant i just i den "samplen"?

3.2 1 bit är väl 6db?

3.3 varje "sample" har 16 bit att arbeta med vilket blir 2 byte per sampling. Så alltså används 2 kb i 44100Hz läge för att registrera varje sample om vilken frekvens, dynamik och fas den har?

Redigerat av punkrockdude
Link to comment
Dela på andra sajter

Skönt att se nån till som blir lika snurrig av dessa grubblerier som jag själv! 😄

Ska försöka svara på dina frågor så som jag fattat det hela nu:

1. Ja

2. Ja

3. Det är här det börjar snurra för mig... 😄

3.1 Nej

3.2 Ingen aning, förstår ej vad du menar. Nån annan kan kanske svara?

3.3 2kb? Du menar väl 2b?

Jag tror att varje sample, dvs 16-bitars tal, innehåller information om hela ljudet

i just den stunden. Frekvenserna och dess individuella nivåer räknas fram

med väldans (i mina ögon) komplexa FFT-formler. Kolla in följande

pdf som är en del ur ett kursmaterial....

http://www.es.lth.se/ugradcourses/digsigmm/ocf1_a4.pdf

....kanske förklarar en del.

//Micke...

Link to comment
Dela på andra sajter

1. Så en 44100kHz/mono/16-bit fil använder 16 bitar 44100 gånger per sekund, eller?

Jo det stämmer. 16 bitar för att beskriva volymen.

2. Vilket resulterar i 705600 bits. Delar vi det på åtta för att få fram det i byts så blir det 88200 bytes. Så en sekunds 44.1kHz/mono/16bit pcm är 88200 byte?

Ja. Om det är mono iaf, annars blir det dubbelt så mycket.

3. Man kan sedan undra hur en 1 Hz ur alla 44100 ska kunna registera vilken frekvens som är just där, vilken dynamik och i vilken fas den är i.

Den beskriver enbart volymen vid varje tillfälle. Skillnaden i volym mellan de olika tillfällena är det som beskriver vågorna. Tänk på det som en högtalare, det är bara ett element som varierar och ger vågorna.

3.1 Är det så att varje Hz ur de sammanlagda 44100 uppdateringarna per sekund endast kan ange en frekvens och det blir den som är dominant i just i den "samplen"?

Nej, se föregående svar. Det sparas ingen frekvens, bara den momentära volymen.

3.2 1 bit är väl 6db?

Beror helt på hur många bitar som används, hur volyminställningarna är o.s.v. Så så enkelt kan man inte uttrycka det.

3.3 varje "sample" har 16 bit att arbeta med vilket blir 2 byte per sampling. Så alltså används 2 kb i 44100Hz läge för att registrera varje sample om vilken frekvens, dynamik och fas den har?

Se föregående svar.

Link to comment
Dela på andra sajter

1. Så en 44100kHz/mono/16-bit fil använder 16 bitar 44100 gånger per sekund, eller?

-- japp.

2. Vilket resulterar i 705600 bits. Delar vi det på åtta för att få fram det i byts så blir det 88200 bytes. Så en sekunds 44.1kHz/mono/16bit pcm är 88200 byte?

--japp.

3. Man kan sedan undra hur en 1 Hz ur alla 44100 ska kunna registera vilken frekvens som är just där, vilken dynamik och i vilken fas den är i.

-- det finns inga frekvenser alls. Det finns bara "lufttrycket" i varje tillfälle. Det finns alltså ingen hertz eller så.

3.1 Är det så att varje Hz ur de sammanlagda 44100 uppdateringarna per sekund endast kan ange en frekvens och det blir den som är dominant i just i den "samplen"?

-- nix. Varje sample i sig visar bara lufttrycket i just det samplet. Det kan vara plus eller minus. Det finns inga hertz, inga frekvenser, bara detta tryck. Ljudet som våra öron hör uppstår genom att trycket ändrar sig. Med en hög frekvens på samplingen (ex 44.1kHz) kan ljudet ändra sig snabbt, och då kan vi höra höga frekvenser. Med en lägre fart, säg som i en telefon, så kan vi bara höra upp till och med en lägre frekvens. Men det finns alltså inga frekvenser i samplen, det finns bara ljudtrycket just där. Ett enda sample i sig är i stort sett ointressant. Det krävs en hel massa för att det skall bli ljud.

3.2 1 bit är väl 6db?

-- ja och nej. För enkelhets skulle brukar man säga att om man ökar med en bit så ökar avståndet till bruset med 6dB, dvs signal-noise ökar med 6 db. Det är ju inte riktigt samma sak som att en bit är just 6dB.

3.3 varje "sample" har 16 bit att arbeta med vilket blir 2 byte per sampling. Så alltså används 2 kb i 44100Hz läge för att registrera varje sample om vilken frekvens, dynamik och fas den har?

-- nej, varken frekvens, dynamik eller fas finns i samplet. Bara lufttrycket i just det tillfället. (Amplitud brukar det väl kallas när det gäller elektriska signaler).

Titta på en bashögtalare så klarnar det nog. Varje sample visar hur långt ut eller in högtalaren skall vara. Ljud uppstår när högtalaren rör sig ut och in. Högtalaren ut = högt lufttryck, högtalaren in = lågt lufttryck. Högtalaren har ingen aning om frekvenser, det har inte sample-t heller.

Hoppas det klarnar.

Trombonisten.

Link to comment
Dela på andra sajter

Jag ska ta och läsa igenom era svar och råplugga det och verkligen förstå det. Tusen tack KJInc, Trombonisten och Arete. Härligt att ni finns som tar er tid att verkligen läsa igenom frågor och att ge bra svar.

Redigerat av punkrockdude
Link to comment
Dela på andra sajter

En fråga till om sample raten:

Kan det bara vara positivt eller negativt? Inga mellanting eller något annat bara ifall det är positivt eller negativt?

Här kommer då frågor om bitsen vilket jag hoppas att jag inte glömde eller råkade förbi se i era tidigare svar:

Vilken information finns i bitsen? Ifall ni orkar, kan ni ange hur många bits var egenskap upptar utav de 16?

Redigerat av punkrockdude
Link to comment
Dela på andra sajter

Hmm. Bra frågor. Problemet är att skriva bra svar. Försöker.

Samplerate - alltså hur många "mätningar" man gör per sekund. En CD är 44.100 sample per sekund. Låter utmärkt bra för nästan allting.

Bitdjup - hur "detaljerat" man mäter varje gång. 16 bitar är det på en CD. Räcker utmärkt bra för nästan allting.

16 bitar kan ha 65536 olika värden, från -32768 över 0 till 32767. Men det är inte riktigt så man tänker. Snarare så att man mäter mellan +1 och -1. Med 16 bitar blir det ungefär som om man mäter med 4 decimaler (förenklat), dvs ett värde kan till exempel vara 0,1234 och vara annorlunda än 0,1235. Med fler bitar, till exempel 24, så blir det fler decimaler, kanske att 0,123456 kan vara annorlunda från 0,123457.

Fler bitar innnebär alltså fler decimaler, men spelar det nån roll? Jag tänker inte ta den diskussionen här, men för de allra, allra, allra flesta behov så är 44.1kHz 16 bitar alldeles tillräckligt bra. Finessen med att gå till 24bit är för mig att man kan "slarva" mycket mer med volyminställningen. Inte så dumt när det går fort i inspelningen.

Tr.

Link to comment
Dela på andra sajter

En fråga till om sample raten:

Kan det bara vara positivt eller negativt? Inga mellanting eller något annat bara ifall det är positivt eller negativt?

- - - - -

Vilken information finns i bitsen? Ifall ni orkar, kan ni ange hur många bits var egenskap upptar utav de 16?

Digitala tal kan bara vara positiva.

Sno ungarnas byggklotsar, sätt dig på vardagsrumsgolvet och stapla dem olika högt.

Ställer du dessa staplar på rad kan du bygga t.e.x. en sinuskurva.

Hur högt du låter den högsta stapeln vara avgör upplösningen, d.v.s. hur många bitar.

Om du har många klotsar kan du bygga 16-bitars kurvor o de blir rätt lika en sinuskurva.

Har du 8 bitar blir den lite mer kantig, skulle du göra den på 4 bitars höjd.....

Ett annat exempel:

Gå in i sovrummet.

Där har du en taklampa o en sänglampa. (Kom inte o säg att du har fler nu bara!

😛 )

Där har du ett tvåbitars system du kan signalera till grannen med.

Säg att ni brukar käka ihop och du med lamporna ska meddela hur många potatisar du vill ha.

Hur många besked kan du ge?

Taklampan kan vara tänd (1) eller släckt (0).

Samma sak med sänglampan.

Du o grannen har bestämt att den gröna sänglampans sken (Jo, den är grön säger jag!

😳 ) är "minst" värd, Least Significant Bit. (LSB) och taklampan med vitt ljus därmed Most Significant Bit.

Detta innebär att om du bara tänder sänglampan => 01 => du vill bara ha en potatis.

Vill du ha två potatisar tänder du bara taklampan => 10

Tre plugg så tänder du båda => 11

Om ingen lampa är tänd så betyder det att du inte kommer över för du är på stan o festar......

😄

Du kan alltså med ett tvåbitars system ge fyra besked från 0-3.

4 bitars system 2*2*2*2 => 16 besked.

Hemläxa:

Vad represanterar Adolphson-Falks sång 1-0-0-1-0 för tal decimalt?

Link to comment
Dela på andra sajter

Nja, 16 bitar är faktiskt ganska snålt tilltaget, speciellt för högdynamiska inspelningar. Klassisk musik har väldigt stora volymskillnader, och vid inspelning av dom tystare partierna kan det faktiskt låta ganska illa. Men ja, 16 duger för det mesta.

44.1 Khz är också precis på gränsen. 48 vore att rekommendera. Att det just är 44.1 är för att det ska finnas lite spelrum för filtren vid inspelning. Om du samplar i 44.1 så är den högsta frekvensen du kan spela in 22050 Hz, vilket egentligen ger bara 50Hz spelrum för filtret. Vid 48Khz så kan man låta signalen vara ganska ifred upp till 20000, och ha ett mycket mjukare filter över 4 Khz istället. Att hålla på med riktigt höga samplingsfrekvenser (96Khz t.ex.) är ganska onödigt om man inte ska hålla på och pitcha väldigt mycket. Det finns egentligen ingen anledning att ha högre samplerate än runt 40 vid uppspelning, fast lite spelrum är alltid bra. Nya DVD-standarden som det jobbas på har t.ex. en samplerate på 192Khz, vilket egentligen är helt onödigt om dom inte lagt in så man kan köra slowmotion med ljud.

Vid inspelning är det en helt annan sak förstås, spelar du in ett piano eller annat instrument så kan det vara trevligt att ha med en massa frekvenser ovanför vad man hör så man kan pitcha ner och ändå få en massa trevliga övertoner.

Nya SACD kör med 48Khz/24 bitar, vilket är ganska trevligt. Mer bitar ger iaf bättre ljudkvalitet på uppspelning än vad högre samplingsfrekvens gör.

Link to comment
Dela på andra sajter

Tack så mycket Mickeh och Arete. Jag tror att jag förstår det fastän jag fick läsa din förklaring med lamporna två gånger innan jag fattade det 🙂

Bara en fråga: Jag har läst att SACD kör med DSD teknik som använder 1 bit och ett antal miljoner Hertz men fungerar på ett annat sätt som vi inte behöver gå in på. Men, blir det verkligen "endast" 48000Hz/24bit PCM som Arete sa? Ursäkta att jag ifrågasätter dig Arete.

Nu ska jag också säga det som många andra sagt... Vad underbart det är med detta forumet! Man lär sig något nytt då och då 🙂

Redigerat av punkrockdude
Link to comment
Dela på andra sajter

Har inte läst in mig exakt på hur SACD fungerar, men det ska i slutänden bli 48Khz/24bit. Att använda 1bit och en fruktansvärt hög samplingshastighet är ett trick som används på vanliga cd-standarden också vad jag vet, men det är just i AD/DA-omvandlarna som det sker. Har inte orkat ge mig in på exakt vad som händer där, men nån annan kanske kan förklara det :-)

Link to comment
Dela på andra sajter

Bli medlem (kostnadsfritt) eller logga in för att kommentera

Du behöver vara medlem för att delta i communityn

Bli medlem (kostnadsfritt)

Bli medlem kostnadsfritt i vår community genom att registrera dig. Det är enkelt och kostar inget!

Bli medlem nu (kostnadsfritt)

Logga in

Har du redan en inloggning?
Logga in här.

Logga in nu
×
×
  • Skapa ny...