Dear all, For demonstrating the effect of a multipath channel on a wireless comm. system, I am trying to implement an equalizer working according to Zero-Forcing criterion. However I think I have some vaque points in the theory so I would be most happy if you can advice/correct me on the below issue. What I planned to do was to find out the transfer function of my multipath filter (I assume that I have a timeinvariant multipath channel) and then take inverse of it. This would give me the transfer function that I have to implement as an equalizer. So when I take the inverse Z transform of this I have the Equalizer coefficients. If these coefficients are complex, then I implement a complex filter If these coefficients are real, then I implement a real filter Untill I read the below statement, I thought that I understood the theory but wikipedia at http://en.wikipedia.org/wiki/Z-transform says that Z-transform accepts real numbers. If this is right then how can I find the coefficients of a ZERO FORCING criterion equalizer Anyway I am confused right now. I would be happy if you can advice me in the right path?
complex valued Equalizer - zero forcing criterion
Started by ●August 29, 2007
Reply by ●August 29, 20072007-08-29
rifo wrote:> For demonstrating the effect of a multipath channel on a wireless comm. > system, I am trying to implement an equalizer working according to > Zero-Forcing criterion.Impossible. A non-minimal phase system doesn't have an inverse. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Reply by ●August 29, 20072007-08-29
Hi, here is some quick-and-dirty Matlab (Octave) example for a zero forcing equalizer. You said it's only for a demo, but a short disclaimer anyway: --- Don't use this code for real life applications, it doesn't work: --- a) it would require infinite length. b) channel may have nulls in H(f) and is not invertible at all c) or more likely, the channel has notches, and the EQ boosts the noise. Cheers Markus % time shifted pulse % inverse convolution needs some space left and right pulse=zeros(1, 256); pulse(128)=1; % two-tap channel chan=pulse; chan(130)=-2-3i; chan(133)=-3+4i; % invert channel %fft(chan) .* fft(eq) = fft(pulse) eq=ifft(fft(pulse) ./ fft(chan)); p1=[1 2i 3 4 5]; % test signal p2=conv(p1, chan); % channel output p3=conv(p2, eq); % equalizer output plot(abs(p3)); p3(128+256-1:128+256+6)
Reply by ●August 29, 20072007-08-29
>Impossible. >A non-minimal phase system doesn't have an inverse.Oops overlapping posts. Right, it's an approximation only with a finite number of taps.
Reply by ●August 30, 20072007-08-30
Hello, thank you for the responses. After reading your posts, I got the feeling that Zero-Forcing Criterion is not useful or valid for equalization purposes. However I remember reading about the algorithm in Digital Communications Proakis. So equalizing the multipath channel effect with a zero-forcing algorithm should be perfectly possible. I agree that since I have limited number of taps in the equalizer filter I will have residual error in the equalizer output but still this should be acceptable for my simple case. Can you then tell me another way to find the coefficients needed for zero forcing criterion? For example for a linear filter with coefficients h = 1 0 0.4 0.2 modelling the multipath effect. http://www.dsprelated.com/showmessage/78224/1.php I have read the above post so I know that I will need complex values but at this point I am clueless about how to proceed any further.
Reply by ●August 30, 20072007-08-30
Hello, In my copy of Proakis, you'll find some of your questions answered around page 622. In particular: "little more can be said for the general solution of the minimization problem" (for finite length EQ). I've put some more example code on this page, using a least-squares solution in the time domain: http://www.elisanet.fi/mnentwig/webroot/zero_forcing_equalizer_example/index.html Said page is new, so don't believe everything... Please let me know if you find errors. Cheers Markus
Reply by ●September 1, 20072007-09-01
Hello again Dear Markus, Thank you very much for your links, I appreciateyour help :) For a newbie that is not properly trained in the arts of Estimation theory and Linear Algebra. It was a little bit difficult for me to grasp theory behind your code but I think I am okey right now. For possible future readers of this post, I also found these two links aside from Markus`s webpage useful. http://www.stanford.edu/class/ee263/ls_ln_matlab.pdf http://www.stanford.edu/class/ee263/ls.pdf My question now would be " how to select the proper coefficients for my channel" For example for the physical channel of h = 1 0 0 0.4 0.2 I get real numbers as equalizer coefficients. However I know that I need complex coefficients since I have inphase-quadrature signals together as my transmitter output. Should I just make my channel filter complex (by just copying the real part into the imaginary) as h= 1+j1 0 0 0.4+j0.4 0.2+j0.2 or can I just copy my equalizer filter complex by doing the above method. I presume that both of my ideas above are wrong but then again I am pointless in how to proceed any further :) please kindly advice about this problem.
Reply by ●September 1, 20072007-09-01
Hello, some example, why channel coefficients can be complex: Assume, the channel is a radio link with a direct path and one reflection (multipath), -6 dB. The length of the multipath is exactly one sample longer (distance=sample time * speed of light), for example 10 m. So my channel model might be: [... 1 0.5 ..] Now the modulation is carried by a radio wave with a much higher frequency than the sample time. For example at 2 GHz, one quarter wavelength is about 4 cm. So let's assume the above channel model was accurate for 10.00 m. Now change the length of the reflection to 9.96 m. On the sample time scale there is almost no change, so the absolute value of the taps is still next to [1 0.5]. However, since the path shortened by a quarter wavelength, the phase advances by 90 degrees, and turns the 0.5 into 0.5i. The channel is now [... 1 0.5i ...] The relative phase of multipaths changes all the time, when a mobile device is moving. More info: http://wireless.per.nl/reference/chaptr03/fading/doppler.htm You might start looking for a "standard" channel model, for example take it from the reference: http://www.3gpp.org/ftp/Specs/archive/25_series/25.101/25101-780.zip search for "pedestrian A" -mn
Reply by ●September 5, 20072007-09-05
Dear Markus, Thanks a lot four your answer. I think that now I have the (correct) big picture :) I make a small summary of what I understand below. I would be happy if you correct my mistakes. Since this simulation is only for demonstration purposes my carrier frequency will be around 24Khz :) and I will be implementing the multipath effect directly on passband. Using the same channel model [... 1 0.5 ...] After modulating the transmit signal I will convolve it with the channel [... 1 0.5 ... ] (not 0.5i) Then later on, since I know that the multipath channel has a complex impulse response in baseband. I will equalize the downconverted signal with a complex equalizer that has a structure mentioned in Proakis 636 figure 10.2-10 or for those who don't have the book, second post of topic http://groups.google.com/group/comp.dsp/browse_frm/thread/720f58eb45c44a81/b717a0aa3412a141#b717a0aa3412a141 I will acquire the complex coefficients of the equalizer filter by appliying the algorithms mentioned previously in this post but this time, I will take my multipath channel as [..... 1 0.5i .....] assuming that the calculated complex equalizer coefficients are [ .... 0.5+i0.3 -0.25+i0.1 0.1 -i0.02 .... ] then coefficients of the real part of my Complex Equalizer are [..... 0.5 -0.25 0.1 0 ......] and coefficients of the imaginary part of my Complex Equalizer are [...... 0.3 0.1 0 -0.02 ....] I hope that this time I understood it correctly :) Thank you very much for your help Best Regards Rifat
Reply by ●September 8, 20072007-09-08
Hello all, On my way to implementation of the transmitter-receiver chain on a DSP. I have come across one more problem. Here is a brief info about my current system specs Fsampling = 48Khz Fcarrier = 750Hz Fsymbol = 750Hz No pulse shaping I have 64 samples (Fs/Fc) from a single period of my carrier sinusoid. Since there is no pulse shaping each of these samples is modulated with the same symbol value. My problem is about the Low Pass Filter right after the downconverter in the QAM demodulator. Since my carrier frequency is not that high, in order to eliminate the 2Wc component I am using a FIR filter of length 40. However this leads to problems related to transient response of the filter. On my I line where the carrier is cosine. Due to discontinuities I get repeating transient regions and this makes the detection process very problematic. I would be most happy if you can advice me about this. Thanks a lot Rifat