biquada — Un filtre numérique biquadratique glissant à usage général avec des paramètres de taux-a.
iskip (facultatif, 0 par défaut) -- s'il est non nul, l'initialisation est ignorée. Vaut 0 par défaut. (Nouveau dans la version 3.50 de Csound.)
asig -- signal d'entrée
biquada est un filtre numérique biquadratique à usage général de la forme :
a0*y(n) + a1*y[n-1] + a2*y[n-2] = b0*x[n] + b1*x[n-1] + b2*x[n-2]
Ce filtre a pour réponse en fréquence :
B(Z) b0 + b1*Z-1 + b2*Z-2
H(Z) = ---- = ------------------
A(Z) a0 + a1*Z-1 + a2*Z-2
On rencontre souvent ce type de filtre dans la littérature sur le traitement numérique du signal. Il accepte six coefficients de taux-a définis par l'utilisateur.
Voici un exemple de l'opcode biquada. Il utilise le fichier biquad.csd.
Exemple 104. Exemple de l'opcode biquada.
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> ; Select audio/midi flags here according to platform ; Audio out Audio in No messages -odac -iadc -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o biquad.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 2 ; Instrument #1. instr 1 ; Get the values from the score. idur = p3 iamp = p4 icps = cpspch(p5) afco expon 100, p3, 2000 arez line 0.8, p3, 0.99 ; Calculate the biquadratic filter's coefficients afcon = 2*3.14159265*afco/sr aalpha = 1-2*arez*cos(afcon)*cos(afcon)+arez*arez*cos(2*afcon) abeta = arez*arez*sin(2*afcon)-2*arez*cos(afcon)*sin(afcon) agama = 1+cos(afcon) am1 = aalpha*agama+abeta*sin(afcon) am2 = aalpha*agama-abeta*sin(afcon) aden = sqrt(am1*am1+am2*am2) ab0 = 1.5*(aalpha*aalpha+abeta*abeta)/aden ab1 = ab0 ab2 = 0 aa0 = 1 aa1 = -2*arez*cos(afcon) aa2 = arez*arez ; Generate an input signal. axn vco 1, icps, 1 ; Filter the input signal. ayn biquada axn, ab0, ab1, ab2, aa0, aa1, aa2 outs ayn*iamp/2, ayn*iamp/2 endin </CsInstruments> <CsScore> ; Table #1, a sine wave. f 1 0 16384 10 1 ; Sta Dur Amp Pitch i 1 0.0 5.0 20000 6.00 e </CsScore> </CsoundSynthesizer>