DSPRelated.com
Forums

Linear-phase FIR filter coefficient properties

Started by m26k9 August 18, 2010
@Fred Thank you very much. The paper on mirroring was very useful. No need
to deal with complex numbers that way.
> >So, my suggestion was to envision what happens when the demodulation is >such that the lowest frequency components are at a bit higher frequency >and the resulting temporal "baseband" signal would be purely real and >the frequency components would be symmetric about f=0 (and maybe >antisymmetric as well). >
I get what you are saying now. I read again on the analytic signal and I think it a representation of a passband signal in baseband. I'm used to go from baseband (ifft output) to passband. I'm not clear yet as to how the temporal signal will be purely real in the case when we demodulate to just above f=0, but I will go back to the equation and see. Thank you very much.
Thank you very much Kaz.

>If your signal is complex pair then you need a complex filter to >pre-correct amplitude of final channel signal. You can also include phase >correction by having vector of Amp/phase or I/Q channel data e.g. from >spectrum analyser. When correcting phase make sure you don't correct time >delay as it is unneccessary burden on filter(subtract time delay or use >groupdelay) > >The above methods yield real and imaginary h.
Could you please clear this for me. Why do I need a complex filter if I have a complex signal? Doesn't it depend on the kind of filtering I want to perform? Or is it because I have two numbers in each sample? Also, if I am to do this in a DSP, i.e. if I have complex signals, I would have to filter the real stream and the imaginary stream separately with the same filter, right? Thank you very much.
>Thank you very much Kaz. > >>If your signal is complex pair then you need a complex filter to >>pre-correct amplitude of final channel signal. You can also include
phase
>>correction by having vector of Amp/phase or I/Q channel data e.g. from >>spectrum analyser. When correcting phase make sure you don't correct
time
>>delay as it is unneccessary burden on filter(subtract time delay or use >>groupdelay) >> >>The above methods yield real and imaginary h. > >Could you please clear this for me. >Why do I need a complex filter if I have a complex signal? Doesn't it >depend on the kind of filtering I want to perform? Or is it because I
have
>two numbers in each sample?
Imagine the case of pulse shaping: You only need to shape each channel separately so you use two parallel real filters. However for channel correction, the distortion is likely to be asymmetric and additionally you may need to correct phase. If you only want to correct amplitude and that amplitude distortion is symmetrical(on both sidebands) then real filter is enought. Thus the main target is the assymetric correction which is only achievable by complex filtering.
> >Also, if I am to do this in a DSP, i.e. if I have complex signals, I
would
>have to filter the real stream and the imaginary stream separately with
the
>same filter, right?
Not separately. each tap will require 4 multipliers: xr.hr - xi.hi => yr xr.hi + xi.hr => yi the final output y = sum of all products best of luck Kaz
>Thank you very much Kaz. > >>If your signal is complex pair then you need a complex filter to >>pre-correct amplitude of final channel signal. You can also include
phase
>>correction by having vector of Amp/phase or I/Q channel data e.g. from >>spectrum analyser. When correcting phase make sure you don't correct
time
>>delay as it is unneccessary burden on filter(subtract time delay or use >>groupdelay) >> >>The above methods yield real and imaginary h. > >Could you please clear this for me. >Why do I need a complex filter if I have a complex signal? Doesn't it >depend on the kind of filtering I want to perform? Or is it because I
have
>two numbers in each sample?
Imagine the case of pulse shaping: You only need to shape each channel separately so you use two parallel real filters. However for channel correction, the distortion is likely to be asymmetric and additionally you may need to correct phase. If you only want to correct amplitude and that amplitude distortion is symmetrical(on both sidebands) then real filter is enought. Thus the main target is the assymetric correction which is only achievable by complex filtering.
> >Also, if I am to do this in a DSP, i.e. if I have complex signals, I
would
>have to filter the real stream and the imaginary stream separately with
the
>same filter, right?
Not separately. each tap will require 4 multipliers: xr.hr - xi.hi => yr xr.hi + xi.hr => yi the final output y = sum of all products best of luck Kaz
m26k9 wrote:
> @Fred Thank you very much. The paper on mirroring was very useful. No need > to deal with complex numbers that way. >> So, my suggestion was to envision what happens when the demodulation is >> such that the lowest frequency components are at a bit higher frequency >> and the resulting temporal "baseband" signal would be purely real and >> the frequency components would be symmetric about f=0 (and maybe >> antisymmetric as well). >> > > I get what you are saying now. I read again on the analytic signal and I > think it a representation of a passband signal in baseband. I'm used to go > from baseband (ifft output) to passband. I'm not clear yet as to how the > temporal signal will be purely real in the case when we demodulate to just > above f=0, but I will go back to the equation and see. > > Thank you very much.
If the original signal in frequency has a real IFFT, then moving components around by translation should keep its odd/even real/imaginary character. Then the new IFFT should result in a real sequence. Fred
Thank you very much Kaz. This is exactly where I lose it.

