pvscfs — Coefficient tout pôle par analyse cepstrale.
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.
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).
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).
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>