DSPRelated.com
Forums

Can filter match both Magnitude and phase reponse

Started by gord_ao September 11, 2003
Hello folks,

I would really appreciate your insight in terms of how to design
digital filters to match both magnitude and phase of a narrow band
complex Analog gain(simple 1st order or 2nd or 3nd order gain). This
is for impedance matching in voice band. I understand Matlab can be
used to design FIR and IIR filters with arbitary magnitude reponse,
which is easy. However, there is no mention anywhere on how to match
phase response other than the group delay equalization. I really
think in order to approximately match a given low order complex gain,
both magnitude and phase should be matched. When I use bilinear
transform to tranfer the analog gain into digital domain, the phase
is no longer preserved.

Now I have seen some system using a FIR+ a low order IIR combination
to do this but I have could be find the theory beind it and how the
phase can be tuned.

Thanks a lot if you have any idea,

Gordon




Gordon-

> I would really appreciate your insight in terms of how to design
> digital filters to match both magnitude and phase of a narrow band
> complex Analog gain(simple 1st order or 2nd or 3nd order gain). This
> is for impedance matching in voice band. I understand Matlab can be
> used to design FIR and IIR filters with arbitary magnitude reponse,
> which is easy. However, there is no mention anywhere on how to match
> phase response other than the group delay equalization. I really
> think in order to approximately match a given low order complex gain,
> both magnitude and phase should be matched. When I use bilinear
> transform to tranfer the analog gain into digital domain, the phase
> is no longer preserved.
>
> Now I have seen some system using a FIR+ a low order IIR combination
> to do this but I have could be find the theory beind it and how the
> phase can be tuned.

What does the phase response look like? If it's something you can approximate
with
piece-wise linear, then you might use a few small all-pass FIR filters to get
what
you want.

Jeff Brower
system engineer
Signalogic



Most of the filter design techniques address the
problem of having a given amplitude response, while
optmizing some other parameters or under some other
constrains (such as filter length, group delay, etc.).
This is done by varying the phase. So, by
definition, you cannot specify phase at the same time.

What you are trying to do sounds like a digital echo
canceller. If you are using an FIR implementation,
and the target response has the same or shorter
length, you can just use inverse Fourier transform to
get the tap values. If the target response is longer,
the optimal (lease mean squared error) solution is to
perfectly match the response within the FIR window.
If you are using IIR implementation, you will have to
use other optimization methods.

I don't know any off-the-shelf Matlab routines that
can perform this task.

Hope that helps.

Feng

--- gord_ao <> wrote:

---------------------------------
Hello folks,

I would really appreciate your insight in terms of how
to design
digital filters to match both magnitude and phase of a
narrow band
complex Analog gain(simple 1st order or 2nd or 3nd
order gain). This
is for impedance matching in voice band. I understand
Matlab can be
used to design FIR and IIR filters with arbitary
magnitude reponse,
which is easy. However, there is no mention anywhere
on how to match
phase response other than the group delay
equalization. I really
think in order to approximately match a given low
order complex gain,
both magnitude and phase should be matched. When I use
bilinear
transform to tranfer the analog gain into digital
domain, the phase
is no longer preserved.

Now I have seen some system using a FIR+ a low order
IIR combination
to do this but I have could be find the theory beind
it and how the
phase can be tuned.

Thanks a lot if you have any idea,

Gordon
_____________________________________
Note: If you do a simple "reply" with your email
client, only the author of this message will receive
your answer. You need to do a "reply all" if you want
your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:

To Post:

To Leave:

Archives: http://www.yahoogroups.com/group/matlab

More DSP-Related Groups:
http://www.dsprelated.com/groups.php3

__________________________________


Feng-

> Most of the filter design techniques address the
> problem of having a given amplitude response, while
> optmizing some other parameters or under some other
> constrains (such as filter length, group delay, etc.).
> This is done by varying the phase. So, by
> definition, you cannot specify phase at the same time.

I don't believe that's accurate. Otherwise, FIR filter arbitrary magnitude
design
techniques (such as Parks-McClellan) would produce non-linear phase, which they
do
not.

-Jeff

