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 |
|
Can filter match both Magnitude and phase reponse
Started by ●September 11, 2003
Reply by ●September 11, 20032003-09-11
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 |
Reply by ●September 11, 20032003-09-11
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 __________________________________ |
Reply by ●September 11, 20032003-09-11
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/ |
|
Reply by ●September 12, 20032003-09-12
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 |
|
Reply by ●September 12, 20032003-09-12
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/ |