Forums

GMSK modulation

Started by ik303 February 8, 2007
Hello all,

I have a few questions concerning GMSK modulation in the GSM physical
layer. My simulation is done in MATLAB, processed 148 bits and follows the
quadrature baseband implimentation method presented in: 
http://www.emc.york.ac.uk/reports/linkpcp/appD.pdf.

1. I am not sure that I understand correctly the convolution with the
Gaussian filter. What I do is :

BT = 0.3;
T = (3.69*10^-6);
B = BT/T;
time = -T:(T/10):T;
sigma = sqrt(log(2))/(2*pi*B);
H = (1/sigma)*(1/sqrt(2*pi))*exp((-time.^2)./(2*sigma^2));

I use this as my Gaussian pulse (1X21) and perform convolution with my
(1X1480) wave signal. Note that the wave signal is a "continuous" square
wave representation for 148 bits:
b = conv(H,wave)
b = b(1:1480);

Is it correct to truncate the resulting waveform to 1480 data points or am
I totally wrong here ?

2. The next step is to integrate the resulting signal and perform I/Q
decomposition:

time_index2 = 0:(T/10):((148*T)-(T/10)) ;
c = cumtrapz(time_index2,b);
I = cos(c);
Q = sin(c);

Is this the correct way to go ?

3. Final step is FM modulation:

f_c = 900*10^6;
m = (I.*sin(2*pi*f_c*time_index2)) + (Q.*cos(2*pi*f_c*time_index2));

Generally, I think that something is wrong with my approach but I cannot
figure out what. Any help would be greatly appreciated !

thank you in advance for your time,
John








clc; close all; clear all;

% 1. I am not sure that I understand correctly the convolution with
the
% Gaussian filter. What I do is :

BT = 0.3;  T = (3.69*10^-6);  B = BT/T;
time = -T:(T/10):T;
sigma = sqrt(log(2))/(2*pi*B);
H = (1/sigma)*(1/sqrt(2*pi))*exp((-time.^2)./(2*sigma^2));

wave = [];
for ii = 1:1:10
    insrt = (-2*round(rand)+1)*ones(1,148);
    wave = [wave insrt];
end

% I use this as my Gaussian pulse (1X21) and perform convolution with
my
% (1X1480) wave signal. Note that the wave signal is a "continuous"
square
% wave representation for 148 bits:
b = filter(H,1,wave);
b = b(1:1480);

% Is it correct to truncate the resulting waveform to 1480 data points
or am
% I totally wrong here ?
% 2. The next step is to integrate the resulting signal and perform I/
Q
% decomposition:

time_index2 = 0:(T/10):((148*T)-(T/10)) ;
c = cumtrapz(time_index2,b);
I = cos(c);
Q = sin(c);

% Is this the correct way to go ?
% 3. Final step is FM modulation:

f_c = 900*10^6;
m = (I.*sin(2*pi*f_c*time_index2)) + (Q.*cos(2*pi*f_c*time_index2));
figure; plot(abs(m));