gsmk.asv

来自「小区初搜为GSM系统中的一个关键过程」· ASV 代码 · 共 45 行

ASV
45
字号
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 + =
减小字号Ctrl + -
显示快捷键?