📄 gsmk.asv
字号:
function gsmk;
N = 32;
BT = 0.5;
Amp = 1;
num_bits = 1000;
Psig = (Amp^2/2)*N;
for n= 1:18
SNR(N) = n-1;
Pn = Psig/(10^(SNR(n)/10));
sigma(n) = sqrt(Pn);
end
for n = 1:18
errors = 0;
totalsymbols = 0;
window = [-1.5:1/N:1.5];
coeff = errfunc(window,BT);
while(errors<round(10000*(0.68)^(n-1)))
NRZ = ((rand(1,num_bits)>0.5)-0.5)*2;
clear impulse
impulse(1:N:num_bits*N) = [NRZ];
phase = filter(coeff,1,impulse);
B = 1/(2*N);
A = [1 -1];
phi =filter(B,A,phase);
I = A*cos(2*pi*phi);
Q = A*sin(2*pi*phi);
fidI = fopen('I.csv','w');
fidQ = fopen('Q.csv','w');
fprintf(fidI,'GMSK data for generating I\n');
fprintf(fidI,'GMSK data for generating Q\n');
for ii = 1:1:length(I)
fprintf(fidI,'%d, %f\n',ii,I(ii));
fprintf(fidQ,'%d, %f\n',ii,Q(ii));
end
fclose(fidI);
fclose(fidQ);
noiseI = normrnd(0,sigma(n),1,length(I));
noiseQ = normrnd(0,sigma(n),1,length(Q));
In = I + noiseI;
Qn = Q + noiseQ;
z = In + Qn*j;
[symbols demod] = detect0(z,N);
%[symbols demod] = trN2;
s1 = length(symbols);
errors = errors + sum(rem((symbols(4:s1)>0)+(NRZ())
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -