pvscfs

pvscfs — Coefficient tout pôle par analyse cepstrale.

Description

Cet opcode prend un signal pvs au format AMP *, applique la transformée de cepstre et calcule les coefficients d'un filtre tout pôle.

Syntaxe

kCoef[],krms,kerr  pvscfs fsig, iord[,imod]

Initialisation

iord -- ordre du filtre tout pôle.

imod -- mode de stabilisation du filtre (0 = pas de stabilisation ; 1 = reflexion de pôle ; 2 = limitation de pôle ; vaut 1 par défaut).

Exécution

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

krms -- valeur efficace estimée du signal source.

kerr -- erreur (ou résidu).

fsig -- signal d'entrée pvs signal au format PV_AMP_*.

Cet opcode fait partie d'une suite d'opcodes de prédiction linéaire sur un flux. Il prend un fsig, applique une transformée de cepstre, retenant iord coefficients, et calcule les coefficients pour un filtre tout pôle. Contrairement au cas de la prédiction linéaire, le filtre résultant peut être instable. Pour résoudre ce problème, deux méthodes de stabilisation sont offertes : les pôles peuvent être réfléchis à l'intérieur du cercle unité, ou limités à celui-ci. C'est plutôt gourmand en calcul, si bien que l'on a aussi l'option de ne pas l'utiliser (si le cas particulier le permet).

Exemples

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

Exemple 790. Exemple de l'opcode pvscfs.

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

instr 1
a1 diskin "fox.wav",1,0,1
a2 diskin "flute.aiff",1,0,1
fenv pvsanal a1,1024,256,1024,1
kcfs[],krms,kerr pvscfs fenv,30
a3 allpole a2*krms*kerr,kcfs
a3 dcblock a3
out a3
endin

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


Voir aussi

lpcfilter, allpole