Bug 87446 - Butterworth filters are miss-named.
Summary: Butterworth filters are miss-named.
Status: RESOLVED FIXED
Alias: None
Product: kst
Classification: Applications
Component: general (show other bugs)
Version: 1.x
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: kst
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-08-18 18:11 UTC by Netterfield
Modified: 2004-08-25 18:26 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Netterfield 2004-08-18 18:11:40 UTC
Version:           0.99-devel (using KDE 3.2 BRANCH >= 20040204, Mandrake Linux Cooker i586 - Cooker)
Compiler:          gcc version 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)
OS:                Linux (i686) release 2.6.3-7mdk

The pass filter plugins are labeled as butterworth filters but they are not.

Butterworth filters are causal, and have a complicated phase vs freq relationship...  See for example http://www-users.cs.york.ac.uk/~fisher/mkfilter/trad.html


The filter used is generally better than a butterworth (being 0 phase and acausal) but the name should be changed.

Perhaps just drop 'buttworth' from the short names, and add '0 phase butterworth' to the description.
Comment 1 Andrew Walker 2004-08-19 01:08:54 UTC
Hi Barth,

As I understand it (and its quite possible I don't) a Butterworth lowpass filter is defined by:
H = 1/(1+(D+D_0)^2n), where D_0 is the cutoff frequency and n the order. (Such a filter is preferable to a rectangular response function in the frequency domain as it prevents some unpleasent side-effects like ringing).
It is possible to generate causal code (such as given in the website you link to) to approximate a Butterworth filter. This is desirable for situations where you don't want to store all the preceeding values; of particular importance in linear circuits.
I think what we have is a Butterworth filter. If it isn't why would we refer to it (as you suggest) as a '0 phase butterworth' in the description.
Comment 2 Netterfield 2004-08-25 04:59:56 UTC
It appears to be at best ambiguous.  Common usage historically has referred to Butterworth filters as including the phase shift, but some sources do not mention this.

Consequently, I suggest that we use the unambiguous terminology "0 phase butterworth" in the description, so user's won't be expecting the phase shifts.

I suggest:
Plugin Name: Filter Low Pass
Description: Zero phase Butterworth
----
Input Vector - Y: C1-GYRO1   (ie, not "X-Array")
Input Scalar - Order: [           ] 
Input Scalar - Cutoff Freq/Samp Rate [       ] (ie, not "Cutoff Frequency")
----
Output Vector - Filtered [         ]  (ie, not "X Filtered")

and similar for the other filters....
Comment 3 Andrew Walker 2004-08-25 18:26:56 UTC
CVS commit by arwalker: 

Refer only to a zero phase Butterworth. Changed various names and descriptions.

CCMAIL: 87446-done@bugs.kde.org


  M +3 -3      butterworth_bandpass/butterworth_bandpass.cpp   1.4
  M +7 -7      butterworth_bandpass/butterworth_bandpass.xml   1.6
  M +2 -2      butterworth_bandstop/butterworth_bandstop.cpp   1.4
  M +7 -7      butterworth_bandstop/butterworth_bandstop.xml   1.6
  M +2 -2      butterworth_highpass/butterworth_highpass.cpp   1.5
  M +6 -6      butterworth_highpass/butterworth_highpass.xml   1.5
  M +2 -2      butterworth_lowpass/butterworth_lowpass.cpp   1.3
  M +6 -6      butterworth_lowpass/butterworth_lowpass.xml   1.5