From: FatScouser on
Hi,

I'm using an off-the-shelf DSP package to apply an FFT-based highpass
filter to a time-domain signal. This causes 'ringing' in the output, where
a sine wave appears from nowhere having the same frequency as the high pass
cut-off frequency. The DSP package does not provide much information about
how the filter works, only that it is FFT-based.

Working solely within the time domain, can anyone suggest what sort of
filter or filter settings I should be using so I don't see the rinning
artifacts?

Many thanks,

John
From: steveu on
>Hi,
>
>I'm using an off-the-shelf DSP package to apply an FFT-based highpass
>filter to a time-domain signal. This causes 'ringing' in the output,
where
>a sine wave appears from nowhere having the same frequency as the high
pass
>cut-off frequency. The DSP package does not provide much information
about
>how the filter works, only that it is FFT-based.
>
>Working solely within the time domain, can anyone suggest what sort of
>filter or filter settings I should be using so I don't see the rinning
>artifacts?

"FFT-based" doesn't say very much. It could just apply to a filter design
phase, or it could relate to the real time execution of the filter.

If you have ringing, I expect you are trying to achieve a sharp cutoff with
just a few filter elements. At its heart, time domain filtering is a
resonant process. If you want a sharp cutoff you need to use a few sharply
resonant elements, or a larger number of elements with a more damped
resonance. I think it should be obvious which of those two approaches will
yield the filter with the most ringing issues. Now, how you get from where
you are to where you want to be is going to take a bit more knowledge of
your filter software and how it is controlled.

Steve

From: Rune Allnor on
On 12 apr, 10:02, "FatScouser" <john.hague(a)n_o_s_p_a_m.truebit.co.uk>
wrote:
> Hi,
>
> I'm using an off-the-shelf DSP package to apply an FFT-based highpass
> filter to a time-domain signal. This causes 'ringing' in the output, where
> a sine wave appears from nowhere having the same frequency as the high pass
> cut-off frequency. The DSP package does not provide much information about
> how the filter works, only that it is FFT-based.
>
> Working solely within the time domain, can anyone suggest what sort of
> filter or filter settings I should be using so I don't see the rinning
> artifacts?

Ringing is part of the filter response. There is nothing
you can do to prevent it from happening.

What remains is to control it so that it stays within
acceptable limits. There are several factors that influence
ringing, like the width of stop-bands, notches and transition
bands.

A lot of amateurs don't understand these things, and write
an FFT-based routine that zeros an arbitrary set of DFT
coefficients. This is a certain way to intropduce these kinds
of artifacts.

To get a working filter,

1) Come up with a specification. Not for what you want (everybody
want all the benefits without all the drawbacks), but for what
you need (the benefit you can't do without and the drawbacks
you can live with).

2) Use a filter design package to find the filter that satisfies
the spec from 1).

Rune
From: FatScouser on
Hi,

Thanks a lot for your feedback. Specification details include:

1. High-pass filter with cut-off at 0.5 Hz. Cut-off precision is not
critical: a cut-off between 0.2 -> 0.8 Hz is fine.

2. This is a non-realtime calculation, so large computation time is no
problem.

3. A typical signal is a 25 second sample comprising 10000 points sampled
at 400 Hz.

Any help much appreciated!

John

On 12 apr, 10:02, "FatScouser" <john.hague(a)n_o_s_p_a_m.truebit.co.uk>
>wrote:
>> Hi,
>>
>> I'm using an off-the-shelf DSP package to apply an FFT-based highpass
>> filter to a time-domain signal. This causes 'ringing' in the output,
where
>> a sine wave appears from nowhere having the same frequency as the high
pass
>> cut-off frequency. The DSP package does not provide much information
about
>> how the filter works, only that it is FFT-based.
>>
>> Working solely within the time domain, can anyone suggest what sort of
>> filter or filter settings I should be using so I don't see the rinning
>> artifacts?
>
>Ringing is part of the filter response. There is nothing
>you can do to prevent it from happening.
>
>What remains is to control it so that it stays within
>acceptable limits. There are several factors that influence
>ringing, like the width of stop-bands, notches and transition
>bands.
>
>A lot of amateurs don't understand these things, and write
>an FFT-based routine that zeros an arbitrary set of DFT
>coefficients. This is a certain way to intropduce these kinds
>of artifacts.
>
>To get a working filter,
>
>1) Come up with a specification. Not for what you want (everybody
> want all the benefits without all the drawbacks), but for what
> you need (the benefit you can't do without and the drawbacks
> you can live with).
>
>2) Use a filter design package to find the filter that satisfies
> the spec from 1).
>
>Rune
>
From: Rune Allnor on
On 12 apr, 11:46, "FatScouser" <john.hague(a)n_o_s_p_a_m.truebit.co.uk>
wrote:
> Hi,
>
> Thanks a lot for your feedback. Specification details include:
>
> 1. High-pass filter with cut-off at 0.5 Hz. Cut-off precision is not
> critical: a cut-off between 0.2 -> 0.8 Hz is fine.
>
> 2. This is a non-realtime calculation, so large computation time is no
> problem.
>
> 3. A typical signal is a 25 second sample comprising 10000 points sampled
> at 400 Hz.

There is a lot to be desired here.

How much ripple can you accept in the pass band? What attenuation
at what frequency determines the stop-band?

One needs such information to be able come up with useful answers:

http://www.bores.com/courses/intro/filters/4_spec.htm

Rune