DSPRelated.com
Forums

AWGN channel in OFDM-System

Started by steffen June 15, 2005
Hallo everybody,

I've just finished my OFDM-Simulation, but I'm still facing a little
problem with the AWGN-function provided by Matlab.
The transmitted OFDM-Signal s(k) consists of samples of the komplexe
baseband signal. (As I've implemented a diskrete time
OFDM-baseband-system). The channel should add white Gaussian noise n(k).
An the resulting signal r(k) = s(k) + n(k) will than be processed at the
receiver.

I've just implemented to following code-lines for the AWGN-channel:

----------------------------------------------
k = log2(M);    % BPSK M=2, QPSK M=4, 16QAM M=16, 64QAM M=64
EbNo = 15;      % just an example value (dB)
OSR = 1;        % Oversampling-Ratio = 1 
                % due to sample based baseband-signal
SNR = EbNo + 10*log10(k) - 10*log10(OSR)
rx = awgn(tx, SNR, 'measured', 'dB');
----------------------------------------------

Is there anybody out there who can tell me, why the resulting noise added
by the AWGN-function changes the SNR when I'm changing the modulation? As
I've considered the "number of bits per symbol" by "k", the resulting SNR
has to be equal if the modulation-symbols are normalized to equal average
signal power. The normalization was done by multiplying each
modulation-symbol with Kmod = sqrt(3/(2*(M-1)) except @ BPSK, where Kmod =
1 holds. (Thus the power spectral density is equal for BPSK, QPSK, 16QAM
and 64QAM subcarrier-modulation, when processing the transmitted signal
s(k) with the Matlab build in function pwelch(...)).

Please, can anybody help me? Or tell me another "working" solution?

Many thanks in advance

Steffen

		
This message was sent using the Comp.DSP web interface on
www.DSPRelated.com
> Is there anybody out there who can tell me, why the resulting noise added > by the AWGN-function changes the SNR when I'm changing the modulation? As > I've considered the "number of bits per symbol" by "k", the resulting SNR > has to be equal if the modulation-symbols are normalized to equal average > signal power.
I think you've got it backwards. Eb/N0 is fixed in your example, presumably so you can fairly compare bit-error rates for different modulation schemes. Since you have the same SNR per bit in each case, and a different number bits in each case, you have forced a different SNR in each case. If you want to test each scheme at the same SNR, fix one value of SNR, and run all the simulations at this value of SNR. When you are finished and you want to compare the schemes fairly, for example BER vs Eb/N0, you will have to compute Eb/N0 = SNR - 10log10(k), where k is again the number of bits modulated in each scheme. You will find in this case that the error rate increases as the constellation size k increases, because the noise power is fixed, while the distance between constellation points reduces.
"steffen" <steffen@dickscheit.de> wrote in message 
news:JdOdnYblkK7TJC3fRVn-gg@giganews.com...
> Hallo everybody, > > I've just finished my OFDM-Simulation, but I'm still facing a little > problem with the AWGN-function provided by Matlab. > The transmitted OFDM-Signal s(k) consists of samples of the komplexe > baseband signal. (As I've implemented a diskrete time > OFDM-baseband-system). The channel should add white Gaussian noise n(k). > An the resulting signal r(k) = s(k) + n(k) will than be processed at the > receiver. > > I've just implemented to following code-lines for the AWGN-channel: > > ---------------------------------------------- > k = log2(M); % BPSK M=2, QPSK M=4, 16QAM M=16, 64QAM M=64 > EbNo = 15; % just an example value (dB) > OSR = 1; % Oversampling-Ratio = 1 > % due to sample based baseband-signal > SNR = EbNo + 10*log10(k) - 10*log10(OSR) > rx = awgn(tx, SNR, 'measured', 'dB'); > ---------------------------------------------- > > Is there anybody out there who can tell me, why the resulting noise added > by the AWGN-function changes the SNR when I'm changing the modulation? As > I've considered the "number of bits per symbol" by "k", the resulting SNR > has to be equal if the modulation-symbols are normalized to equal average > signal power. The normalization was done by multiplying each > modulation-symbol with Kmod = sqrt(3/(2*(M-1)) except @ BPSK, where Kmod = > 1 holds. (Thus the power spectral density is equal for BPSK, QPSK, 16QAM > and 64QAM subcarrier-modulation, when processing the transmitted signal > s(k) with the Matlab build in function pwelch(...)). > > Please, can anybody help me? Or tell me another "working" solution? > > Many thanks in advance >
Hi Steffen - it looks perfectly o.k. to me ( though I don't use matlab's signal processing library so I don't know what awgn() does or what the modulation routines do). How different is the SNR that you see on rx compared with what you expect to see ? Are we talking about a big difference or a small one? I would have thought that if mean(abs(tx).^2)=1 for all of your modulation types then mean(abs(rx).^2) = 1+10^(-1.5) more or less for all your modulations - is it very different from this value and if so for which modulations? sorry I can't help but I am as puzzled as you here. Best of Luck - Mike
<porterboy76@yahoo.com> wrote in message 
news:1118907172.871765.161170@f14g2000cwb.googlegroups.com...
>> Is there anybody out there who can tell me, why the resulting noise added >> by the AWGN-function changes the SNR when I'm changing the modulation? As >> I've considered the "number of bits per symbol" by "k", the resulting SNR >> has to be equal if the modulation-symbols are normalized to equal average >> signal power. > > I think you've got it backwards. Eb/N0 is fixed in your example, > presumably so you can fairly compare bit-error rates for different > modulation schemes. Since you have the same SNR per bit in each case, > and a different number bits in each case, you have forced a different > SNR in each case. > > If you want to test each scheme at the same SNR, fix one value of SNR, > and run all the simulations at this value of SNR. When you are finished > and you want to compare the schemes fairly, for example BER vs Eb/N0, > you will have to compute Eb/N0 = SNR - 10log10(k), where k is again > the number of bits modulated in each scheme. You will find in this case > that the error rate increases as the constellation size k increases, > because the noise power is fixed, while the distance between > constellation points reduces. >
Ah is that all it was , he's not changing EbNo to keep SNR constant when he changes the modulation type so naturally SNR changes? achh! I never thought of that! best of luck - Mike
@ all

thanks for all your fast replies :o)

Yep - I thought I've made a misstake in the way I tried to simulate.
Sh.. happens ;o)

At the moment the SNR added by the awgn(...)-function changes in steps of
approximatly 2dB when I change the modulation-scheme from BPSK -> QPSK ->
16QAM -> 64QAM.

I will check your hints and post the results. 

Many thanks @ all

Steffen
		
This message was sent using the Comp.DSP web interface on
www.DSPRelated.com
@all

thanks for all your hints again

Everything is fine now -> all results are correct :o)

Thanks, Steffen



		
This message was sent using the Comp.DSP web interface on
www.DSPRelated.com