[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