📄 gmsk_modmy.m
字号:
function gmsk_modmy
%
% gmsk_mod: This function accepts a GSM burst bit sequence and
% performs a GMSK modulation of the sequence. The
% modulation is according to the GSM 05.05 recommendations
%
% SYNTAX: [i,q] = gmsk_mod(burst,Tb,osr,BT)
%
% INPUT: burst A differential encoded bit sequence (-1,+1)
% Tb Bit duration (GSM: Tb = 3.692e-6 Sec.)
% osr Simulation oversample ratio. osr determines the
% number of simulation steps per information bit
% BT The bandwidth/bit duration product (GSM: BT = 0.3)
%
% OUTPUT: i,q In-phase (i) and quadrature-phase (q) baseband
% representation of the GMSK modulated input burst
% sequence
%
% SUB_FUNC: ph_g.m This sub-function is required in generating the
% frequency and phase pulse functions.
%
% WARNINGS: Sub-function ph_g.m assumes a 3xTb frequency pulse
% truncation time
%
% TEST(S): Function tested using the following relations
%
% i)
%
% I^2 + Q^2 = Cos(a)^2 + Sin(a)^2 = 1
%
% ii)
%
% When the input consists of all 1's the resulting baseband
% outputs the function should return a sinusoidal signal of
% frequency rb/4, i.e. a signal having a periode time of
% approximately 4*Tb = 4*3.692e-6 s = 1.48e-5 s for GSM
%
% AUTHOR: Jan H. Mikkelsen / Arne Norre Ekstr鴐
% EMAIL: hmi@kom.auc.dk / aneks@kom.auc.dk
%
% $Id: gmsk_mod.m,v 1.5 1998/02/12 10:50:10 aneks Exp $
% ACCUIRE GMSK FREQUENCY PULSE AND PHASE FUNCTION
BURST = [0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0];
DIFF_ENC = diff_enc(BURST);
[g,q] = ph_g;
% g=[0 0.0072 0.0231 0.0484 0.0764 0.0950 0.0950 0.0764 0.0484 0.0231 0.0072 0];
% q=[0 0.0072 0.0302 0.0786 0.1550 0.2500 0.3450 0.4214 0.4698 0.4928 0.5000 0.5000];
q0=q;
% PREPARE VECTOR FOR DATA PROCESSING
%
BURST = DIFF_ENC;
bits = length(BURST);
OSR = 4;
f_res = zeros(1,(bits+2)*OSR);
% GENERATE RESULTING FREQUENCY PULSE SEQUENCE
%
% for n = 1:bits,
% f_res((n-1)*OSR+1:(n+2)*OSR) = f_res((n-1)*OSR+1:(n+2)*OSR) + BURST(n).*g;
% end
f_res(1:OSR)=BURST(1).*g(1:OSR);
f_res(OSR+1:2*OSR)=BURST(2).*g(1:OSR)+BURST(1).*g(OSR+1:2*OSR);
for n=3:bits
f_res((n-1)*OSR+1:n*OSR)=BURST(n).*g(1:OSR)+BURST(n-1).*g(OSR+1:2*OSR)+BURST(n-2).*g(2*OSR+1:3*OSR);
end
f_res(bits*OSR+1:(bits+1)*OSR)=BURST(bits).*g(OSR+1:2*OSR)+BURST(bits-1).*g(2*OSR+1:3*OSR);
f_res((bits+1)*OSR+1:(bits+2)*OSR)=BURST(bits).*g(2*OSR+1:3*OSR);
% CALCULATE RESULTING PHASE FUNCTION
%
theta0 = cumsum(f_res);
theta = pi*theta0
% PREPARE DATA FOR OUTPUT
%
I0 = cos(theta);
Q0 = sin(theta);
QI = [0 32767 -804 32757 -3212 32609 -7962 31785 -15446 28898 -22594 23731 -27466 17869 -28898 15446 -27466 17869 -22005 24279 -12539 30273 0 32767 12539 30273 23170 23170 30273 12539 32767 0 30273 -12539 24279 -22005 17869 -27466 15446 -28898 17869 -27466 24279 -22005 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 24279 22005 17869 27466 15446 28898 17869 27466 24279 22005 30273 12539 32767 0 30273 -12539 24279 -22005 17869 -27466 15446 -28898 17869 -27466 24279 -22005 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -24279 -22005 -17869 -27466 -15446 -28898 -17869 -27466 -24279 -22005 -30273 -12539 -32767 0 -30273 12539 -24279 22005 -17869 27466 -15446 28898 -17869 27466 -24279 22005 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 24279 22005 17869 27245 15446 28898 17869 27245 24279 22005 30273 12539 32767 0 30273 -12539 24279 -22005 17869 -27466 15446 -28898 17869 -27466 24279 -22005 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 24279 22005 18204 27245 15446 28898 18204 27245 24279 22005 30273 12539 32767 0 30273 -12539 24279 -22005 17869 -27466 15446 -28898 17869 -27466 24279 -22005 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -24279 -22005 -18204 -27245 -15446 -28898 -18204 -27245 -24279 -22005 -30273 -12539 -32767 0 -30273 12539 -24279 22005 -17869 27466 -15446 28898 -17869 27466 -24279 22005 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 24279 22005 18204 27245 15446 28898 18204 27245 24279 22005 30273 12539 32767 0 30273 -12539 23170 -23170 12539 -30273 0 -32767 -12539 -30273 -23170 -23170 -30273 -12539 -32767 0 -30273 12539 -23170 23170 -12539 30273 0 32767 12539 30273 23170 23170 30273 12539 32767 0 30273 -12539 23170 -23170 12539 -30273 0 -32767 -12539 -30273 -23170 -23170 -30273 -12539 -32767 0 -30273 12539 -23170 23170 -12539 30273 0 32767 12539 30273 23170 23170 30273 12539 32767 0 30273 -12539 23170 -23170 12539 -30273 0 -32767 -12539 -30273 -23170 -23170 -30273 -12539 -32767 0 -30273 12539 -23170 23170 -12539 30273 0 32767 12539 30273 23170 23170 30273 12539 32767 0 30273 -12539 23170 -23170 12539 -30273 0 -32767 -12539 -30273 -23170 -23170 -30273 -12539 -32767 0 -30273 12539 -23170 23170 -12539 30273 0 32767 12539 30273 23170 23170 30273 12539 32767 0 30273 -12539 23170 -23170 12539 -30273 0 -32767 -12539 -30273 -23170 -23170 -30273 -12539 -32767 0 -30273 12539 -23170 23170 -12539 30273 0 32767 12539 30273 23170 23170 30273 12539 32767 0 30273 -12539 23170 -23170 12539 -30273 0 -32767 -12539 -30273 -23170 -23170 -30273 -12539 -32767 0 -30273 12539 -23170 23170 -12539 30273 0 32767 12539 30273 22005 24279 27466 17869 28898 15446 27466 17869 22005 24279 12539 30273 0 32767 -12539 30273 -22005 24279 -27466 17869 -28898 15446 -27466 17869 -23170 23170 -17869 27466 -15446 28898 -17869 27466 -24279 22005 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 24279 22005 17869 27466 15446 28898 17869 27466 24279 22005 30273 12539 32767 0 30273 -12539 23170 -23170 12539 -30273 0 -32767 -12539 -30273 -23170 -23170 -30273 -12539 -32767 0 -30273 12539 -24279 22005 -17869 27466 -15446 28898 -17869 27466 -24279 22005 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -24279 -22005 -17869 -27466 -15446 -28898 -17869 -27466 -24279 -22005 -30273 -12539 -32767 0 -30273 12539 -23170 23170 -12539 30273 0 32767 12539 30273 23170 23170 30273 12539 32767 0 30273 -12539 24279 -22005 17869 -27466 15446 -28898 17869 -27466 24279 -22005 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -24279 -22005 -18204 -27245 -15446 -28898 -18204 -27245 -24279 -22005 -30273 -12539 -32767 0 -30273 12539 -24279 22005 -17869 27466 -15446 28898 -17869 27466 -24279 22005 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 24279 22005 18204 27245 15446 28898 18204 27245 24279 22005 30273 12539 32767 0 30273 -12539 24279 -22005 17869 -27466 15446 -28898 17869 -27466 24279 -22005 30273 -12539 32767 0 30273 12539 23170 23170 12539 30273 0 32767 -12539 30273 -23170 23170 -30273 12539 -32767 0 -30273 -12539 -23170 -23170 -12539 -30273 0 -32767 12539 -30273 23170 -23170 30273 -12539 32767 0 30273 12539 24279 22005 18204 27245 15446 28898 18204 27245 24279 22005 30273 12539 32767 0 30273 -12539 23731 -22594 15446 -28898 7962 -31785 3212 -32609 804 -32757 0 -32767 0 -32767]
QI1 = QI/32768
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -