DSPRelated.com
Forums

Effect of Nonlinear Group Delay on Signals

Started by JM1970 September 3, 2009
Hello, 
I am trying to model the effect of group delay of an analog filter with
complex transfer function H(f) on a phase modulated signal s(t), with a
complex spectrum S(f). The analog filter I would like employ is a Chebyshev
n=4, with 0.1dB ripple, but the exact filter is not important right now.  

In continuous time, the answer seems simple:  The filtered signal is just
the inverse fourier transform of the product of S(f) and H(f).  

The concept for my discrete time model is the same, but I am unsure if it
volates any laws of DSP.  If I take N samples of s(t)at a rate fs, then
perform an FFT of length Nfft=N,it is sampled in the frequency domain at
intervals nfs/N, where n=0:N-1. If I sample the complex filter transfer
function at these intervals, I get phasors H(f) that I can directly
multiply the spectrum S(f)by to get the filtered spectrum SF(f), where
f=n*fs/N.  To get the filtered singal samples sf(nTs), perform the IFFT of
SF(f).  

If there is a way to create a digital Chebyshev filter with the same
magnigude and phase characteristics as an analog Chebyshev filter (or
approximately), then it would seem possible to perform a fast convolution
of the sampled signal, and the impulse response of the filter. Is there a
way to design a digital Chebyshev filter with phase equivalent to an analog
counterpart?  I use linear-phase FIRs most of the time.

Thanks,
John M. 







On Sep 3, 10:54&#4294967295;pm, "JM1970" <ra...@sbcglobal.net> wrote:

