cmyrland Skrevet 8. juni 2010 Del Skrevet 8. juni 2010 Jeg jobber som lærer på en barneskole, og har merket meg at måling av støynivå i klasserommet er noe som ofte fenger elevene og motiverer til økt arbeidsinnsats. I det siste har jeg tegnet et diagram på tavla og plottet inn hvordan støyen i klasserommet er (for meg som lærer) ca hvert 5. minutt. I en klasse som over lang tid har slitt med klager fra andre lærere pga høyt støynivå falt støynivået i klasserommet til et sted mellom "arbeidsstøy", som spørring av sidemann om hjelp på en oppgave, blafring med papir etc, og "Så stille at vi kan høre en mus nyse" (hey, det er 3. klasse ) rimelig raskt. Siden dette funket så bra fikk jeg lyst å prøve ut et enkelt program som måler støynivået i klasserommet i dB, og dytter dataene inn i et regneark som automatisk genererer en graf som vi så kan vise via en projektor eller bare på PC-skjermen. Dette er mest bare som et leketøy for min egen underholdning, men hvis det viser seg å fungere bra er det noe jeg kan være interessert å putte inn i klasserommet mitt. Så kommer det virkelige spørsmålet. Har GNU/Linux et enkelt program som kan registere lyd og dytte dette ut i et lettfattelig format som kan implementeres i f.eks. OpenOffice Calc? Eller finnes det bedre alternativer enn det jeg har tenkt? Lenke til kommentar
Sokkalf™ Skrevet 8. juni 2010 Del Skrevet 8. juni 2010 Vil tro at det kan gå an å bruke en vanlig (men følsom) mikrofon, og ettellerannet som måler amplituden på waveformen som mottas (alt av lydopptakssoftware bør kunne brukes til dette i større eller mindre grad). Problemet med et slikt oppsett kontra en "dedikert desibelmåler", er at du må kalibrere den for at den skal bli noe i nærheten av nøyaktig. Lenke til kommentar
TheMaister Skrevet 8. juni 2010 Del Skrevet 8. juni 2010 (endret) Dette kan være litt jalla, men bør funke ganske bra: - Ta opp lyd med en mikrofon. (Mikrofonen må stå på samme sted hver gang, etc) - Analysér lyddataene som kommer inn (volum). - Kalibrér slik at lydvolumet som beregnes tilsvarer den reelle dB. - Logg til fil i et format som enkelt kan parses av OOCalc. Om det finnes programvare som gjør akkurat dette spesifikt vet jeg ikke, men kodingen av det grunnleggende bør ikke ta mange timene. EDIT: Litt for treig :V Endret 8. juni 2010 av TheMaister Lenke til kommentar
cmyrland Skrevet 8. juni 2010 Forfatter Del Skrevet 8. juni 2010 Ja, altså, jeg ønsker helst et program som er laget for å kunne gi en rimelig grei måling i dB. Vet ikke om jeg er klar for utfordringen med å måle amplituden fra arecord enda Men har ikke funnet noe enda. Lenke til kommentar
olear Skrevet 8. juni 2010 Del Skrevet 8. juni 2010 Man har alltids måleinstrumenter med USB og logging (plug'n'extract), disser koster vanligvis fra 100usd og oppover (finnes sikkert billigere hvis man leter litt). Kanskje litt vel dyrt for et hobbyprosjekt, men tenkte iallefall å nevne det. Lenke til kommentar
TheMaister Skrevet 8. juni 2010 Del Skrevet 8. juni 2010 (endret) #include <stdio.h> #include <unistd.h> #include <stdint.h> #include <math.h> #define LEN(x) (sizeof(x)/sizeof(x[0])) #define OFFSET (0.0) // Kalibrering :') float db_rms(int16_t *buf, int num, float offset) { float sum = 0.0; float db; int i; for ( i = 0; i < num; i++ ) sum += (float)buf[i] * (float)buf[i]; sum = sqrtf(sum/num); db = 20.0 * log10(sum / 0x7FFF); return db + offset; } int main(void) { int16_t buf[2048]; int has_read; int tmp_read; int active = 1; while(active) { has_read = 0; while ( has_read < (int)sizeof(buf) ) { if ( (tmp_read = read(0, (uint8_t*)buf + has_read, sizeof(buf) - has_read)) <= 0 ) { active = 0; break; } has_read += tmp_read; } printf("%.1f\n", db_rms(buf, LEN(buf), OFFSET)); } return 0; } Denne C snutten tar lyddata fra stdin (signed 16-bit PCM, mono) og printer ut RMS verdi i dB til stdout. Kan brukes til noe. Kompilér med gcc -o db db.c -lm EDIT: Fiksa liten bug. Endret 8. juni 2010 av TheMaister 3 Lenke til kommentar
cmyrland Skrevet 9. juni 2010 Forfatter Del Skrevet 9. juni 2010 Haha, whaaaat! Gjorde du det der i natt TheMaister? Konge Takker og bukker Olear, jeg var inne på tanken. Spørsmålet er bare om noe sånt funker med GNU/Linux. Kjipt å måtte gamble. Da er det bare å vente på en liten tidsluke så jeg får fikle litt Lenke til kommentar
cyclo Skrevet 9. juni 2010 Del Skrevet 9. juni 2010 Olear, jeg var inne på tanken. Spørsmålet er bare om noe sånt funker med GNU/Linux. Kjipt å måtte gamble. Erfaringsmessig er det vell større sjanse for at utstyret fungerer lett i GNU/Linux enn i Windows når man taler om slike måleinstrumenter. Lenke til kommentar
epifant Skrevet 9. juni 2010 Del Skrevet 9. juni 2010 Ref. kalibrering; er det egentlig så tissetrengt i dette tilfellet? Har er det jo hovedsaklig for å vise forskjeller og endringer, og de blir jo (naturlig nok...) målt med det samme appapratet. Han trenger ikke å vite at 75dB faktisk ER 75dB. Unøyaktighetene øker selvsagt med økt lydtrykk, men... Lenke til kommentar
TheMaister Skrevet 9. juni 2010 Del Skrevet 9. juni 2010 Ikke nødvendigvis, men jeg vil regne med at man vil definere et lydvolum som er høyt, middels høyt og lavt, og da må man kalibrere. Lenke til kommentar
AlecTBM Skrevet 9. juni 2010 Del Skrevet 9. juni 2010 Det c scriptet funka veldig bra, var morsomt å se tallene hoppe opp og ned etter som at jeg klappet med hendene Lenke til kommentar
Flimzes Skrevet 10. juni 2010 Del Skrevet 10. juni 2010 Ref. kalibrering; er det egentlig så tissetrengt i dette tilfellet? Har er det jo hovedsaklig for å vise forskjeller og endringer, og de blir jo (naturlig nok...) målt med det samme appapratet. Han trenger ikke å vite at 75dB faktisk ER 75dB. Unøyaktighetene øker selvsagt med økt lydtrykk, men... Øker de virkelig med økt lydtrykk? En dobling vil tilsvare 3db uansett hvor på skalaen du er. Lenke til kommentar
Lycantrophe Skrevet 10. juni 2010 Del Skrevet 10. juni 2010 Går vel på det dynamiske området til sensoren og, kanskje. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå