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.
QAM Flat Rayleigh Fading
Started by ●September 5, 2007
Reply by ●September 5, 20072007-09-05
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
Reply by ●September 5, 20072007-09-05
>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.
Reply by ●September 5, 20072007-09-05
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?
Reply by ●September 6, 20072007-09-06
>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.
Reply by ●September 6, 20072007-09-06
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
Reply by ●September 6, 20072007-09-06
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
Reply by ●September 6, 20072007-09-06
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. > > -mnLet's ask the original poster what "QAM" stands for. ;-)
Reply by ●September 6, 20072007-09-06
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?
Reply by ●September 6, 20072007-09-06
>On Sep 6, 12:01 am, "mylilbaby2003" <mylilbaby2...@yahoo.com> wrote: > >> >> I did try that, but that only worked for 4QAM. When I simulated 16and>> 64QAM, it goes back to the 50%. Do we ignore this rotation when weare>> 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?






