diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-07-30 17:44:45 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2019-08-01 13:46:00 +0200 |
commit | 8a784c714595170d79078bdde3d7ffe27c5510fe (patch) | |
tree | 23e761ec20ff1cafc306777f0827493bc343dc3e /Transceiver52M | |
parent | 7758542087239cff32a32d94f204fa6e7a1483b2 (diff) |
Move matlab files under utils/matlab
Change-Id: I15b687fbf436d662b264cb00f72b367ccd64b962
Diffstat (limited to 'Transceiver52M')
-rw-r--r-- | Transceiver52M/laurent.m | 83 | ||||
-rw-r--r-- | Transceiver52M/pulseApproximate.m | 15 |
2 files changed, 0 insertions, 98 deletions
diff --git a/Transceiver52M/laurent.m b/Transceiver52M/laurent.m deleted file mode 100644 index ef15428..0000000 --- a/Transceiver52M/laurent.m +++ /dev/null @@ -1,83 +0,0 @@ -% -% Laurent decomposition of GMSK signals -% Generates C0, C1, and C2 pulse shapes -% -% Pierre Laurent, "Exact and Approximate Construction of Digital Phase -% Modulations by Superposition of Amplitude Modulated Pulses", IEEE -% Transactions of Communications, Vol. 34, No. 2, Feb 1986. -% -% Author: Thomas Tsou <tom@tsou.cc> -% - -% Modulation parameters -oversamp = 16; -L = 3; -f = 270.83333e3; -T = 1/f; -h = 0.5; -BT = 0.30; -B = BT / T; - -% Generate sampling points for L symbol periods -t = -(L*T/2):T/oversamp:(L*T/2); -t = t(1:end-1) + (T/oversamp/2); - -% Generate Gaussian pulse -g = qfunc(2*pi*B*(t - T/2)/(log(2)^.5)) - qfunc(2*pi*B*(t + T/2)/(log(2)^.5)); -g = g / sum(g) * pi/2; -g = [0 g]; - -% Integrate phase -q = 0; -for i = 1:size(g,2); - q(i) = sum(g(1:i)); -end - -% Compute two sided "generalized phase pulse" function -s = 0; -for i = 1:size(g,2); - s(i) = sin(q(i)) / sin(pi*h); -end -for i = (size(g,2) + 1):(2 * size(g,2) - 1); - s(i) = sin(pi*h - q(i - (size(g,2) - 1))) / sin(pi*h); -end - -% Compute C0 pulse: valid for all L values -c0 = s(1:end-(oversamp*(L-1))); -for i = 1:L-1; - c0 = c0 .* s((1 + i*oversamp):end-(oversamp*(L - 1 - i))); -end - -% Compute C1 pulse: valid for L = 3 only! -% C1 = S0 * S4 * S2 -c1 = s(1:end-(oversamp*(4))); -c1 = c1 .* s((1 + 4*oversamp):end-(oversamp*(4 - 1 - 3))); -c1 = c1 .* s((1 + 2*oversamp):end-(oversamp*(4 - 1 - 1))); - -% Compute C2 pulse: valid for L = 3 only! -% C2 = S0 * S1 * S5 -c2 = s(1:end-(oversamp*(5))); -c2 = c2 .* s((1 + 1*oversamp):end-(oversamp*(5 - 1 - 0))); -c2 = c2 .* s((1 + 5*oversamp):end-(oversamp*(5 - 1 - 4))); - -% Plot C0, C1, C2 Laurent pulse series -figure(1); -hold off; -plot((0:size(c0,2)-1)/oversamp - 2,c0, 'b'); -hold on; -plot((0:size(c1,2)-1)/oversamp - 2,c1, 'r'); -plot((0:size(c2,2)-1)/oversamp - 2,c2, 'g'); - -% Generate OpenBTS pulse -numSamples = size(c0,2); -centerPoint = (numSamples - 1)/2; -i = ((0:numSamples) - centerPoint) / oversamp; -xP = .96*exp(-1.1380*i.^2 - 0.527*i.^4); -xP = xP / max(xP) * max(c0); - -% Plot C0 pulse compared to OpenBTS pulse -figure(2); -hold off; -plot((0:size(c0,2)-1)/oversamp, c0, 'b'); -hold on; -plot((0:size(xP,2)-1)/oversamp, xP, 'r'); diff --git a/Transceiver52M/pulseApproximate.m b/Transceiver52M/pulseApproximate.m deleted file mode 100644 index 2ff9234..0000000 --- a/Transceiver52M/pulseApproximate.m +++ /dev/null @@ -1,15 +0,0 @@ -pp = [0 0 0.015 0.18 0.7 0.96 0.7 0.18 0.015 0 0]; -t = -2.5:0.5:2.5; - -v = -0.000:-0.001:-1.999; - - -for ix1 = 1:length(v), - disp(ix1); - for ix2 = 1:length(v), - p = exp(v(ix1)*t.^2+v(ix2)*t.^4); - r(ix1,ix2) = norm(p./max(abs(p)) - pp./max(abs(pp))); - end; -end; - - |