DSPRelated.com
Forums

calculate received energy per symbol Es

Started by maha...@gmail.com November 9, 2009
Hi,

I am working on the 16-QAM modulator & demodulator. I need some help in that.

1.I want to find the received energy per symbol Es. I read in a book that we can transmit one single symbol and calculate the received signal energy(sum(x.^2))to find the energy per symbol.But in 16 qam I have two different energy level 1 and 3 .so how do I do it?

2.I want to scale my carrier and filter gain such a way that my received signal energy per symbol is just Es. So I can assign Es=1 and find SNR easily. How do I do it???

I have attached my code here.

M=input('Enter the contellation size: ');
k=log2(M);
T-3; fd=1/T; % Sampling Period
fs3; Ts=1/fs;
fsT=fs*T;fc3;
Es=1;EsNo=6;Nsymbols 00;
alpha=0.5;delay=6;

% Generatiing 16-qam symbols

RandomSignal=randint(1,k*Nsymbols,[0 1]);
ModulatedSignal=qam_mod(RandomSignal,k);

%Upsampling and SRRC Filtering real and imag part symbols separately

[RealSignal,f]=transmit_filter(real(ModulatedSignal),fd,fs,alpha,delay);
[ImagSignal,f]=transmit_filter(imag(ModulatedSignal),fd,fs,alpha,delay);

t=Ts*[0:length(RealSignal)-1];
PassbandSignal=(RealSignal.*cos(2*pi*fc*t))+(ImagSignal.*sin(2*pi*fc*t));

DcSignal=exp(1i*pi*t/Ts); y2=PassbandSignal+DcSignal;
BW00;taup=1;Chirprate=BW/taup;
ChirpSignal=exp(1i*pi*(BW/taup).*t.^2); TransmitSignal=y2.*ChirpSignal;

How should I scale the signal so the TransmitSignal has energy Es which I can set it as Es=1.It would be great if some can help me on this.

Regards,
Mahadevi.