DSPRelated.com
Forums

FIR Filter Implementation

Started by bart1234 September 12, 2011
All,

I recently implemented a change to a FIR filter on a system that receives
pulse modulated data.  The system uses a digital FIR filter and the
bandwidth was increased from about 1MHz to 4MHz.  After this change was
made I noticed the leading and trailing edge of the pulse appeared to have
a small amount of overshoot giving the pulse the appearance of dog ears.  I
feel this is somehow related to harmonics going through the filter that
were previously suppressed, but I am not really sure.

I then simulated the pulse in Matlab and got similar results.  To simulate
the pulse in Matlab it took a CW signal and multiplied it against a Tukey
window and added noise.  I then convolved it with the filter and plotted
the magnitude.  The wider bandwidth filter produced similar looking dog
ears.  The noise could add and subtract the dog ears making them appear to
come and go, but with no noise they were very consistent.

The FIR filter I am using is a low-pass least-squares, with 79 taps, 1 MHz
pass band and 4MHz stop band.  The filter was made with the Matlab
fdatool.

I would welcome comments as to exactly where this overshoot is coming from.
 The level of the overshoot is small, but everyone looks at it and says
‘What is that?’ and I really don’t know.

Thanks in advance.



On 12 Sep, 20:13, "bart1234" <robert.hoskins@n_o_s_p_a_m.navy.mil>
wrote:
> All, > > I recently implemented a change to a FIR filter on a system that receives > pulse modulated data. &#4294967295;The system uses a digital FIR filter and the > bandwidth was increased from about 1MHz to 4MHz. &#4294967295;After this change was > made I noticed the leading and trailing edge of the pulse appeared to have > a small amount of overshoot giving the pulse the appearance of dog ears. &#4294967295;I > feel this is somehow related to harmonics going through the filter that > were previously suppressed, but I am not really sure. > > I then simulated the pulse in Matlab and got similar results. &#4294967295;To simulate > the pulse in Matlab it took a CW signal and multiplied it against a Tukey > window and added noise. &#4294967295;I then convolved it with the filter and plotted > the magnitude. &#4294967295;The wider bandwidth filter produced similar looking dog > ears. &#4294967295;The noise could add and subtract the dog ears making them appear to > come and go, but with no noise they were very consistent. > > The FIR filter I am using is a low-pass least-squares, with 79 taps, 1 MHz > pass band and 4MHz stop band. &#4294967295;The filter was made with the Matlab > fdatool. > > I would welcome comments as to exactly where this overshoot is coming from. > &#4294967295;The level of the overshoot is small, but everyone looks at it and says > &#4294967295;What is that?&#4294967295; and I really don&#4294967295;t know.
That's how filters work - they are specified with some accuracy in frequency domain, at the cost of some more or less 'unexpected' transient effects in time domain. What you see is known as 'Gibbs' phenomenon.' Rune
On 9/12/2011 11:31 AM, Rune Allnor wrote:

