Slik brukes en lydkodek for enklere å kunne optimalisere lydytelsen i innebygde systemer
Bidrag fra DigiKeys nordamerikanske redaktører
2021-02-17
Mange designere inkluderer lydkodeker i sine mikrokontroller-baserte innebygde systemdesign i et forsøk på å legge til lyd med høy pålitelighet. Når de gjør dette, må de finne ut hvordan de kan stille inn lydkodeken for utrustningen sin. Uten innstilling kan utrustningen bli stående flat eller av dårlig kvalitet, selv med en god codec og høyttaler. Problemet er at hver høyttaler har sin egen frekvensrespons, og derfor bør kodeken være innstilt på høyttalerens egenskaper, samtidig som man husker hva slags lyd som vil bli spilt, samt ønsket respons.
Løsningen på innstilling av lydavspillingssystemet er ikke å bruke maskinvarefiltrering, men i stedet utnytte lydkodekens egne digitale filtreringsblokker. Hver kodek har denne blokken for å tillate en utvikler å filtrere utgangen ved hjelp av høypass-, lavpass- og båndpassfiltre. Dette gjør at høyttalerresponsen kan justeres nøye og til og med justeres etter behov.
Denne artikkelen vil ta for seg de interne digitale lydblokkene som er inkludert i kodeker, med en kodek fra AKM Semiconductor som eksempel. Den vil også ta for seg flere tips og triks om hvordan du kan stille inn kodeken som vil hjelpe utviklere med å akselerere utviklingen av lydavspilling og samtidig forbedre et systems lydkvalitet.
Forstå høyttalerfrekvens-responsegenskaper
Artikkelen «Slik velges og brukes en lydkodek og mikrokontroller for innebygde lydtilbakemeldingsfiler» som ta for seg grunnleggende prinsipper for å velge og legge til en kodek i et system. Neste trinn er å bruke den kodeken for å få best mulig lydutgang.
Det er flere forskjellige faktorer som bidrar til hvordan lyden som kommer ut av et system vil høres ut. Disse faktorene inkluderer:
- høyttalerens kabinett.
- hvordan høyttaleren er montert.
- lydfrekvensene som spilles av.
- høyttalerens frekvensrespons.
Etter nøye overveielse av disse faktorene, vil en utvikler snart innse at tuning av et lydsystem bare er nyttig når det er i sin endelige produksjonstilstand. Selvfølgelig kan systemet justeres med et trykt kretskort (PCB) og høyttaleren utenfor et hus, men man bør ikke forvente at de samme innstillingsparameterne gjelder når høyttaleren er montert og i kabinettet.
Hvis det mekaniske teamet har utformet systemkabinettet og monteringen på riktig måte, er hovedegenskapen som utvikleren må følge nøye med på høyttalerfrekvensresponsen. Hver høyttaler har forskjellige egenskaper og responskurver. Selv høyttalere med samme delenummer vil ofte ha små variasjoner i frekvensrespons, men produsenten gir vanligvis en typisk frekvensresponskurve. Figur 1 viser for eksempel frekvensresponskurven for en CUI Devices GC0401K 8 Ohm (Ω), 1 watts høyttaler. GC0401K er klassifisert for frekvenser mellom 390 hertz (Hz) og 20 kilohertz (kHz).
Figur 1: CUI-enhetenes GC0401K 8 Ω, 1 watts høyttaler er merket for frekvenser mellom 390 Hz og 20 kHz. (Bildekilde: CUI Devices)
Høyttalere er vanligvis rangert for det området av deres responskurve der responsen er relativt flat. En nøye titt på figur 1 viser at frekvensresponsen for GC0401K begynner å flate ut ved ca. 350 Hz og forblir relativt flat minst gjennom 9 kHz. De høye frekvensene har noen fall (drop-off), men er fortsatt stabile opptil 20 kHz.
En annen høyttalerfrekvensrespons kan sees i CUI Devices sin GF0668 (figur 2). Denne høyttaleren er litt større og kan yte 3 watt. Frekvensresponsmerkingen er mellom 240 Hz og 20 kHz. Denne høyttaleren kan treffe litt lavere frekvenser enn GC0401K, men legg igjen merke til at kurven innenfor det angitte området er relativt flat med noen fall og topper over intervallet.
Figur 2: Frekvensresponsen for CUI Devices sin GF0668 8 Ω, 3-watt-høyttaler viser hvorfor den er merket for området 240 Hz til 30 kHz. (Bildekilde: CUI Devices)
En siste høyttalerrespons som er verdt å se på, er Soberton Inc. sin SP-2804Y (figur 3). SP-2804Y er en 500 milliwatt (mW) høyttaler med et frekvensresponsområde på 600 Hz til 8 kHz. Fysikkens lover sikrer at jo mindre høyttaleren er, desto vanskeligere er det for den å reagere på lavere frekvenser. Dette betyr at hvis utviklere ikke filtrerer bort lavere frekvenser og i stedet prøver å kjøre høyttaleren på disse frekvensene, kan resultatet bli litt irriterende lyd eller forvrengte toner, som ellers ville høres krystallklare ut.
Legg merke til at det også er en betydelig nedgang i frekvensresponsen rundt 10 kHz. Derfor er høyttaleren kun klassifisert til 8 kHz, selv om den sannsynligvis kan brukes opp til 20 kHz for noen utrustninger.
Figur 3: Frekvensresponsen for Soberton sin S SP-2804Y 8 Ω, 0,5-watt-høyttaler viser den passer for området 600 Hz til 8 kHz. Den har en fall (dypp) etter 10 kHz, men den kan fortsatt brukes ut til 20 kHz for noen utrustninger. (Bildekilde: CUI Devices)
Når man ser på hver høyttalers frekvensrespons, er det klart at en slags filtrering og innstilling må finne sted, da det er noen frekvenser som ikke bør kjøres ut på en høyttaler. Forsøk på å kjøre en basstone på 4 Hz på disse høyttalerne kan for eksempel forårsake langvarige vibrasjoner der høyere frekvenser kjøres inn, noe som resulterer i mye lydforvrengning.
Dissekere en digital lydfilterblokk
En metode som har blitt brukt tidligere for å tune ut uønskede frekvenser, er å bygge maskinvarefiltre som fører opp til høyttaleren. Et høypassfilter ved 500 Hz kan for eksempel hindre frekvenser under 500 Hz i å komme til høyttaleren. I den andre enden kan et lavpassfilter brukes til å fjerne eventuelle lydtoner over 15 kHz. Personlig erfaring har vist at noen ganger, hvis en kvinnes stemme brukes sammen med en liten høyttaler som er effektiv ved høyere frekvenser, kan høyttaleren utstråle et høyt tonefall. Nøyaktig valg av frekvenser kan fjerne disse forvrengningene og skape renere lyd.
Selv om eksterne maskinvarefiltre kan gjøre jobben, legger de til kostnader og tar opp ekstra plass. På grunn av dette er det mer praktisk og effektivt å stille inn lyden ved hjelp av den digitale filterblokken som er innebygd i en lydkodek.
For eksempel har blokkdiagrammet for AKM Semiconductor AK4637 24-biters lydkodek den digitale filterblokken uthevet (figur 4).
Figur 4: AK4637 er en lydkodek med monohøyttalerutgang som har muligheter for lydavspilling og opptak. Den inneholder også en innebygd lydblokk som kan brukes til å filtrere innkommende og utgående lyd for å forbedre lydkvaliteten. (Bildekilde: AKM Semiconductor)
Den digitale filterblokken inneholder i dette tilfellet flere forskjellige filtreringsmuligheter som inkluderer:
- Et høypassfilter (high-pass filter – HPF2)
- Et lavpassfilter (low-pass filter – LPF)
- En firebånds equalizer (4-bånds EQ)
- Automatisk utjevningsregulering (Automatic leveling control – ALC)
- En ettbånds equalizer (1 band EQ)
Disse funksjonene trenger ikke alle å være aktivert. Utviklere kan velge hvilke funksjoner de trenger, og aktivere og deaktivere blokken eller dirigere mikrofon eller avspillingslyd gjennom dem. Det virkelige spørsmålet nå er – hvordan beregne og programmere lydkodeken?
Hvordan beregne og programmere digitale filterparametere
I de fleste lydutrustninger brukes et høypassfilter til å fjerne lavere frekvenser, og et lavpassfilter brukes til å utelukke høyere frekvenser. En equalizer kan brukes til å jevne ut frekvensresponskurven eller til å understreke visse toner. Nøyaktig hvordan disse innstillingene skal velges er utenfor omfanget av denne artikkelen. Den vil i stedet se på hvordan beregne og programmere verdiene som er knyttet til disse parameterne, med AKM AK4637 som eksempel.
Først er det alltid en god idé å gjennomgå databladet. Side 7 og 8 viser i dette tilfellet det viktigste registerkartet for kodeken. Ved første blikk kan være skremmende, med tanke på at delen har 63 registre. Mange av disse registrene kontrollerer imidlertid den digitale lydblokken. Registrerer for eksempel 0x22 til 0x3F for å kontrollere equalizeren. Registrene 0x19 til 0x1C kontrollerer høypassfilteret, mens 0x1D til 0x20 kontrollerer lavpassfilteret.
Utviklere kan vanligvis ikke bare angi en frekvens som skal legges inn i kodeken. I stedet er det en filterligning som brukes til å beregne filterkoeffisienter, som deretter programmeres inn i kodekregistrene for å lage filteret med ønsket frekvens. For eksempel, for å bruke den digitale filterblokken til å opprette et høypassfilter ved 600 Hz, bruk ligning 1:
Figur 5: Vist her er ligningene som trengs for å beregne koeffisientene for et høypassfilter for den digitale filterblokken AK4637. (Bildekilde: AKM Semiconductor)
En utvikler vil identifisere ønsket avskjæringsfrekvens, fc, som i dette tilfellet er 600 Hz. Lydprøvetakingsfrekvensen, fs, er vanligvis 48 kHz, men kan variere avhengig av utrustningen. Disse verdiene vil deretter bli plassert i ligningene for beregning av koeffisientene A og B. Disse verdiene skrives deretter til kodekregistrene over I2C under oppstart. Den samme prosessen vil bli brukt for lavpassfiltre og andre digitale blokkfunksjoner, selv om overføringsfunksjonene ofte er forskjellige, noe som krever at deres eget sett med ligninger brukes (se databladet).
Tips og triks for innstilling av en lydkodek
De digitale filterblokkene som er inkludert i en lydkodek er ofte ganske fleksible og kraftige. Selv en lavpris-lydkodek gir utviklere de verktøyene som er nødvendige for å generere lyd med høy pålitelighet. Men til syvende og sist, er lydkodeken bare én brikke i puslespillet. For å Innstilling en lydkodek, er det flere «tips og triks» utviklere bør huske på, for eksempel:
- Sørg for at høyttaleren er montert i et passende kabinett for utrustningen. En feil utformet høyttalerboks kan enkelt ødelegge et ellers perfekt avspillingssystem.
- Ikke still inn kodeklangfilterblokkene før systemet er fullstendig montert i sin produksjonsformålskonfigurasjon. Tuningsparametere kan ellers endres.
- Velg frekvensområdet basert på lyden som skal spilles av. Frekvensinnstillingene for musikk fra en gitar, et piano eller noen som snakker, vil for eksempel være forskjellige.
- Bruk den digitale balanseblokken for å kompensere for høyttalerens frekvensrespons. Noen frekvenser vil naturlig høres høyere og klarere ut og må kanskje svekkes, mens andre kanskje må forsterkes.
- Bruk testtoner for å evaluere systemets frekvensrespons. Et enkelt Internett-søk vil gi mp3-filer for et bredt spekter av lydtoner som kan brukes til å forstå frekvensresponsen til lydavspillingssystemet og hvordan den digitale filterblokken fungerer.
- Lagre innstillingene for filterblokkkonfigurasjon i flash eller EEPROM slik at de kan stilles inn under produksjon for å ta hensyn til system-til-system-variasjoner (hvis det er problematisk).
Utviklere som følger disse «tipsene og triksene», vil finne ut at de sparer ganske mye tid og irritasjon, når de prøver å stille inn lydavspillingssystemet sitt for å sikre at det kommer på markedet med de tiltenkte lydegenskapene.
Konklusjon
Å legge til en lydkodek i et innebygd system garanterer ikke at det vil høres bra ut for sluttbrukeren. Alle lydavspillingssystemer må justeres nøye. Det er mulig å bruke eksterne filtre for å oppnå denne innstillingen, men lydkodeker leveres med digitale filtrerings- og balansefunksjoner innebygd. Som vist kan disse brukes til å mate høyttaleren bare frekvensene den er best egnet til. Med nøye analyse og bruk av filterinnstillinger kan utviklerne skape den rene lyden som sluttbrukerne har kommet til å forvente av enhetene sine.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.



