"Fred Marshall" <

[email protected]_the_x.acm.org> wrote in message news:<

[email protected]>...

> "Matt Timmermans" <[email protected]> wrote in message

> news:[email protected] .

> > "Fred Marshall" <[email protected]_the_x.acm.org> wrote in message

> > news:Cc%[email protected]

> > >

> > > What are you needing to do? What's the application?

> >

> > Every now and then it annoys me that the sinc filter's impulse response

> only

> > falls off as 1/t, and I wonder if there's an alternative that dacays more

> > quickly. It would be useful for designing pairs of

> > antialiasing+reconstruction filters that limit the worst-case magnitude of

> > reconstructed samples.

>

> Matt,

>

> Absolutely there are filters that decay faster than 1/t! I believe a

> windowing method gives them to you as follows:

> 1) Start with a perfect filter.

> 2) Convolve the *filter* response with a sinc - this gives you the response

> you'd get with a time limited filter as in any FIR.

> Alternately:

> 1) Start with the same filter.

> 2) Convolve the filter impulse response with 0.5*Dir(-T)+Dir(0)+Dir(+T)

> where T is the frequency sampling interval and "Dir" is the Dirichlet (like

> a sinc or could be substitutedwith sinc() if this is continuous instead of

> discrete) that has zero crossings at intervals of T.

> This filter decays as 1/t^3.

> Similarly, you can create other sums of Dirs or sincs that have even faster

> decay using longer sequences with binomial series coefficients where "a" is

> an even integer such as:

> 1

> 1.0*sinc(0) decays as 1/t

> 1 2 1

> 0.5*sinc(-T)+1.0*sinc(0)+0.5*sinc(T) decays as 1/t^3

> 1 3 5 3 1

> (1/12)*sinc(-2T)+0.25*sinc(-T)+1.0*sinc(0)+0.25*sinc(T)+(1/12)*sinc(2T)

> decays as 1/t^5

> 1 4 8 12 8 4 1

> ... decays as 1/t^7

> etc.

> Another way to say this is that you use a limited set of these as basis

> functions to build the filter in place of the sinc. Notice that each is

> normalized to 1.0 weighting of the sinc at the peak.

> Because of this, you can build a function that is sinc-convolved and then

> simply add the trailing sample values at the end.

>

> So, if you start with a filter that would be sinc convolved - with sharp

> edges, then simply add two samples at the end that are 1/2 of the original

> last samples to the sequence. The filter impulse response will increase by

> two samples and the continuous evaluation of it will decay as 1/t^3. I

> think this works......

>

> There's a rule that goes like this:

> Look at the opposite Fourier domain of the function - the region that is of

> "limited support" - i.e. time-limited or band-limited. Examine the edges of

> the function. Find the lowest order derivative of that function that isn't

> zero. If the order of the derivative is "a", then the function decays in

> the opposite domain as 1/t^(a+1).

>

> I'm not sure what this has to do with limiting the worst case magnitude of

> reconstructed samples..... unless you have a situation where the bandwidth

> of the sequence wasn't guaranteed to meet the Nyquist criterion to begin

> with..... there are pathological cases like this. We dealt with one of

> those here not too long ago (months ago).

>

> I may have "flipped" a domain in the discussion above here and there - hope

> you can figure it out OK.

>

> Fred
Matt,

I got to thinking about this a bit more - it's been a long time!

First, if you have a periodic and sampled frequency response then that

corresponds to a periodic time response which is often simply a

representation of a time-limited response.

In that case, you can compute the frequency response between frequency

samples by convolving the frequency samples with a Dirichlet kernel

(like a sinc). The appropriate Dirichlet will have periodic zeros on

the sample points so the convolution is really just a superposition of

Dirichlets whose peaks are weighted by the sample values. Pretty

simple.

If you start with a brick wall filter then all of the samples are

equal so you have a "picket fence" sort of overlapping of Dirichlet

kernels of the same size. If the span of nonzero samples is less than

the period span you're using then the frequency response decays as

1/f.

Similarly, you can compute the continuous time response of a brick

wall filter by interpolating the samples with a sinc or Dirichlet and,

as you've pointed out, the impulse response decays as 1/t.

You get 1/f if the time window or impulse response has nonzero edges.

You get 1/t if the frequency window or frequency response has nonzero

edges.

To get 1/f^N you have to deal with the time window or you can deal

with the frequency response directly.

To get 1/t^N you have to deal with the frequency window or you can

deal with the time response directly.

In the direct approach, you construct the function using something

different than a sinc or Dirichlet.

Let's take the case where we want 1/t^3 impulse response behavior from

something like a brick wall filter.

Let's assume continuous, not periodic functions in both domains for

now.

We start with the time impulse response of the brick wall which is a

sinc and we'll have it's peak value be 1.0.

This decays as 1/t.

Now, add two sincs on either side of the original sinc with weights

0.5 each. the peaks of these added sincs are at the first zeros of

the original sinc (the zeros adjacent to the peak). The composite

result decays as 1/t^3 and has a wider "main lobe" or peak.

Otherwise, it looks much like a sinc.

The resulting frequency response is a raised cosine - not very much

like a brick wall. You apparently pay a lot in frequency to get the

1/t^3 result!! That makes sense because you've effectively reduced

the temporal extent of the impulse response which corresponds to

widening the frequency response or widening the intraband transitions.

Here, the brick wall edge has been widened to take up the entire

lowpass band.

If you truncate the sinc then there's no decay to worry about.

Further, if you truncate the sinc and do some shaping on it then you

can get back some of the lowpass frequency character you want. That's

the same as FIR filter design of a lowpass.

If you look at various "raised cosine" filters where the cosine shape

is of various widths at the band edge you'll see that the decay of the

impulse response corresponds to the width of the transition region.

Now, all of this has more or less assumed that the brick wall filter

is the well-known brick wall at fs/2. If the filter is of lower

passband, then the time response can be wider in the peak region and

can decay rapidly as discussed previously. Now, I don't think it will

work for half-band filters because the constructed composite binomial

series type sinc kernel will destroy the desired temporal zeros.

Fred