> > That's how filters work - they are specified with some > accuracy in frequency domain, at the cost of some more > or less 'unexpected' transient effects in time domain.
At some level that may be correct but it's a pretty naive way to design filters. Fred
On 9/12/2011 11:13 AM, bart1234 wrote:
> All, > > I recently implemented a change to a FIR filter on a system that receives > pulse modulated data. The system uses a digital FIR filter and the > bandwidth was increased from about 1MHz to 4MHz. After this change was > made I noticed the leading and trailing edge of the pulse appeared to have > a small amount of overshoot giving the pulse the appearance of dog ears. I > feel this is somehow related to harmonics going through the filter that > were previously suppressed, but I am not really sure. > > I then simulated the pulse in Matlab and got similar results. To simulate > the pulse in Matlab it took a CW signal and multiplied it against a Tukey > window and added noise. I then convolved it with the filter and plotted > the magnitude. The wider bandwidth filter produced similar looking dog > ears. The noise could add and subtract the dog ears making them appear to > come and go, but with no noise they were very consistent. > > The FIR filter I am using is a low-pass least-squares, with 79 taps, 1 MHz > pass band and 4MHz stop band. The filter was made with the Matlab > fdatool. > > I would welcome comments as to exactly where this overshoot is coming from. > The level of the overshoot is small, but everyone looks at it and says > &lsquo;What is that?&rsquo; and I really don&rsquo;t know. > > Thanks in advance. > > >
I'm not sure I understand what was held constant and what was changed. I do see that you changed a filter. But it's not clear how you did that and what you did with the sample rate. So, there are a couple of possibilities: 1) you left the filter coefficients alone and changed the sample rate by a factor of 4. That would scale a 1MHz lowpass filter to a 4MHz lowpass filter with a 4X transition band width. (What *is* the sample rate?) 2) you left the sample rate alone and changed the filter from one that's a 1MHz lowpass to one that's a 4MHz lowpass. If it's #1 then the bandwidth of the filter would have increased and so would have the transition band width. And, on a relative basis, the response to rectangular pulses should have stayed the same. If it's #2 then who knows what you did with the transitino band width? The transition band width affects the transient response of the filter. In general, the broader (softer) the transition, the less Gibbs phenomenon (the ringing in temporal transitions) in the time domain. And, the sharper the transition, the more pronounced the Gibbs phenonmenon. So, I guess I'd have to conclude that you made the transition band *narrower* on an absolute basis. How did you do that? Fred
On 9/12/2011 4:44 PM, Fred Marshall wrote:
> On 9/12/2011 11:13 AM, bart1234 wrote: >> All, >> >> I recently implemented a change to a FIR filter on a system that receives >> pulse modulated data. The system uses a digital FIR filter and the >> bandwidth was increased from about 1MHz to 4MHz. After this change was >> made I noticed the leading and trailing edge of the pulse appeared to >> have >> a small amount of overshoot giving the pulse the appearance of dog >> ears. I >> feel this is somehow related to harmonics going through the filter that >> were previously suppressed, but I am not really sure. >> >> I then simulated the pulse in Matlab and got similar results. To simulate >> the pulse in Matlab it took a CW signal and multiplied it against a Tukey >> window and added noise. I then convolved it with the filter and plotted >> the magnitude. The wider bandwidth filter produced similar looking dog >> ears. The noise could add and subtract the dog ears making them appear to >> come and go, but with no noise they were very consistent. >> >> The FIR filter I am using is a low-pass least-squares, with 79 taps, 1 >> MHz >> pass band and 4MHz stop band. The filter was made with the Matlab >> fdatool. >> >> I would welcome comments as to exactly where this overshoot is coming >> from. >> The level of the overshoot is small, but everyone looks at it and says >> &lsquo;What is that?&rsquo; and I really don&rsquo;t know. >> >> Thanks in advance. >> >> >> > > I'm not sure I understand what was held constant and what was changed. > I do see that you changed a filter. But it's not clear how you did that > and what you did with the sample rate. > > So, there are a couple of possibilities: > 1) you left the filter coefficients alone and changed the sample rate by > a factor of 4. That would scale a 1MHz lowpass filter to a 4MHz lowpass > filter with a 4X transition band width. > (What *is* the sample rate?) > 2) you left the sample rate alone and changed the filter from one that's > a 1MHz lowpass to one that's a 4MHz lowpass. > > If it's #1 then the bandwidth of the filter would have increased and so > would have the transition band width. And, on a relative basis, the > response to rectangular pulses should have stayed the same. > > If it's #2 then who knows what you did with the transitino band width? > > The transition band width affects the transient response of the filter. > In general, the broader (softer) the transition, the less Gibbs > phenomenon (the ringing in temporal transitions) in the time domain. > And, the sharper the transition, the more pronounced the Gibbs phenonmenon. > > So, I guess I'd have to conclude that you made the transition band > *narrower* on an absolute basis. How did you do that? > > Fred >
Or, if you increased the sample rate then perhaps you made the pulses *sharper* and that, combined with NOT changing the transition band width would increase the ringing I do believe. Fred
>On 9/12/2011 4:44 PM, Fred Marshall wrote: >> On 9/12/2011 11:13 AM, bart1234 wrote: >>> All, >>> >>> I recently implemented a change to a FIR filter on a system that
receives
>>> pulse modulated data. The system uses a digital FIR filter and the >>> bandwidth was increased from about 1MHz to 4MHz. After this change was >>> made I noticed the leading and trailing edge of the pulse appeared to >>> have >>> a small amount of overshoot giving the pulse the appearance of dog >>> ears. I >>> feel this is somehow related to harmonics going through the filter
that
>>> were previously suppressed, but I am not really sure. >>> >>> I then simulated the pulse in Matlab and got similar results. To
simulate
>>> the pulse in Matlab it took a CW signal and multiplied it against a
Tukey
>>> window and added noise. I then convolved it with the filter and
plotted
>>> the magnitude. The wider bandwidth filter produced similar looking dog >>> ears. The noise could add and subtract the dog ears making them appear
to
>>> come and go, but with no noise they were very consistent. >>> >>> The FIR filter I am using is a low-pass least-squares, with 79 taps, 1 >>> MHz >>> pass band and 4MHz stop band. The filter was made with the Matlab >>> fdatool. >>> >>> I would welcome comments as to exactly where this overshoot is coming >>> from. >>> The level of the overshoot is small, but everyone looks at it and says >>> &lsquo;What is that?&rsquo; and I really don&rsquo;t know. >>> >>> Thanks in advance. >>> >>> >>> >> >> I'm not sure I understand what was held constant and what was changed. >> I do see that you changed a filter. But it's not clear how you did that >> and what you did with the sample rate. >> >> So, there are a couple of possibilities: >> 1) you left the filter coefficients alone and changed the sample rate
by
>> a factor of 4. That would scale a 1MHz lowpass filter to a 4MHz lowpass >> filter with a 4X transition band width. >> (What *is* the sample rate?) >> 2) you left the sample rate alone and changed the filter from one
that's
>> a 1MHz lowpass to one that's a 4MHz lowpass. >> >> If it's #1 then the bandwidth of the filter would have increased and so >> would have the transition band width. And, on a relative basis, the >> response to rectangular pulses should have stayed the same. >> >> If it's #2 then who knows what you did with the transitino band width? >> >> The transition band width affects the transient response of the filter. >> In general, the broader (softer) the transition, the less Gibbs >> phenomenon (the ringing in temporal transitions) in the time domain. >> And, the sharper the transition, the more pronounced the Gibbs
phenonmenon.
>> >> So, I guess I'd have to conclude that you made the transition band >> *narrower* on an absolute basis. How did you do that? >> >> Fred >> > >Or, if you increased the sample rate then perhaps you made the pulses >*sharper* and that, combined with NOT changing the transition band width >would increase the ringing I do believe. > >Fred >
The sample rate was left the same at 80 MHz. In Matlab I created the filters using the fdatool. Old filter. Fpass 0.05MHz Fstop 2MHz Created a filter with a 3dB bandwidth of about 1.4MHz. Created a filter with a 30dB bandwidth of about 3.8MHz. New Filter Fpass 1MHz Fstop 4MHz Created a fitler with a 3dB bandwidth of about 4.1MHz. Created a filter with a 30dB bandwidth of about 7.4MHz. So because my old filter has a slope (I know that is not the correct term, but I am not sure what the right term is) of 3.8/1.4 = 2.7, and my new filter has a slope of 7.4/4.1 = 1.8. That indicates the new filter is sharper, which I guess may cause some ringing in the time domain. The above is what I think is happening, but if there is something I am missing please let me know. Everyone thanks for replying, I appreciate all of the responses on this.
>>On 9/12/2011 4:44 PM, Fred Marshall wrote: >>> On 9/12/2011 11:13 AM, bart1234 wrote: >>>> All, >>>> >>>> I recently implemented a change to a FIR filter on a system that >receives >>>> pulse modulated data. The system uses a digital FIR filter and the >>>> bandwidth was increased from about 1MHz to 4MHz. After this change
was
>>>> made I noticed the leading and trailing edge of the pulse appeared to >>>> have >>>> a small amount of overshoot giving the pulse the appearance of dog >>>> ears. I >>>> feel this is somehow related to harmonics going through the filter >that >>>> were previously suppressed, but I am not really sure. >>>> >>>> I then simulated the pulse in Matlab and got similar results. To >simulate >>>> the pulse in Matlab it took a CW signal and multiplied it against a >Tukey >>>> window and added noise. I then convolved it with the filter and >plotted >>>> the magnitude. The wider bandwidth filter produced similar looking
dog
>>>> ears. The noise could add and subtract the dog ears making them
appear
>to >>>> come and go, but with no noise they were very consistent. >>>> >>>> The FIR filter I am using is a low-pass least-squares, with 79 taps,
1
>>>> MHz >>>> pass band and 4MHz stop band. The filter was made with the Matlab >>>> fdatool. >>>> >>>> I would welcome comments as to exactly where this overshoot is coming >>>> from. >>>> The level of the overshoot is small, but everyone looks at it and
says
>>>> &lsquo;What is that?&rsquo; and I really don&rsquo;t know. >>>> >>>> Thanks in advance. >>>> >>>> >>>> >>> >>> I'm not sure I understand what was held constant and what was changed. >>> I do see that you changed a filter. But it's not clear how you did
that
>>> and what you did with the sample rate. >>> >>> So, there are a couple of possibilities: >>> 1) you left the filter coefficients alone and changed the sample rate >by >>> a factor of 4. That would scale a 1MHz lowpass filter to a 4MHz
lowpass
>>> filter with a 4X transition band width. >>> (What *is* the sample rate?) >>> 2) you left the sample rate alone and changed the filter from one >that's >>> a 1MHz lowpass to one that's a 4MHz lowpass. >>> >>> If it's #1 then the bandwidth of the filter would have increased and
so
>>> would have the transition band width. And, on a relative basis, the >>> response to rectangular pulses should have stayed the same. >>> >>> If it's #2 then who knows what you did with the transitino band width? >>> >>> The transition band width affects the transient response of the
filter.
>>> In general, the broader (softer) the transition, the less Gibbs >>> phenomenon (the ringing in temporal transitions) in the time domain. >>> And, the sharper the transition, the more pronounced the Gibbs >phenonmenon. >>> >>> So, I guess I'd have to conclude that you made the transition band >>> *narrower* on an absolute basis. How did you do that? >>> >>> Fred >>> >> >>Or, if you increased the sample rate then perhaps you made the pulses >>*sharper* and that, combined with NOT changing the transition band width
>>would increase the ringing I do believe. >> >>Fred >> > >The sample rate was left the same at 80 MHz. In Matlab I created the >filters using the fdatool. > >Old filter. Fpass 0.05MHz Fstop 2MHz >Created a filter with a 3dB bandwidth of about 1.4MHz. >Created a filter with a 30dB bandwidth of about 3.8MHz. > >New Filter Fpass 1MHz Fstop 4MHz >Created a fitler with a 3dB bandwidth of about 4.1MHz. >Created a filter with a 30dB bandwidth of about 7.4MHz. > >So because my old filter has a slope (I know that is not the correct
term,
>but I am not sure what the right term is) of 3.8/1.4 = 2.7, and my new >filter has a slope of 7.4/4.1 = 1.8. That indicates the new filter is >sharper, which I guess may cause some ringing in the time domain. The >above is what I think is happening, but if there is something I am
missing
>please let me know. > >Everyone thanks for replying, I appreciate all of the responses on this. >
After thinking more about my filters shouldn't I think about it this way? Fitler one drops 27db in (3.8-1.4) 2.4MHz Filter two drops 27db in (7.8-4.1) 3.3MHz So filter two is less agressive so shouldn't it have a better time domain response?
On Sep 13, 7:48&#4294967295;am, "bart1234" <robert.hoskins@n_o_s_p_a_m.navy.mil>
wrote:
> >>On 9/12/2011 4:44 PM, Fred Marshall wrote: > >>> On 9/12/2011 11:13 AM, bart1234 wrote: > >>>> All, > > >>>> I recently implemented a change to a FIR filter on a system that > >receives > >>>> pulse modulated data. The system uses a digital FIR filter and the > >>>> bandwidth was increased from about 1MHz to 4MHz. After this change > was > >>>> made I noticed the leading and trailing edge of the pulse appeared to > >>>> have > >>>> a small amount of overshoot giving the pulse the appearance of dog > >>>> ears. I > >>>> feel this is somehow related to harmonics going through the filter > >that > >>>> were previously suppressed, but I am not really sure. > > >>>> I then simulated the pulse in Matlab and got similar results. To > >simulate > >>>> the pulse in Matlab it took a CW signal and multiplied it against a > >Tukey > >>>> window and added noise. I then convolved it with the filter and > >plotted > >>>> the magnitude. The wider bandwidth filter produced similar looking > dog > >>>> ears. The noise could add and subtract the dog ears making them > appear > >to > >>>> come and go, but with no noise they were very consistent. > > >>>> The FIR filter I am using is a low-pass least-squares, with 79 taps, > 1 > >>>> MHz > >>>> pass band and 4MHz stop band. The filter was made with the Matlab > >>>> fdatool. > > >>>> I would welcome comments as to exactly where this overshoot is coming > >>>> from. > >>>> The level of the overshoot is small, but everyone looks at it and > says > >>>> &#4294967295;What is that?&#4294967295; and I really don&#4294967295;t know. > > >>>> Thanks in advance. > > >>> I'm not sure I understand what was held constant and what was changed. > >>> I do see that you changed a filter. But it's not clear how you did > that > >>> and what you did with the sample rate. > > >>> So, there are a couple of possibilities: > >>> 1) you left the filter coefficients alone and changed the sample rate > >by > >>> a factor of 4. That would scale a 1MHz lowpass filter to a 4MHz > lowpass > >>> filter with a 4X transition band width. > >>> (What *is* the sample rate?) > >>> 2) you left the sample rate alone and changed the filter from one > >that's > >>> a 1MHz lowpass to one that's a 4MHz lowpass. > > >>> If it's #1 then the bandwidth of the filter would have increased and > so > >>> would have the transition band width. And, on a relative basis, the > >>> response to rectangular pulses should have stayed the same. > > >>> If it's #2 then who knows what you did with the transitino band width? > > >>> The transition band width affects the transient response of the > filter. > >>> In general, the broader (softer) the transition, the less Gibbs > >>> phenomenon (the ringing in temporal transitions) in the time domain. > >>> And, the sharper the transition, the more pronounced the Gibbs > >phenonmenon. > > >>> So, I guess I'd have to conclude that you made the transition band > >>> *narrower* on an absolute basis. How did you do that? > > >>> Fred > > >>Or, if you increased the sample rate then perhaps you made the pulses > >>*sharper* and that, combined with NOT changing the transition band width > >>would increase the ringing I do believe. > > >>Fred > > >The sample rate was left the same at 80 MHz. &#4294967295;In Matlab I created the > >filters using the fdatool. &#4294967295; > > >Old filter. &#4294967295;Fpass 0.05MHz &#4294967295; Fstop &#4294967295;2MHz > >Created a filter with a 3dB bandwidth of about 1.4MHz. > >Created a filter with a 30dB bandwidth of about 3.8MHz. > > >New Filter &#4294967295; Fpass 1MHz &#4294967295; &#4294967295;Fstop 4MHz > >Created a fitler with a 3dB bandwidth of about 4.1MHz. > >Created a filter with a 30dB bandwidth of about 7.4MHz. > > >So because my old filter has a slope (I know that is not the correct > term, > >but I am not sure what the right term is) of 3.8/1.4 = 2.7, and my new > >filter has a slope of 7.4/4.1 = 1.8. &#4294967295;That indicates the new filter is > >sharper, which I guess may cause some ringing in the time domain. &#4294967295;The > >above is what I think is happening, but if there is something I am > missing > >please let me know. > > >Everyone thanks for replying, I appreciate all of the responses on this. > > After thinking more about my filters shouldn't I think about it this way? > > Fitler one drops 27db in (3.8-1.4) 2.4MHz > Filter two drops 27db in (7.8-4.1) 3.3MHz > > So filter two is less agressive so shouldn't it have a better time domain > response?- Hide quoted text - > > - Show quoted text -
We usually look at the frequency domain as geometric rather than algebraic. For example the center frequency of f1 and f2 is sqrt(f1*f2), not f2 - f2. Your first suspicion that the transition band ratio for your first filter is 2.7, and the transition band ratio for the second is 1.8 is the better thought. Maurice
On 9/13/2011 8:48 AM, bart1234 wrote:
>>> On 9/12/2011 4:44 PM, Fred Marshall wrote: >>>> On 9/12/2011 11:13 AM, bart1234 wrote: >>>>> All, >>>>> >>>>> I recently implemented a change to a FIR filter on a system that >> receives >>>>> pulse modulated data. The system uses a digital FIR filter and the >>>>> bandwidth was increased from about 1MHz to 4MHz. After this change > was >>>>> made I noticed the leading and trailing edge of the pulse appeared to >>>>> have >>>>> a small amount of overshoot giving the pulse the appearance of dog >>>>> ears. I >>>>> feel this is somehow related to harmonics going through the filter >> that >>>>> were previously suppressed, but I am not really sure. >>>>> >>>>> I then simulated the pulse in Matlab and got similar results. To >> simulate >>>>> the pulse in Matlab it took a CW signal and multiplied it against a >> Tukey >>>>> window and added noise. I then convolved it with the filter and >> plotted >>>>> the magnitude. The wider bandwidth filter produced similar looking > dog >>>>> ears. The noise could add and subtract the dog ears making them > appear >> to >>>>> come and go, but with no noise they were very consistent. >>>>> >>>>> The FIR filter I am using is a low-pass least-squares, with 79 taps, > 1 >>>>> MHz >>>>> pass band and 4MHz stop band. The filter was made with the Matlab >>>>> fdatool. >>>>> >>>>> I would welcome comments as to exactly where this overshoot is coming >>>>> from. >>>>> The level of the overshoot is small, but everyone looks at it and > says >>>>> &lsquo;What is that?&rsquo; and I really don&rsquo;t know. >>>>> >>>>> Thanks in advance. >>>>> >>>>> >>>>> >>>> >>>> I'm not sure I understand what was held constant and what was changed. >>>> I do see that you changed a filter. But it's not clear how you did > that >>>> and what you did with the sample rate. >>>> >>>> So, there are a couple of possibilities: >>>> 1) you left the filter coefficients alone and changed the sample rate >> by >>>> a factor of 4. That would scale a 1MHz lowpass filter to a 4MHz > lowpass >>>> filter with a 4X transition band width. >>>> (What *is* the sample rate?) >>>> 2) you left the sample rate alone and changed the filter from one >> that's >>>> a 1MHz lowpass to one that's a 4MHz lowpass. >>>> >>>> If it's #1 then the bandwidth of the filter would have increased and > so >>>> would have the transition band width. And, on a relative basis, the >>>> response to rectangular pulses should have stayed the same. >>>> >>>> If it's #2 then who knows what you did with the transitino band width? >>>> >>>> The transition band width affects the transient response of the > filter. >>>> In general, the broader (softer) the transition, the less Gibbs >>>> phenomenon (the ringing in temporal transitions) in the time domain. >>>> And, the sharper the transition, the more pronounced the Gibbs >> phenonmenon. >>>> >>>> So, I guess I'd have to conclude that you made the transition band >>>> *narrower* on an absolute basis. How did you do that? >>>> >>>> Fred >>>> >>> >>> Or, if you increased the sample rate then perhaps you made the pulses >>> *sharper* and that, combined with NOT changing the transition band width > >>> would increase the ringing I do believe. >>> >>> Fred >>> >> >> The sample rate was left the same at 80 MHz. In Matlab I created the >> filters using the fdatool. >> >> Old filter. Fpass 0.05MHz Fstop 2MHz >> Created a filter with a 3dB bandwidth of about 1.4MHz. >> Created a filter with a 30dB bandwidth of about 3.8MHz. >> >> New Filter Fpass 1MHz Fstop 4MHz >> Created a fitler with a 3dB bandwidth of about 4.1MHz. >> Created a filter with a 30dB bandwidth of about 7.4MHz. >> >> So because my old filter has a slope (I know that is not the correct > term, >> but I am not sure what the right term is) of 3.8/1.4 = 2.7, and my new >> filter has a slope of 7.4/4.1 = 1.8. That indicates the new filter is >> sharper, which I guess may cause some ringing in the time domain. The >> above is what I think is happening, but if there is something I am > missing >> please let me know. >> >> Everyone thanks for replying, I appreciate all of the responses on this. >> > > After thinking more about my filters shouldn't I think about it this way? > > Fitler one drops 27db in (3.8-1.4) 2.4MHz > Filter two drops 27db in (7.8-4.1) 3.3MHz > > So filter two is less agressive so shouldn't it have a better time domain > response?
No. The first filter drops 27dB in 3.8*(1 - 1.4/3.8) = 3.8*.63. The second does it in 7.8*(1 - 4.1/7.8) - 7.8*.47. The absolute frequency is unimportant. The second filter is more "aggressive". Are you sure about the Fpass of the old filter? It seems too narrow. Jerry -- Engineering is the art of making what you want from things you can get. -- Engineering is the art of making what you want from things you can get.
>On 9/13/2011 8:48 AM, bart1234 wrote: >>>> On 9/12/2011 4:44 PM, Fred Marshall wrote: >>>>> On 9/12/2011 11:13 AM, bart1234 wrote: >>>>>> All, >>>>>> >>>>>> I recently implemented a change to a FIR filter on a system that >>> receives >>>>>> pulse modulated data. The system uses a digital FIR filter and the >>>>>> bandwidth was increased from about 1MHz to 4MHz. After this change >> was >>>>>> made I noticed the leading and trailing edge of the pulse appeared
to
>>>>>> have >>>>>> a small amount of overshoot giving the pulse the appearance of dog >>>>>> ears. I >>>>>> feel this is somehow related to harmonics going through the filter >>> that >>>>>> were previously suppressed, but I am not really sure. >>>>>> >>>>>> I then simulated the pulse in Matlab and got similar results. To >>> simulate >>>>>> the pulse in Matlab it took a CW signal and multiplied it against a >>> Tukey >>>>>> window and added noise. I then convolved it with the filter and >>> plotted >>>>>> the magnitude. The wider bandwidth filter produced similar looking >> dog >>>>>> ears. The noise could add and subtract the dog ears making them >> appear >>> to >>>>>> come and go, but with no noise they were very consistent. >>>>>> >>>>>> The FIR filter I am using is a low-pass least-squares, with 79
taps,
>> 1 >>>>>> MHz >>>>>> pass band and 4MHz stop band. The filter was made with the Matlab >>>>>> fdatool. >>>>>> >>>>>> I would welcome comments as to exactly where this overshoot is
coming
>>>>>> from. >>>>>> The level of the overshoot is small, but everyone looks at it and >> says >>>>>> &lsquo;What is that?&rsquo; and I really don&rsquo;t know. >>>>>> >>>>>> Thanks in advance. >>>>>> >>>>>> >>>>>> >>>>> >>>>> I'm not sure I understand what was held constant and what was
changed.
>>>>> I do see that you changed a filter. But it's not clear how you did >> that >>>>> and what you did with the sample rate. >>>>> >>>>> So, there are a couple of possibilities: >>>>> 1) you left the filter coefficients alone and changed the sample
rate
>>> by >>>>> a factor of 4. That would scale a 1MHz lowpass filter to a 4MHz >> lowpass >>>>> filter with a 4X transition band width. >>>>> (What *is* the sample rate?) >>>>> 2) you left the sample rate alone and changed the filter from one >>> that's >>>>> a 1MHz lowpass to one that's a 4MHz lowpass. >>>>> >>>>> If it's #1 then the bandwidth of the filter would have increased and >> so >>>>> would have the transition band width. And, on a relative basis, the >>>>> response to rectangular pulses should have stayed the same. >>>>> >>>>> If it's #2 then who knows what you did with the transitino band
width?
>>>>> >>>>> The transition band width affects the transient response of the >> filter. >>>>> In general, the broader (softer) the transition, the less Gibbs >>>>> phenomenon (the ringing in temporal transitions) in the time domain. >>>>> And, the sharper the transition, the more pronounced the Gibbs >>> phenonmenon. >>>>> >>>>> So, I guess I'd have to conclude that you made the transition band >>>>> *narrower* on an absolute basis. How did you do that? >>>>> >>>>> Fred >>>>> >>>> >>>> Or, if you increased the sample rate then perhaps you made the pulses >>>> *sharper* and that, combined with NOT changing the transition band
width
>> >>>> would increase the ringing I do believe. >>>> >>>> Fred >>>> >>> >>> The sample rate was left the same at 80 MHz. In Matlab I created the >>> filters using the fdatool. >>> >>> Old filter. Fpass 0.05MHz Fstop 2MHz >>> Created a filter with a 3dB bandwidth of about 1.4MHz. >>> Created a filter with a 30dB bandwidth of about 3.8MHz. >>> >>> New Filter Fpass 1MHz Fstop 4MHz >>> Created a fitler with a 3dB bandwidth of about 4.1MHz. >>> Created a filter with a 30dB bandwidth of about 7.4MHz. >>> >>> So because my old filter has a slope (I know that is not the correct >> term, >>> but I am not sure what the right term is) of 3.8/1.4 = 2.7, and my new >>> filter has a slope of 7.4/4.1 = 1.8. That indicates the new filter is >>> sharper, which I guess may cause some ringing in the time domain. The >>> above is what I think is happening, but if there is something I am >> missing >>> please let me know. >>> >>> Everyone thanks for replying, I appreciate all of the responses on
this.
>>> >> >> After thinking more about my filters shouldn't I think about it this
way?
>> >> Fitler one drops 27db in (3.8-1.4) 2.4MHz >> Filter two drops 27db in (7.8-4.1) 3.3MHz >> >> So filter two is less agressive so shouldn't it have a better time
domain
>> response? > >No. The first filter drops 27dB in 3.8*(1 - 1.4/3.8) = 3.8*.63. >The second does it in 7.8*(1 - 4.1/7.8) - 7.8*.47. The absolute >frequency is unimportant. The second filter is more "aggressive". > >Are you sure about the Fpass of the old filter? It seems too narrow. > >Jerry >-- >Engineering is the art of making what you want from things you can get. >-- >Engineering is the art of making what you want from things you can get. >
Thanks for all the inputs. The old filter was made in Matlab and 0.05MHz was used for the pass band. The system mode has very little bandwidth in this mode and we wanted the filter as tight as possible to increase SNR. The real 3dB bandwidth is closer to 1.4MHz so as long as the pulse width is 700ns or greater we should have a wide enough filter, unless I am missing something. The 0.05MHz was just an input for Matlab and I think that just tells Matlab at 0.05MHz the filter should have no supression.