> I am trying to model the effect of group delay of an analog filter with > complex transfer function H(f) on a phase modulated signal s(t), with a > complex spectrum S(f). The analog filter I would like employ is a Chebyshev > n=4, with 0.1dB ripple, but the exact filter is not important right now. &#4294967295; > > In continuous time, the answer seems simple: &#4294967295;The filtered signal is just > the inverse fourier transform of the product of S(f) and H(f). &#4294967295; > > The concept for my discrete time model is the same, but I am unsure if it > volates any laws of DSP. &#4294967295;If I take N samples of s(t)at a rate fs, then > perform an FFT of length Nfft=N,it is sampled in the frequency domain at > intervals nfs/N, where n=0:N-1. If I sample the complex filter transfer > function at these intervals, I get phasors H(f) that I can directly > multiply the spectrum S(f)by to get the filtered spectrum SF(f), where > f=n*fs/N. &#4294967295;To get the filtered singal samples sf(nTs), perform the IFFT of > SF(f). &#4294967295;
all this is fine, except that you will be performing circular convolution with your FFT, multiply, IFFT process. you probably need to use either "overlap-add" or "overlap-save".
> If there is a way to create a digital Chebyshev filter with the same > magnigude and phase characteristics as an analog Chebyshev filter (or > approximately), then it would seem possible to perform a fast convolution > of the sampled signal, and the impulse response of the filter. Is there a > way to design a digital Chebyshev filter with phase equivalent to an analog > counterpart?
here is the deal with digital emulations of analog counterparts: analog filters are made up of adders (or subtractors) of signals, scalers (multiplication by constant) of signals, and integrators (w.r.t. time) of signals. integration is the same as multiplying by 1/ s. digital filters are made up of adders (or subtractors) of signals, scalers (multiplication by constant) of signals, and delay elements (shifting w.r.t. time). delay is the same as multiplying by 1/z = e^(- sT). the problem is that we cannot represent 1/s exactly. it would be 1/s = -T/log(1/z). (T = 1/Fs) so wherever you see an integrator, just replace it with -T/log(1/z). but we don't have anything that performs log(1/z), so we approximate 1/s = T/2 * (1 + 1/z)/(1 - 1/z) so, wherever we see an integrator in our analog filter, we replace it with the expression above which is in terms of delays. the magnitude and phase characteristics are the same as the analog, except they happen at slightly different frequencies. r b-j
On 4 Sep, 04:54, "JM1970" <ra...@sbcglobal.net> wrote:
> Hello, > I am trying to model the effect of group delay of an analog filter with > complex transfer function H(f) on a phase modulated signal s(t), with a > complex spectrum S(f). The analog filter I would like employ is a Chebysh=
ev
> n=3D4, with 0.1dB ripple, but the exact filter is not important right now=
. =A0
> > In continuous time, the answer seems simple: =A0The filtered signal is ju=
st
> the inverse fourier transform of the product of S(f) and H(f). =A0 > > The concept for my discrete time model is the same, but I am unsure if it > volates any laws of DSP. =A0If I take N samples of s(t)at a rate fs, then > perform an FFT of length Nfft=3DN,it is sampled in the frequency domain a=
t
> intervals nfs/N, where n=3D0:N-1. If I sample the complex filter transfer > function at these intervals, I get phasors H(f) that I can directly > multiply the spectrum S(f)
Depends on what you mean by 'phasors.' You need to multiply with the complex-valued coefficients, not just the phase terms.
> by to get the filtered spectrum SF(f), where > f=3Dn*fs/N. =A0To get the filtered singal samples sf(nTs), perform the IF=
FT of
> SF(f). =A0 > > If there is a way to create a digital Chebyshev filter with the same > magnigude and phase characteristics as an analog Chebyshev filter (or > approximately),
Sure it is. This is a standard method for designing IIRs that is at least mentioned in most texts on DSP, but not always described in very great detail. If you want to roll your own, get a book on filter design (Antoniou's 'Digital Signal Processing' is a good place to find all the gory details.) Or find a filter design package.
> then it would seem possible to perform a fast convolution > of the sampled signal, and the impulse response of the filter. Is there a > way to design a digital Chebyshev filter with phase equivalent to an anal=
og
> counterpart? =A0I use linear-phase FIRs most of the time.
The Chebychev is an IIR filter. The phase response is nonlinear, but the computation times can be far less than for FIRs, as there are there are significantly fewer coefficents in the IIRs. So you will have to decide what means more to you: Small computational costs or linear phase responses. Rune
On Thu, 03 Sep 2009 21:54:09 -0500, "JM1970" <rakim@sbcglobal.net>
wrote:

>If there is a way to create a digital Chebyshev filter with the same >magnigude and phase characteristics as an analog Chebyshev filter (or >approximately),
DSP Tips & Tricks Precise Filter Design Berchin, G. IEEE Signal Processing Magazine Jan. 2007 Volume: 24, Issue: 1 pp. 137-139 MATLAB code at: http://apollo.ee.columbia.edu/spm/external/tipsandtricks/files/TandT_Jan2007.zip Either or both also available directly from me. --Greg
>On Thu, 03 Sep 2009 21:54:09 -0500, "JM1970" <rakim@sbcglobal.net> >wrote: > >>If there is a way to create a digital Chebyshev filter with the same >>magnigude and phase characteristics as an analog Chebyshev filter (or >>approximately), > >DSP Tips & Tricks >Precise Filter Design >Berchin, G. >IEEE Signal Processing Magazine >Jan. 2007 >Volume: 24, Issue: 1 >pp. 137-139 > >MATLAB code at: >http://apollo.ee.columbia.edu/spm/external/tipsandtricks/files/TandT_Jan2007.zip > >Either or both also available directly from me. > >--Greg >Greg, I found the FDLS filter design to be particularly pertinent to my
situation. I read both the IEEE article and the example file you listed. Right after the original post, I decided, in the interest of time, to model the subject filter using bilinear transformation, but as pointed out in other posts, the accuracy of this approach is limited. I am impressed with the accuracy indicated in the IEEE article, although it appears I will have to tinker with the number of taps to achieve it. Thanks everyone for your inputs! John M.
On 9 Sep, 06:38, "JM1970" <ra...@sbcglobal.net> wrote:

> Right after the original post, I decided, in the interest of time, to model > the subject filter using bilinear transformation, but as pointed out in > other posts, the accuracy of this approach is limited. &#4294967295;
Discrete-time (DT) versions of continuous-time (CT) prototypes can only be approximations to the analog prototype, so the 'accuracy' has been compromised in the moment you decide to use a DT version of the Chebychev filter. Once you decide to make a DT Cheb filter, the obvious question you will have to answer is "why don't you use the standard method for designing the Cheb filter?" If problems occur in your application, the fact that you designed a standard filter by non-standard means will undermine other people's confidence in you, and their confidence in your competence and skills. In summary: - If you decide to use a Cheb filter, design it by the standard method. - If you have any valid arguments why the standard Chebs are unsuitable for your application, don't use the Cheb. And since the fact that you need such advice tells me something about your skill level, I'll add another couple of advices for free: - Learn the basics of filters and filter design. - There are some standard filtersing problems, where the standard Chebs are among the standard solutions. There are very, very few standard applications where the properties of the standard IIR filters render them useless. So you should *really* know what you are talking about before you start criticising the standard solutions to the standard problems. Rune
JM1970 wrote:
> Hello, > I am trying to model the effect of group delay of an analog filter with > complex transfer function H(f) on a phase modulated signal s(t), with a > complex spectrum S(f). The analog filter I would like employ is a Chebyshev > n=4, with 0.1dB ripple, but the exact filter is not important right now. > > In continuous time, the answer seems simple: The filtered signal is just > the inverse fourier transform of the product of S(f) and H(f).
How does that tell you the effect of (frequency dependent) group delay?
> The concept for my discrete time model is the same, but I am unsure if it > volates any laws of DSP. If I take N samples of s(t)at a rate fs, then > perform an FFT of length Nfft=N,it is sampled in the frequency domain at > intervals nfs/N, where n=0:N-1. If I sample the complex filter transfer > function at these intervals, I get phasors H(f) that I can directly > multiply the spectrum S(f)by to get the filtered spectrum SF(f), where > f=n*fs/N. To get the filtered singal samples sf(nTs), perform the IFFT of > SF(f).
By modeling the impulse response, you get an impulse-invariant design. Google that to see what its disadvantages might be.
> If there is a way to create a digital Chebyshev filter with the same > magnigude and phase characteristics as an analog Chebyshev filter (or > approximately), then it would seem possible to perform a fast convolution > of the sampled signal, and the impulse response of the filter. Is there a > way to design a digital Chebyshev filter with phase equivalent to an analog > counterpart? I use linear-phase FIRs most of the time.
Convolution is an FIR process. A Chebychev filter is an IIR structure. You would do well to design it in the usual way. Try the Java ap at http://www.dsptutor.freeuk.com/IIRFilterDesign/IIRFilterDesign.html Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
On Thu, 03 Sep 2009 21:54:09 -0500
"JM1970" <rakim@sbcglobal.net> wrote:

> Hello, > I am trying to model the effect of group delay of an analog filter > with complex transfer function H(f) on a phase modulated signal s(t), > with a complex spectrum S(f). The analog filter I would like employ > is a Chebyshev n=4, with 0.1dB ripple, but the exact filter is not > important right now. > > In continuous time, the answer seems simple: The filtered signal is > just the inverse fourier transform of the product of S(f) and H(f). > > The concept for my discrete time model is the same, but I am unsure > if it volates any laws of DSP. If I take N samples of s(t)at a rate > fs, then perform an FFT of length Nfft=N,it is sampled in the > frequency domain at intervals nfs/N, where n=0:N-1. If I sample the > complex filter transfer function at these intervals, I get phasors > H(f) that I can directly multiply the spectrum S(f)by to get the > filtered spectrum SF(f), where f=n*fs/N. To get the filtered singal > samples sf(nTs), perform the IFFT of SF(f). > > If there is a way to create a digital Chebyshev filter with the same > magnigude and phase characteristics as an analog Chebyshev filter (or > approximately), then it would seem possible to perform a fast > convolution of the sampled signal, and the impulse response of the > filter. Is there a way to design a digital Chebyshev filter with > phase equivalent to an analog counterpart? I use linear-phase FIRs > most of the time. > > Thanks, > John M. >
This might be a stupid question, but wouldn't it be easier just to model the real analog filter in SPICE, write s(t) out to a .WAV file, and have SPICE play it through and save the result? This project seems to involve a great deal of wheel reinvention. -- Rob Gaddi, Highland Technology Email address is currently out of order
>On 9 Sep, 06:38, "JM1970" <ra...@sbcglobal.net> wrote: > >> Right after the original post, I decided, in the interest of time, to
mod=
>el >> the subject filter using bilinear transformation, but as pointed out
in
>> other posts, the accuracy of this approach is limited. =A0 > >Discrete-time (DT) versions of continuous-time (CT) prototypes >can only be approximations to the analog prototype, so the >'accuracy' has been compromised in the moment you decide >to use a DT version of the Chebychev filter. > >Once you decide to make a DT Cheb filter, the obvious question >you will have to answer is "why don't you use the standard >method for designing the Cheb filter?" > >If problems occur in your application, the fact that you >designed a standard filter by non-standard means will >undermine other people's confidence in you, and their >confidence in your competence and skills. > >In summary: > >- If you decide to use a Cheb filter, design it by the > standard method. >- If you have any valid arguments why the standard Chebs > are unsuitable for your application, don't use the Cheb. > >And since the fact that you need such advice tells me >something about your skill level, I'll add another couple >of advices for free: > >- Learn the basics of filters and filter design. >- There are some standard filtersing problems, where > the standard Chebs are among the standard solutions. > >There are very, very few standard applications where the >properties of the standard IIR filters render them useless. >So you should *really* know what you are talking about >before you start criticising the standard solutions to >the standard problems. > >Rune >
Rune, I got all excited about the least squares approach due to its seeming flexibility in creating filters with arbitrary responses. Your points are well taken. Thank you. John M.
>JM1970 wrote: >> Hello, >> I am trying to model the effect of group delay of an analog filter
with
>> complex transfer function H(f) on a phase modulated signal s(t), with
a
>> complex spectrum S(f). The analog filter I would like employ is a
Chebyshev
>> n=4, with 0.1dB ripple, but the exact filter is not important right
now.
>> >> In continuous time, the answer seems simple: The filtered signal is
just
>> the inverse fourier transform of the product of S(f) and H(f). > >How does that tell you the effect of (frequency dependent) group delay? > >> The concept for my discrete time model is the same, but I am unsure if
it
>> volates any laws of DSP. If I take N samples of s(t)at a rate fs,
then
>> perform an FFT of length Nfft=N,it is sampled in the frequency domain
at
>> intervals nfs/N, where n=0:N-1. If I sample the complex filter
transfer
>> function at these intervals, I get phasors H(f) that I can directly >> multiply the spectrum S(f)by to get the filtered spectrum SF(f), where >> f=n*fs/N. To get the filtered singal samples sf(nTs), perform the IFFT
of
>> SF(f). > >By modeling the impulse response, you get an impulse-invariant design. >Google that to see what its disadvantages might be. > >> If there is a way to create a digital Chebyshev filter with the same >> magnigude and phase characteristics as an analog Chebyshev filter (or >> approximately), then it would seem possible to perform a fast
convolution
>> of the sampled signal, and the impulse response of the filter. Is there
a
>> way to design a digital Chebyshev filter with phase equivalent to an
analog
>> counterpart? I use linear-phase FIRs most of the time. > >Convolution is an FIR process. A Chebychev filter is an IIR structure. >You would do well to design it in the usual way. Try the Java ap at >http://www.dsptutor.freeuk.com/IIRFilterDesign/IIRFilterDesign.html > >Jerry >-- >Engineering is the art of making what you want from things you can get. >&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; >Jerry,
Thanks for the link to the coefficient calculator. I will research inpulse invariant designs per your suggestion. In answer to your question, I figured the product of the two complex quantities H(f) and S(f) - the complex filter response and the complex signal response, respectively - would give the magnitude and phase response of the output Y(f). If H(f)=A1(f)*exp(2pi*f*t+phi(f)) and s(f)=A2(f)*exp(2pi*f*t), then the product Y(f)=A1A2exp(2*pi*f*phi(f)), should be the filtered PSD, and if the IFFT of this is computed, it should yield the filtered signal including the effects of the group delay and attenuation characteristic of the filter described by H(f) (I think). John M.