I implement a GMSK modulation scheme presented here (p 64 in pdf and copied below)
As gaussian density function I use the standard Maltab function gaussfir and convolve
the rect-function with it.
My rect function:
a = randi([0,1],N,1); % Random data, N x 1
ak = 2*a-1; % NRZ data: +/- 1, N
ak_1 = kron(ones(length(ak), 1), 0);
ak_1(1) = ak(end);
for i = 1: length(ak)-1
ak_1(i+1) = ak(i);
end
for i = 1 : length(ak)
akp = (-1)^i .* ak.ak_1; % (-1)^k d_k * d_{k-1}
end
ak_rect = kron(akp,ones(M,1)); % M*N x 1
I have a doubt in the realisation the following equation:
My attempt:
nrz_ov_f = conv(H,ak_rect,'full');
nrz_ov_f = nrz_ov_f/max(abs(nrz_ov_f));
%integrate to get phase information
phi = filter(1,[1,-1],nrz_ov_f*Ts); % Ts = Tb/M; M = 4- oversampling
phi = phi *0.5*pi/2; % Tb = 2
In the equation there is a product with a_k. Does it mean I have to implement phi as follow:
phi = phi *ak
% phi = ak * pi/2 * cumsum(phi)
?





phiin my code is a full realisation of the phase-equation given in pdf ( or represented in the question I posted). If I use your code, yourph, I will have to take a product with the input signal( in my codeak) and $\frac{\pi}{2}$ – FrimHart64 Apr 26 '22 at 07:10