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
AWGN channel in OFDM-System
Started by ●June 15, 2005
Reply by ●June 16, 20052005-06-16
> 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.
Reply by ●June 16, 20052005-06-16
"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
Reply by ●June 16, 20052005-06-16
<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
Reply by ●June 17, 20052005-06-17
@ 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
Reply by ●July 9, 20052005-07-09