Reply by mnentwig September 8, 20072007-09-08
Correction: This pulse does _not_ meet Nyquist's pulse shaping criterion,
it spectrum is not symmetric around the symbol rate. So there _will_ be
intersymbol interference, it's not simple as stated in my previous mail.

-Markus
Reply by mnentwig September 8, 20072007-09-08
I understand you're transmitting a single sine cycle as pulse?

That means the carrier is multiplied with a rectangular window in the time
domain. 
The spectrum of that window is a sinc=sin(x)/x function with zeros at
1/750 s intervals, and is convolved with the carrier in the frequency
domain("appears around the carrier frequency") 
Ideally, the receiver's filter implements that sinc frequency response.
The spectrum of your filter is pretty wide, and so is the optimum Rx
filter.

Due to the choice of pulse shaping filter, the impulse response decays
only slowly. 

But as long as the timing is accurate, the symbols don't interfere with
each other, picture here: 
http://www.elisanet.fi/mnentwig/webroot/pulse_and_Nyquist/index.html

-mn

Reply by rifo 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



Reply by rifo 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 mnentwig 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 rifo 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 mnentwig 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 rifo 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 mnentwig 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 mnentwig 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)