apoleparams

apoleparams — Extrait les paramètres d'un filtre tout pôle des coefficients.

Description

Cet opcode prend un tableau de coefficients d'un filtre tout pôle et produit un tableau de paramètres de filtre tout pôle sous la forme de paires de fréquence et de largeur de bande.

Syntaxe

kPar[]apoleparams kCoef[] 

Exécution

kCoef[] -- coefficients du filtre tout pôle. (tableau de la taille de l'ordre du filtre).

kPar[] -- paramètres du filtre sous forme de paires de fréquence et de largeur de bande.

Cet opcode fait partie d'une suite d'opcodes de prédiction linéaire sur un flux. Il prend un tableau de paramètres de filtre tout pôle, les convertir en pôles du filtre, trie ceux-ci en ordre de fréquences croissantes, et les restitue sous formes de paires de fréquence et de largeur de bande. Les pôles à 0 Hz et à la fréquence de Nyquist sont exclus, et chaque paire de pôles conjugués est représentée par une simple paire de paramètres. Pour un filtre d'ordre M, M coefficients sont transformés en M/2 paires de fréquence et de largeur de bande.

Exemples

Voici un exemple de l'opcode apoleparams utilisant un signal audio en entrée comme source lpc. Il utilise le fichier apoleparams.csd.

Exemple 60. Exemple de l'opcode apoleparams.

Voir les sections Audio en temps réel et Options de la ligne de commande pour plus d'information sur l'utilisation des options de la ligne de commande.

<CsoundSynthesizer>
<CsOptions>
-odac -d
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 64
nchnls = 1
0dbfs = 1

gifw ftgen 0,0,1024,20,2,1

instr 1
kper init sr
a1 diskin "flute.aiff",1,0,1
kcfs[],krms,kerr,kcps lpcanal a1,1,512,1024,10,gifw
kpar[] apoleparams kcfs
if kper >= sr then
kcnt = 0
kper = 0
endif
kper += ksmps
while kcnt < 5 do
  printf "t:%.1f filter %d freq: %.1f bw: %.1f\n", kcnt+1, times:k(), kcnt, kpar[kcnt], kpar[kcnt+1]
  kcnt += 1
od
out a1
endin

</CsInstruments>
<CsScore>
i1 0 20
</CsScore>
</CsoundSynthesizer>


Voir aussi

lpcanal, resonbnk