>However for channel correction, the distortion is likely to be asymmetric >and additionally you may need to correct phase. >If you only want to correct amplitude and that amplitude distortion is >symmetrical(on both sidebands) then real filter is enought. >
When you say "ONLY want to correct amplitude", does it mean that filter will have linear-phase? Also, if we suppose the channel is asymmetric, can we double the number of points and mirror the channel frequency spectrum and make the filter? wouldn't it make the filter real? Thank you.
Thank you very much Fred.

>If the original signal in frequency has a real IFFT, then moving >components around by translation should keep its odd/even real/imaginary >character. Then the new IFFT should result in a real sequence. >
I'm starting to slowly get it. Atleast I hope so. I think the way "frequency sampling method" using is same as the mirroring method given in the paper you referred. If we mirror the filter spectrum (which we want to find the coefficients), then we'd get real filter coefficients, right? Thank you.
>Thank you very much Kaz. This is exactly where I lose it. > >>However for channel correction, the distortion is likely to be
asymmetric
>>and additionally you may need to correct phase. >>If you only want to correct amplitude and that amplitude distortion is >>symmetrical(on both sidebands) then real filter is enought. >> > >When you say "ONLY want to correct amplitude", does it mean that filter >will have linear-phase?
Yes, if you run my above examples in Matlab, you will see that inverse sinc amplitude is corrected while the complex filter maintains linear phase because I did not enter any phase corrections.
> >Also, if we suppose the channel is asymmetric, can we double the number
of
>points and mirror the channel frequency spectrum and make the filter? >wouldn't it make the filter real? > >Thank you.
There are two perspectives: (1)If you are filtering in the baseband to correct a signal later translated up in frequency then only complex filter can do the job. (2) if you are filtering the translated signal itself (in the high speed domain) then you can use a real bandpass filter with the required response Kaz
>
Thank you very much Kaz.

>(1)If you are filtering in the baseband to correct a signal later >translated up in frequency then only complex filter can do the job. >
Is this because the signals are complex? For example, as the reference by Fred says, the output of a IFFT in a DSL system is real. Because the input (to the IFFT) is mirrored so that the IFFT output is real. But this output is still 'baseband', in the sense that it is not up converted. Do we still need a complex filter for this baseband signal? I'm trying to confirm whether the fact that a complex filter is required because the input is complex, or it is because of the channel. Thank you.
>Thank you very much Kaz. > >>(1)If you are filtering in the baseband to correct a signal later >>translated up in frequency then only complex filter can do the job. >> > >Is this because the signals are complex? For example, as the reference by >Fred says, the output of a IFFT in a DSL system is real. Because the
input
>(to the IFFT) is mirrored so that the IFFT output is real. But this
output
>is still 'baseband', in the sense that it is not up converted. Do we
still
>need a complex filter for this baseband signal? > >I'm trying to confirm whether the fact that a complex filter is required >because the input is complex, or it is because of the channel. > >Thank you. >
Because of the channel requirements... From the perspective of our discussion, complex filter in the baseband is solely for asymmetric filtering around dc which then translates to the two sidebands upon upconversion for channel correction. If baseband filtering is not complex then the correction on either side of dc will mirror and the asymmetric correction fails. just because a signal is complex does not mean you must apply complex filter. In fact you shouldn't. Remember the I/Q are both real in design, we only assume they are members of a complex pair when we do computations. So as I said in pulse shaping of I/Q you don't need complex filter but two identical real filters because you are not targetting any assymetric response but just pulse shaping of each member. For channel correction If your baseband signal to be filtered is real then you need to break it up into two vertical components to become "complex". You can also apply complex filter to real signal for some other purposes: There is at least one more case to use complex filter: to break up a real signal to two components (just like Hilbert transform) but this is not our issue here and in that case you feed one real signal to get Re/Im(two multipliers per tap). If you apply complex filter to real signal only i.e. (x) is just x not xr/xi but filter is hr/hi then we are talking about converting real x to a complex pair and if your cutoff is brickwall at dc then you have broken up the real signal to good complex pair. Regards Kaz