DK176190B1 - Programmerbar digital kompressor, især for et digitalt höreapparat - Google Patents
Programmerbar digital kompressor, især for et digitalt höreapparat Download PDFInfo
- Publication number
- DK176190B1 DK176190B1 DK69393A DK69393A DK176190B1 DK 176190 B1 DK176190 B1 DK 176190B1 DK 69393 A DK69393 A DK 69393A DK 69393 A DK69393 A DK 69393A DK 176190 B1 DK176190 B1 DK 176190B1
- Authority
- DK
- Denmark
- Prior art keywords
- digital
- signal
- level
- input signal
- compressor according
- Prior art date
Links
Landscapes
- Tone Control, Compression And Expansion, Limiting Amplitude (AREA)
Description
DK 176190 B1 i Nærværende opfindelse angår en programmerbar digital kompressor af den i indledningen til krav 1 angivne art.
En sådan kompressor kendes fra WO 90/13174. Denne kompressor har imidlertid den ulempe, at forstærkningsfak-5 torberegningen bliver forholdsvis kompleks, dvs. omfatter mange beregninger, når der ønskes en høj fleksibilitet for kompressionskurven.
Det er hensigten med opfindelsen at tilvejebringe en kompressor af den indledningsvis nævnte art, hvormed der 10 opnås en stor fleksibilitet med hensyn til kompressionsgrad, samtidig roed at kompressionen kan foretages med ganske få beregninger og benyttelse af meget lidt lagerplads, hvilket især er af betydning i forbindelse med høreapparater, hvor det nødvendige chip-areal derved kan minimeres.
15 Dette opnås ifølge opfindelsen ved en kompressor, som udmærker sig ved det i den kendetegnende del af krav 1 angivne.
Denne løsning er en mellemting mellem en tabellagt kompressionskurve og en beregning af en funktion, som fast-20 lægger kompressionskurven. Med dette arrangement opnås en væsentlig forenkling af de til beregning af forstærkningsfaktoren nødvendige beregninger, uden en væsentlig forøgelse af den dertil nødvendige lagerplads.
Foretrukne udførelsesformer fremgår af de underordnede 25 krav.
Opfindelsen forklares i det følgende mere detaljeret ved hjælp af udførelseseksempler under henvisning til tegningen, hvor fig. 1 viser et blokdiagram af en kompressor ifølge 30 opfindelsen, fig. 2 skitserer eksempler på karakteristikker for en sådan kompressor, fig. 3 viser et mere detaljeret blokdiagram for niveaudetektoren , 35 fig. 4 viser alternative udførelsesformer for niveau detektoren, DK 176190 B1 2 fig. 5 viser et blokdiagram for adressegeneratoren, og fig. 6 skitserer den foretagne interpolation.
Den i fig. 1 viste kompressor består af i alt fem 5 elementer: r - En niveaudetektor, som skal frembringe et digitalt niveausignal ud fra det digitale indgangssignal og sørge for de korrekte attack- og release-tider.
- En adressegenerator, som konverterer det digitale 10 niveausignal fra niveaudetektoren til et "floating point"-format, med en eksponent, der benyttes til at beregne to adresser til tabellen og en normaliseret mantisse, der benyttes som parameter til interpola-toren.
15 - En tabel bestående af relativt få punkter, som in deholder forstærkningsfaktorerne i netop disse punkter. Hvis der eksempelvis er 6 dB's afstand mellem punkterne på indgangssignalaksen, vil der, for eksempelvis at dække et dynamikområde for det digitale 20 indgangssignal på 100 dB, kræves sytten punkter i tabellen.
En interpolator, som ud fra mantissen fra adressegeneratoren og de to i tabellen opslåede forstærknings-faktorer genererer en ønsket forstærkningsfaktor 25 mellem tabelpunkterne.
- En multiplikator, som multiplicerer hver enkelt digital signalværdi med den aktuelle forstærkningsfaktor fra interpolatoren.
30 På fig. 2 er skitseret et par eksempler på indgangs- signal/udgangssignalkarakteristikker for kompressoren, hvor dynamikområdet på indgangssignalaksen er 48 dB, hvilket altså kræver otte punkter i tabellen. Dynamikområdet på udgangssignalaksen er afhængigt af to ting, nemlig den pro-35 grammerede karakteristik og talrepræsentationen for forstærkningsfaktorerne i de enkelte punkter. Jo større dynamikom- 3 i DK 176190 B1 råde, man ønsker at dække, desto flere bit kræves for at repræsentere forstærkningsfaktorerne.
Et eksempel på niveaudetektoren er vist i et mere detaljeret blokdiagram i fig. 3. Niveaudetektorens opgave | Λ 5 er at frembringe et digitalt niveausignal, som på fastlagt måde er proportionalt med niveauet af det digitale indgangssignal. Desuden skal niveaudetektoren sørge for de rigtige attack- og release-tider i kompressoren, hvilket f.eks. kan opnås ved hjælp af et første ordens digitalt filter. Som 10 vist i blokdiagrammet tilvejebringes først absolutværdien af det digitale signal, hvilket svarer til en dobbelt ensretning. Det "ensrettede" digitale signal har en dc-kom-posant, som er proportional med det digitale indgangssignals niveau, og det efterfølgende lavpasfilter sørger for at 15 bibeholde denne dc-værdi og dæmpe de ac-komposanter, som måtte være i det digitale indgangssignal. I fig. 3 er filteret realiseret som et første ordens IIR-filter, hvor afskæringsfrekvensen og dermed tidskonstanten er bestemt af en parameter a. Filteret har altid o dB forstærkning ved 20 dc. Ved at lade parameteren a være afhængig af, om det digitale signal er ved at stige (|x(n)| > |x(n-l)|) eller falde (|x(n)| < |x(n-l)|), er det muligt at indrette henholdsvis attack- og release-tiderne efter behag. For hvert sample skal filteret altså afgøre, om det er attack eller 25 arelease' der skal bruges i filterberegningen.
På udgangen af filteret foreligger nu et digitalt niveausignal, som er proportionalt med det digitale indgangssignals niveau, og som derfor altid er positivt.
I fig. 4 er skitseret andre mulige udformninger af 30 niveaudetektoren, hvor der er anvendt en kvadrering af det digitale indgangssignal i stedet for absolutværdien. Herved får man beregnet det digitale indgangssignals RMS-værdi i stedet for den ensrettede middelværdi, hvilket kan være en fordel for nogle typer signaler. Kvadratrodsuddragningen 35 efter filtreringen er temmelig beregningskrævende, hvorfor den med fordel kan udelades, mod at man indfører trivielle DK 176190 B1 4 ændringer i adressegeneratoren, tabellen og interpolationen.
I fig. 5 er vist et blokdiagram for adressegeneratoren, og af dette fremgår, at den har to opgaver: Dels skal den generere to adresser til tabellen (ADRH og ADRL), dels 5 skal den tilvejebringe en normalisering af niv(n) til * mant(n). Normaliseringen går ud på at konvertere niv(n) til et "floating-poinf'-format, hvor mantissen ligger mellem 1/2 og 1. Herefter kan eksponenten benyttes til at adressere tabellen, og mantissen mant(n) skal bruges i forbindelse ! 10 med interpolationen. En forudsætning for at dette fungerer, i er at beregningerne foregår i det binære talsystem, hvilket typisk vil være tilfældet i en digital implementering. Herved svarer en forøgelse af eksponenten med 1 til en fordobling, hvilket igen hænger sammen med afstandene mellem punkterne 15 på indgangssignalaksen på 6 dB. Hver gang mant(n) = 1 eller mant(n) = 1/2, betyder det, at man netop har ramt et af punkterne i tabellen, og i alle andre tilfælde befinder man sig et sted mellem to punkter på indgangssignalaksen. Adresserne til tabellen skal altså være adressen på punktet over 20 og under det aktuelle punkt på indgangssignalaksen, som skitseret i fig. 6. Herved bliver ADRH = eksponent, og ADRL = eksponent -1.
Hvis der i niveaudetektoren benyttes kvadrering uden efterfølgende kvadratrodsuddragning, skal adressegenereringen 25 ændres passende, idet niv(n) så er et kvadreret tal. En forøgelse af eksponenten med 1 svarer nu ikke til en fordobling, men til at multiplicere med \J2, hvilket er en 3 dB-ændring. Der skal altså nu lægges 2 til eksponenten, før det svarer til en 6 dB-ændring. Dette betyder naturligvis 30 noget for adressegeneratoren og eksponentdetektoren, men der er tale om trivielle ændringer, som ikke påvirker kompleksiteten nævneværdigt.
Tabellen er blot en hukommelsesenhed med et vist antal elementer med en given ordbredde. Afhængigt af anven-35 delsen kan der være tale om RAM, ROM, PROM, EPROM eller EEPROM, men princippet er i alle tilfælde det samme. I ta- DK 176190 B1 5 bellen er indlæst forstærkningsfaktorer svarende til forskellige punkter på indgangssignalaksen, således at det i virkeligheden er en samplet version af indgangssignal-forstærknings faktor-karakteristikken, som er lagret. Forstærknings-5 faktorerne kan lagres som "rene" tal, eller de kan omsættes til dB for at spare på ordbredden. Interpolationen giver de bedste resultater, når der benyttes dB-værdier i tabellen.
Interpolationen afgør, hvor nøjagtigt den beregnede kurve følger den ønskede kurve. Den simpleste form for inter- ! 10 polation består i en første ordens (lineær) interpolation mellem de to forstærkningsfaktorer, men hvis der er mulighed for at gøre mere ud af beregningen, er det muligt at opnå bedre resultater med en højere ordens interpolation. Kaldes forstærkningsfaktorerne for GAINH (= tabel(ADRH)) og GAINL 15 (= tabel(ADRL)), findes den aktuelle forstærkningsfaktor af: GAIN:=2 *[GAINH·(MANT-1/2)+GAINL-(1-MANT)] hvilket kan omskrives til 20 i
GAIN:=2 *(1-MANT)*(GAINL-GAINH)+GAINH
j som kun kræver 1 multiplikation i stedet for 2, idet multiplikation med 2 blot svarer til et venstre skift. Hvis 25 de lagrede værdier GAINH og GAINL er "rene" tal, kræves ikke yderligere beregninger, men er der tale om dB-værdier, skal der finde en omsætning sted fra dB til "rent" tal, før det kan bruges i den videre beregning.
Hvis der i niveaudetektoren benyttes kvadrering uden 30 efterfølgende kvadratrodsuddragning, skal interpolationsform-• len ændres passende, idet man skal huske, at MANT i så fald er et kvadreret tal.
Til slut findes det digitale udgangssignal y(n) ved den simple formel 35 y(n):=x(n)-GAIN, hvor GAIN er et "rent" tal (dvs. ikke i dB).
Claims (8)
1. Digital kompressor omfattende en niveaudetektor, en forstærkningsfaktorberegningsenhed og en signalmultiplikator, hvor niveaudetektoren ud fra et digitalt indgangssig- 5 nal genererer et niveausignal, og forstærkningsfaktorberegningsenheden ud fra dette niveausignal genererer en forstærk- ^ ningsfaktor, hvormed det digitale indgangssignal multipliceres i signalmultiplikatoren for frembringelse af et komprimeret eller ekspanderet digitalt udgangssignal, k e n-10 detegnet ved, at forstærkningsfaktorberegningsenheden omfatter: a) en adressegenerator, der konverterer det digitale signal til et "floating point"-format med en normaliseret mantisse og en eksponent, 15 b) en reduceret tabel indeholdende programmerbare forstærkningsfaktorer, beliggende med en fast indbyrdes ; indgangssignalniveauafstand målt i dB (f.eks. 6 dB), c) en interpolator, som går ud fra mantissen fra adres segeneratoren og tabelværdier for forstærkningsfak-20 torer i tabellen, hvis adresser beregnes ved hjælp af ovennævnte eksponent, genererer den aktuelle ønskede forstærkningsfaktor ved en simpel interpolation mellem tabelværdierne, hvilken forstærkningsfaktor afgives til signalmultiplikatoren. 25
2. Kompressor ifølge krav 1, kendetegnet ved, at niveaudetektoren frembringer en simpel absolutværdi af det digitale indgangssignal, som filtreres med en dynamisk, programmerbar tidskonstant. 30
3. Kompressor ifølge krav 1,kendetegnet ved, at niveaudetektoren frembringer en kvadrering af det digitale indgangssignal, som filtreres med en dynamisk, programmerbar tidskonstant, hvorefter kvadratroden uddrages 35 af signalet for dannelse af et digitalt RMS-indgangsniveau-signal. DK 176190 B1 7 j j
4. Kompressor ifølge krav 1, kendetegnet I ved, at niveaudetektoren frembringer en kvadrering af det I digitale indgangssignal, som filtreres med en dynamisk, i programmerbar tidskonstant, for dannelse af et digitalt ! , . 5 effekt-indgangsniveausignal. 4
5. Kompressor ifølge et vilkårligt af kravene 1-4, kendetegnet ved, at den reducerede tabel indeholder forstærkningsfaktorerne som lineære tal (dvs. ikke som 10 dB). j
6. Kompressor ifølge et vilkårligt af kravene 1-4, kendetegnet ved, at den reducerede tabel indeholder forstærkningsfaktorerne omsat til dB eller et tilsvarende 15 logaritmisk mål.
7. Kompressor ifølge et virkårligt af kravene 1-6, kendetegnet ved, at interpolatoren foretager en første ordens (lineær) eller højere ordens interpolation 20 under anvendelse af to eller flere tabelværdier.
8. Kompressor ifølge et virkårligt af kravene 1-7, kendetegnet ved, at filtreringen i niveaudetektoren foretages ved hjælp af et IIR-filter, hvis tidskonstant 25 er bestemt ved et programmerbart parameterpar (^attack* arelease)' den parameter, som benyttes, afhænger af, om det digitale indgangssignal er stigende (attack) eller faldende (release).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DK69393A DK176190B1 (da) | 1993-06-11 | 1993-06-11 | Programmerbar digital kompressor, især for et digitalt höreapparat |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DK69393 | 1993-06-11 | ||
DK69393A DK176190B1 (da) | 1993-06-11 | 1993-06-11 | Programmerbar digital kompressor, især for et digitalt höreapparat |
Publications (3)
Publication Number | Publication Date |
---|---|
DK69393D0 DK69393D0 (da) | 1993-06-11 |
DK69393A DK69393A (da) | 1994-12-12 |
DK176190B1 true DK176190B1 (da) | 2006-12-27 |
Family
ID=8096463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DK69393A DK176190B1 (da) | 1993-06-11 | 1993-06-11 | Programmerbar digital kompressor, især for et digitalt höreapparat |
Country Status (1)
Country | Link |
---|---|
DK (1) | DK176190B1 (da) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9832562B2 (en) | 2013-11-07 | 2017-11-28 | Gn Hearing A/S | Hearing aid with probabilistic hearing loss compensation |
-
1993
- 1993-06-11 DK DK69393A patent/DK176190B1/da not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9832562B2 (en) | 2013-11-07 | 2017-11-28 | Gn Hearing A/S | Hearing aid with probabilistic hearing loss compensation |
Also Published As
Publication number | Publication date |
---|---|
DK69393D0 (da) | 1993-06-11 |
DK69393A (da) | 1994-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4480333A (en) | Method and apparatus for active sound control | |
US5157623A (en) | Digital filter with dynamically variable filter characteristics | |
JP2623942B2 (ja) | 楽音信号発生装置 | |
US4422156A (en) | Digital filter device | |
DK176190B1 (da) | Programmerbar digital kompressor, især for et digitalt höreapparat | |
US6404832B2 (en) | Filter device and method of acquiring filter coefficients | |
AU6027498A (en) | Sample rate converter | |
US4728957A (en) | Digital frequency discriminator, for extracting a sinusoidal signal | |
US5089981A (en) | Hybrid form digital filter | |
US6101521A (en) | Data processing method and apparatus operable on an irrational mathematical value | |
CN105656450B (zh) | 整数运算的数字低通滤波方法及装置 | |
JP3041865B2 (ja) | デジタルフィルタ装置 | |
JP2001516544A (ja) | 離散フーリエ変換技術を用いたトーン検出 | |
SE444730B (sv) | Ljudsyntetisator | |
JP3890289B2 (ja) | ラグランジェ補間サンプリングレート変換装置 | |
JP2600237B2 (ja) | サンプリング周波数変換回路 | |
WO2005013105A1 (ja) | ルックアップテーブル及びデータ取得方法 | |
CN116360545B (zh) | 一种针对fpga的正弦调频信号生成方法及设备 | |
JPH0691417B2 (ja) | デジタルフィルタ装置 | |
CA1257002A (en) | Pole-zero analyzer | |
JPH0720047B2 (ja) | デイジタルフイルタ | |
CN114400642B (zh) | 一种有源电力滤波器的谐波提取及限流方法 | |
KR100353812B1 (ko) | 적응필터의에러검출장치및그방법 | |
JPH0691418B2 (ja) | デジタルフィルタ装置 | |
JP2517702B2 (ja) | イコライザ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A0 | Application filed | ||
PUP | Patent expired |