Karplus-Stærk algoritme

Karplus-Strong strengsyntesealgoritmen  er en metode til lydsyntese , der består i at sende et kort signal gennem en forsinkelseslinje med et filter. Afhængigt af parametrene kan den resulterende lyd ligne lyden af ​​en streng, ekstraheret ved et hak eller bank , eller til lydene fra nogle percussion-instrumenter .

Denne teknik kan opfattes som feedback-line subtraktiv-granulær syntese , svarende til et kamfilter til z-transform analyse . Det kan også betragtes som det enkleste tilfælde af bølgesyntese , da forsinkelseslinjen fungerer som et lager for en periode af signalet.

Alexander Strong opfandt algoritmen, og Kevin Karplus var den første til at analysere dens funktion. Sammen udviklede de software- og hardwareimplementeringer af algoritmen, herunder en implementering på VLSI . De kaldte algoritmen "Digitar" ( et spil med ord fra den engelske  digital guitar  - digital guitar).

Sådan virker det

  1. Et kort signal (L samples lange) genereres. Den originale algoritme brugte et kort hvidt støjsignal , men ethvert bredbåndssignal såsom chirp , savtand eller firkantbølgeperiode kan bruges.
  2. Signalet føres samtidigt til udgangen og indgangen på forsinkelseslinjen med en længde på L-tællinger.
  3. Udgangen fra forsinkelseslinjen føres gennem et lydfilter . For at opretholde stabil positiv feedback skal filterforstærkningen være strengt mindre end 1 for alle frekvenser. Som filter kan der bruges et enkelt-polet lavpasfilter (som på billedet). I den originale algoritme bestod filteret af et gennemsnit af to tilstødende prøver, da et sådant filter giver dig mulighed for at undvære en multiplikator og kun bruge additions- og bitskiftoperationer . Filterets egenskaber er afgørende for den harmoniske struktur af det dæmpede signal.
  4. Filtrets output blandes samtidigt med outputtet og føres til indgangen på forsinkelseslinjen.

Strengtuning

Grundfrekvensen (mere præcist, den laveste ikke-nul harmoniske) af det modtagne signal er den laveste frekvens, ved hvilken sweep-responsen af ​​lagfasen og filteret i scenen er lig med . Den nødvendige faseforsinkelse D for en given tonehøjde F 0 beregnes med formlen D = F s / F 0 , hvor F s  er samplingsfrekvensen .

Længden af ​​enhver digital forsinkelseslinje er et heltalsmultipel af samplingsperioden. For at opnå en fraktionel forsinkelse anvendes interpolerende filtre med parametre svarende til faseforsinkelsen ved den valgte grundfrekvens. IIR- eller FIR- filtre kan bruges , dog har FIR-filtret den fordel, at transient støj undertrykkes, hvis fraktionelle lag ændres over tid. Den enkleste måde at beregne fraktioneret forsinkelse på er at lineært interpolere to samples (f.eks . s (4.2) = 0,8 s (4) + 0,2 s (5)). Hvis faseforsinkelsen ændres med frekvensen, kan de harmoniske forstærkes eller dæmpes fra grundfrekvensen. Den originale algoritme brugte gennemsnittet af to på hinanden følgende samples, hvilket gjorde det muligt at implementere filteret ved kun at bruge addition og bitskift, hvilket gjorde implementeringen meget effektiv.

Det originale arbejde i 1983 påpeger, at Z-transformanalyse kan opnå frekvenser og henfaldstider for harmoniske med højere nøjagtighed.

Resultatet af Karplus-Strong-algoritmen kan høres i den vedhæftede lydfil. Algoritmen bruger en forstærkning på 0,98 med successiv frekvensblødgøring af et førsteordens lavpasfilter. Tonen for anden oktav lyder , 220 Hz .

Karplus-Strong #1
F 1 = 220 Hz
Hjælp til afspilning

En konstant periode (det vil sige længden af ​​forsinkelseslinjen) frembringer en lyd, der ligner strenge eller en klokke. En kraftig stigning i perioden umiddelbart efter signalets start frembringer trommelignende lyde.

Algoritmeforbedringer

Alex Strong og Kevin Karplus indså, at algoritmen er fysisk analog med at registrere afbøjningen af ​​en streng på et fast tidspunkt over tid, og filteret karakteriserer strengens energitab i én periode. Julius O. Smith [1] og andre forskere generaliserede ideen om algoritmen til den digitale bølgeledermetode , som også kan anvendes til syntese af vind- og membraninstrumenter. Det første sæt af udvidelser og generaliseringer blev præsenteret i et papir fra 1982 på International Computer Music Conference i Venedig og offentliggjort med tilføjelser i 1983 i Computer Music Magazine, i artiklen "Extensions of the Karplus Strong Plucked String Algorithm", af David Jaffe og Julius O. Smith [1] .

Alex Strong har skabt en mere avanceret modifikation ved hjælp af wavetables til syntetisering af plukkede instrumenter, offentliggjort som et patent.

Noter

  1. Jaffe & Smith, 1983 .

Litteratur

Links