DSPRelated.com
Forums

QAM Flat Rayleigh Fading

Started by mylilbaby2003 September 5, 2007
Hello,

I am trying to simulate QAM Flat Rayleigh Fading, but I keep getting 50%
for BER with increasing SNR.  I use qammod to encode the bits to QAM and
deqammod to decode.  

I have the transmitted vector go through the Rayleigh channel by this:

ry=h.*ty

where ry is the received vector, h is the Rayleigh channel, and ty is the
transmitted vector.


To find the bit energy, I have this: 

Ersum=real(ty).^2+imag(ty).^2;         %Average total energy received
Esymr=Ersum/(N/K);                     %Average symbol energy, N/K=total
numbers of symbols
Ebr=Ersum/N;                           %Average bit energy, N=total
numbers of bits
sgmar=sqrt(Ebr/(2*snr));               %Noise standard deviation

I use sgmar to generate the AWGN noise.  

What am I doing wrong?  Please help.


Hello,

Try the following:
- disable noise completely (zero amplitude) Does it work now?
- If not, try without the channel. 
- if the channel is the problem, it's probably the delay. Use only one
fixed tap at the center position for now. You may have to take the delay
into account, so that Rx is synchronized.
- depending on your simulation environment, the path for the reference
bitstream from Tx to Rx may need the same delay as the channel.

-mn
>Hello, > >Try the following: >- disable noise completely (zero amplitude) Does it work now? >- If not, try without the channel. >- if the channel is the problem, it's probably the delay. Use only one >fixed tap at the center position for now. You may have to take the delay >into account, so that Rx is synchronized. >- depending on your simulation environment, the path for the reference >bitstream from Tx to Rx may need the same delay as the channel. > >-mn >
Hi, Thank you for your suggestion. I tried to disable noise but it didn't work. But when I disable the channel, it does work. Well what I am doing for my channel is this: h=1/sqrt(2)*(randn+i*randn) I do not have taps. I thought that taps are for frequency selective channels and that flat channels you don't need the taps. Thank you.
On Sep 5, 4:28 pm, "mylilbaby2003" <mylilbaby2...@yahoo.com> wrote:
> > Hi, > > Thank you for your suggestion. I tried to disable noise but it didn't > work. But when I disable the channel, it does work. > > Well what I am doing for my channel is this: > > h=1/sqrt(2)*(randn+i*randn) > > I do not have taps. I thought that taps are for frequency selective > channels and that flat channels you don't need the taps. > > Thank you.
Is your receiver at least compensating for the channel-induced rotation?
>On Sep 5, 4:28 pm, "mylilbaby2003" <mylilbaby2...@yahoo.com> wrote: >> >> Hi, >> >> Thank you for your suggestion. I tried to disable noise but it didn't >> work. But when I disable the channel, it does work. >> >> Well what I am doing for my channel is this: >> >> h=1/sqrt(2)*(randn+i*randn) >> >> I do not have taps. I thought that taps are for frequency selective >> channels and that flat channels you don't need the taps. >> >> Thank you. > >Is your receiver at least compensating for the channel-induced >rotation? > >
I did try that, but that only worked for 4QAM. When I simulated 16 and 64QAM, it goes back to the 50%. Do we ignore this rotation when we are simulating in order to compensate for it? Because when I did it, I totally ignored the phase and only used the magnitude of the channel.
I did try that, but that only worked for 4QAM. When I simulated 16 and
64QAM, it goes back to the 50%

Might be a problem with the amplitude. With 4QAM (=QPSK), gain does not
matter, but with 16/64 QAM it does.

-mn
Hello again,

sorry, I skipped over some words in your original question. 
Yes, forget about delay, the -flat- fading channel doesn't have any.

So you mentioned that you were using only the amplitude variations,
keeping the phase fixed.

Further, it works with 4QAM/QPSK, but not with 16QAM or 64QAM.

If so, I think it's quite clear what happens: 16QAM and 64QAM distinguish
between different amplitude levels. For example the samples 1+1i and 4+4i
correspond to different constellation points.
In 4QAM/QPSK the amplitude does not matter at all, 1+1i and 4+4i are the
same constellation point, as long as they fall into the same quadrant.

Hope that helps.

Cheers

Markus
On Sep 6, 12:49 am, "mnentwig" <mnent...@elisanet.fi> wrote:
> I did try that, but that only worked for 4QAM. When I simulated 16 and > 64QAM, it goes back to the 50% > > Might be a problem with the amplitude. With 4QAM (=QPSK), gain does not > matter, but with 16/64 QAM it does. > > -mn
Let's ask the original poster what "QAM" stands for. ;-)
On Sep 6, 12:01 am, "mylilbaby2003" <mylilbaby2...@yahoo.com> wrote:

> > I did try that, but that only worked for 4QAM. When I simulated 16 and > 64QAM, it goes back to the 50%. Do we ignore this rotation when we are > simulating in order to compensate for it? Because when I did it, I > totally ignored the phase and only used the magnitude of the channel.
Of course it doesn't work. The QAM family of modulation relays information by phase and magnitude. And 4-QAM / QPSK is a special case that uses only phase. So now you can think back as to why your system doesn't work. How does the channel affect the received signal?
>On Sep 6, 12:01 am, "mylilbaby2003" <mylilbaby2...@yahoo.com> wrote: > >> >> I did try that, but that only worked for 4QAM. When I simulated 16
and
>> 64QAM, it goes back to the 50%. Do we ignore this rotation when we
are
>> simulating in order to compensate for it? Because when I did it, I >> totally ignored the phase and only used the magnitude of the channel. > >Of course it doesn't work. The QAM family of modulation relays >information >by phase and magnitude. And 4-QAM / QPSK is a special case that uses >only phase. So now you can think back as to why your system doesn't >work. >How does the channel affect the received signal? > >
Well the channel changes both the amplitude and phase of the signal. Since the phase is distributed from 0 to 2pi, the phase of the received signal can significantly different than that of the transmitted signal. And since this phase is random, the error in phase is significant, no matter the SNR. The amplitude of the channel is Rayleigh distributed and therefore will also have significant errors as well. When I demodulate the received signal, these changes cause the demodulation to have a lot of errors. Is this right? Is there another way to set up the channel?