mirror of
https://github.com/cookiengineer/audacity
synced 2026-01-13 08:05:52 +01:00
Fix for bug 1026
This commit is contained in:
@@ -306,13 +306,20 @@
|
||||
; remember that snd-biquad uses the opposite sign convention for a_i's
|
||||
; than Matlab does.
|
||||
|
||||
; convenient biquad: normalize a0, and use zero initial conditions.
|
||||
; convenient biquad: normalize a0, and use zero initial conditions.
|
||||
(defun nyq:biquad (x b0 b1 b2 a0 a1 a2)
|
||||
(if (< a0 1.0)
|
||||
(error (format t "a0 < 1 (unstable parameter) in biquad~%")))
|
||||
(if (<= a0 0.0)
|
||||
(error (format nil "a0 < 0 (unstable parameter a0 = ~A) in biquad~%" a0)))
|
||||
(let ((a0r (/ 1.0 a0)))
|
||||
(snd-biquad x (* a0r b0) (* a0r b1) (* a0r b2)
|
||||
(* a0r a1) (* a0r a2) 0 0)))
|
||||
(setf a1 (* a0r a1)
|
||||
a2 (* a0r a2))
|
||||
(if (or (<= a2 -1.0) (<= (- 1.0 a2) (abs a1)))
|
||||
(error (format nil
|
||||
"(a2 <= -1) or (1 - a2 <= |a1|) (~A a1 = ~A, a2 = ~A) in biquad~%"
|
||||
"unstable parameters" a1 a2)))
|
||||
(snd-biquad x (* a0r b0) (* a0r b1) (* a0r b2)
|
||||
a1 a2 0 0)))
|
||||
|
||||
|
||||
(defun biquad (x b0 b1 b2 a0 a1 a2)
|
||||
|
||||
Reference in New Issue
Block a user