> What you are trying to do sounds like a digital echo
> canceller. If you are using an FIR implementation,
> and the target response has the same or shorter
> length, you can just use inverse Fourier transform to
> get the tap values. If the target response is longer,
> the optimal (lease mean squared error) solution is to
> perfectly match the response within the FIR window.
> If you are using IIR implementation, you will have to
> use other optimization methods.
>
> I don't know any off-the-shelf Matlab routines that
> can perform this task.
>
> Hope that helps.
>
> Feng
>
> --- gord_ao <> wrote:
>
> ---------------------------------
> Hello folks,
>
> I would really appreciate your insight in terms of how
> to design
> digital filters to match both magnitude and phase of a
> narrow band
> complex Analog gain(simple 1st order or 2nd or 3nd
> order gain). This
> is for impedance matching in voice band. I understand
> Matlab can be
> used to design FIR and IIR filters with arbitary
> magnitude reponse,
> which is easy. However, there is no mention anywhere
> on how to match
> phase response other than the group delay
> equalization. I really
> think in order to approximately match a given low
> order complex gain,
> both magnitude and phase should be matched. When I use
> bilinear
> transform to tranfer the analog gain into digital
> domain, the phase
> is no longer preserved.
>
> Now I have seen some system using a FIR+ a low order
> IIR combination
> to do this but I have could be find the theory beind
> it and how the
> phase can be tuned.
>
> Thanks a lot if you have any idea,
>
> Gordon >
> _____________________________________
> Note: If you do a simple "reply" with your email
> client, only the author of this message will receive
> your answer. You need to do a "reply all" if you want
> your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/matlab
>
> More DSP-Related Groups:
> http://www.dsprelated.com/groups.php3
>
> ">http://docs.yahoo.com/info/terms/




If I understand correctly, linear phase is assured by symmetry of the
filter. In fact, if one adds a filter with arbitrary phase response to its
reverse (in time domain), one gets a linear phase filter with the same
(actually twice) the amplitude response. So being linear-phase is not as
demanding as specifying the phase.

Feng -----Original Message-----
From: Jeff Brower [mailto:]
Sent: Thursday, September 11, 2003 4:56 PM
To: Feng Ouyang
Cc: Gordon Ao;
Subject: Re: [matlab] Can filter match both Magnitude and phase reponse

Feng-

> Most of the filter design techniques address the
> problem of having a given amplitude response, while
> optmizing some other parameters or under some other
> constrains (such as filter length, group delay, etc.).
> This is done by varying the phase. So, by
> definition, you cannot specify phase at the same time.

I don't believe that's accurate. Otherwise, FIR filter arbitrary magnitude
design
techniques (such as Parks-McClellan) would produce non-linear phase, which
they do
not.

-Jeff



Feng-

> If I understand correctly, linear phase is assured by symmetry of the
> filter. In fact, if one adds a filter with arbitrary phase response to its
> reverse (in time domain), one gets a linear phase filter with the same
> (actually twice) the amplitude response. So being linear-phase is not as
> demanding as specifying the phase.

Being able to obtain the same magnitude response for both linear phase and
minimum
phase (see Glen Regan's fantastic explanation for min phase) FIR filters would
tend
to say those are not the only 2 possibilities. As Glen says, it's definitely
difficult, but there should be other possible phase responses that still produce
the
same magnitude response.

-Jeff

> -----Original Message-----
> From: Jeff Brower [mailto:]
> Sent: Thursday, September 11, 2003 4:56 PM
> To: Feng Ouyang
> Cc: Gordon Ao;
> Subject: Re: [matlab] Can filter match both Magnitude and phase reponse
>
> Feng-
>
> > Most of the filter design techniques address the
> > problem of having a given amplitude response, while
> > optmizing some other parameters or under some other
> > constrains (such as filter length, group delay, etc.).
> > This is done by varying the phase. So, by
> > definition, you cannot specify phase at the same time.
>
> I don't believe that's accurate. Otherwise, FIR filter arbitrary magnitude
> design
> techniques (such as Parks-McClellan) would produce non-linear phase, which
> they do
> not.
>
> -Jeff > _____________________________________
> Note: If you do a simple "reply" with your email client, only the author of
this message will receive your answer. You need to do a "reply all" if you want
your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/matlab
>
> More DSP-Related Groups: http://www.dsprelated.com/groups.php3
>
> ">http://docs.yahoo.com/info/terms/