[gstreamer-bugs] [Bug 632664] New: audioiirfilter: nonstandard definition of 'a' and 'b' coefficients for IIR filters
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Wed Oct 20 02:43:27 PDT 2010
https://bugzilla.gnome.org/show_bug.cgi?id=632664
GStreamer | gst-plugins-good | git
Summary: audioiirfilter: nonstandard definition of 'a' and 'b'
coefficients for IIR filters
Classification: Desktop
Product: GStreamer
Version: git
OS/Version: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-plugins-good
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: lsinger at caltech.edu
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME target: ---
GNOME version: ---
Created an attachment (id=172821)
--> (https://bugzilla.gnome.org/attachment.cgi?id=172821)
Proposed patch
audiofxbaseiirfilter and the derived elements audioiirfilter, audiochebband,
and audiocheblimit, use the following convention for the definition of an IIR
filter:
y[n] = a_n x[n] + a_1 x[n-1] + ... + a_M x[n-M] + b_1 y[n-1] + b_2 y[n-2] + ...
+ b[n-N].
The most common convention in signal processing literature, and also the
convention used by MATLAB, is:
a_0 y[n] + a_1 y[n-1] + ... + a_M y[n-M] = b_0 x[n] + b_1 x[n-1] + ... + b_N
x[n-N].
or, setting a_0 to 1 and moving all the terms but y[n] to the right hand side:
y[n] = b_0 x[n] + b_1 x[n-1] + ... + b_N x[n-N] - a_1 y[n-1] - a_2 y[n-2] - ...
- a_M y[n-M].
So, in the more common convention, the b's are the coefficients in the
nominator of the transfer function, and the a's are the coefficients in the
denominator of the transfer function (with no minus sign).
This patch modifies audiofxbaseiirfilter to use the latter, more common
convention, and modifies all of its derived classes accordingly. This should
make the properties of the audioiirfilter recognizable to more people,
especially those who learned digital signal processing with MATLAB.
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the Gstreamer-bugs
mailing list