Rice channel + AWGN with lower BER than AWGN alone ??

Started by roblkc3 3 years ago7 replieslatest reply 7 months ago266 views


I am playing with the Matlab simulation of an OFDM-based modem I have created, and I am facing a weird problem: I have my frames pass through the "usual encoding/mapping/modulation/IFFT", then they pass in a channel which can be:
- ideal -> I do not alter them at all
- AWGN -> I use the awgn() function from Matlab to impose a sequence of SNR values
- Rice -> I use the comm.RicianChannel() function from Matlab (in these first attempts I just add an echo after 1.4 samples with power -28 dB, and another after 3.3 samples with power -29 dB, the LOS component is either at 0 dB or -1 dB --- doesn't change that much), and then I pass the result through the very same AWGN channel described above.

The SNR values are relative to the strength of the signal (I use the 'measured' option of the awgn() function), so I shouldn't be unwillingly increasing the power of the signal.
To my great surprise, the Rice channel scores way better than the AWGN channel alone (to be precise, I get to BER == 0 almost 2 dB before), whereas in my mind I should get at best the same results (if my modem is robust to multipaths), slightly worse otherwise.

Does this make any sense to you (and I am ignoring a trivial fact well known in the DSP domain) or have I got a very silly bug somewhere in the code ?

Thanks a lot in advance for your help! :)


[ - ]
Reply by Mannai_MuraliMarch 19, 2021

It is incorrect to use measured option while using for fading channel.

example:If you use snr of 20dB measured it means AWGN is added 20dB below the faded signal level.(Measured always measures the signal level and adds noise below the level by given dB.The effect of FADING is absent in the case.It is as good AWGN performence which is wrong.

Correct way of doing the simulation before convolving with fading channel make to unit power by normalizing.This unit power signbal is then convolved with fading channel thus reducing the power.Add noise using AWGN with out using 'measured' option.This will assume thet signal is at 0dB.Noise will be added at say 20dB below the level assuming the signal is at 0dB.Actually signal after fading channel will NOT be at odB due to fading.Signal will be at very low level.But the same level of noise is added as f signal were at 0dB.This will make the SNR poor much WORSE than 20dB.So BER will be bad.

[ - ]
Reply by fharrisMarch 19, 2021

does your simulation include a channel probe and an equalizer? Also, have you examined the spectrum of the channel and of the transmitted and received signal? The combined channel response may have presented constructive interference and raised you signal strength. Should always see signal spectrum at input and output of channel to make sure it is doing what you think is is doing. Try changing sign of echoes to see that effect too.  -30 dB echoes should have insignificant effect on receiver performance.

fred h

[ - ]
Reply by philipoakleyMarch 19, 2021

Just a quick thought, without any real 'thinking' - do those two delayed signals simply amount to a small phase shift that effectively increase the size of the signal, while the additive noise is unchanged, so the net effect is a better SNR to recover the core signal from..

[ - ]
Reply by SlartibartfastMarch 19, 2021

How to define SNR in fading channels is always confusing and a reasonable way to start arguments among comm engineers.

Are you measuring the signal level before or after the fading is introduced?   If you measure only the direct path signal power, which you say is sometimes not faded, then the reflected components will add to that, effectively increasing the signal power over what is in the direct ray.

So often the "signal" power includes the direct and reflected rays, since the equalization system ideally adds them all together coherently, anyway.

There is such a thing as "multipath gain", because you get the benefit of the power from multiple directions instead of just one.  Often that is only treated in system analysis when comparing omnidirectional vs directional antennas, since the gain increase of the directional antenna may be reduced a bit by the loss of multipath energy from the rejected directions.

So, yes, it is a sometimes very confusing thing to try to properly assess performance in fading.   The first thing is to make sure you're working with the definition of SNR that best fits your context, i.e., do you integrate all of the rays first or however is preferred in your particular case.

[ - ]
Reply by roblkc3March 19, 2021

Thanks to everybody for the quick and informative replies ! :)

I had thought about this potential issue with constructive interference, therefore what I do is to apply the AWGN channel after the Rice channel, and I do that by using the 'measured' option of Matlab's awgn() function.

riceChan = comm.RicianChannel('SampleRate', p.samplingRate, ...
                              'PathDelays', p.rayleigh.pathDelays * p.sampleTime, ...
                              'AveragePathGains', p.rayleigh.pathGains, ...
                              'NormalizePathGains', false);
% Add some empty channel space past the input signal to ensure that
% the echoes introduced by the channel are not cut off sharply.
inData{1} = [inData{1}, zeros(1, 100)];
% Apply Rician channel.
outData{1} = riceChan(inData{1});
% Corrupt with AWGN.
outData{1} = awgn(outData{1}, p.sim.snrVal, 'measured');

From Matlab's awgn() function manual:

When signalpower is 'measured', the signal level of in is computed to determine the appropriate noise level based on the value of snr.

I do have an equalizer in the system, I have tried turning it off altogether and performances get (of course) worse in both cases, but the Rice+awgn is still 1 dB better than awgn alone.

[ - ]
Reply by Mannai_MuraliMarch 19, 2021

I have replied in detail.Please do NOT use AWGN even reading my reply.After convolving with fading channel do the following.

If you want SNR of 30 dB after Channel Fading (Fadded Signal Called 'Ricean Faded Signal SAY .It is a Complex Vector).

add White gaussian noise using 'randn' with varaince 0.001 (=30dB;If you want SNR 10dB variance =0.1).

Example for SNR=30dB for complex noise and signal.'L' Number of Samples.


Code Below

(AWGN NOT used)

AWGNAddedRiceanFaded Signal=Ricean Faded Signal+randn(L,1)*sqrt(0.001/2)+j*randn(L,1)*sqrt(0.001/2).

This will give BAD BER compared to AWGN Channel

[ - ]
Reply by roblkc3March 19, 2021

Dear Mannai_Murali,

Thanks a lot for your detailed explanation! :) I'll redo the experiments with the approach you've suggested.

Have a nice week-end!