Скрипт матлаба для второй практики инф сети

EbNoVec = [-2:1:20]; % начальное значение ; шаг ; конечное значение - формати массива
%axis([-2 10 1e-5 .1]);
SERVec_PSK = []; % инициализация массива результата

% далее ряд функций симулинка
load_system('compare_PSK'); % загрузка модели  - имя файла без расширения
opts = simset('SrcWorkspace','Current','DstWorkspace','Current');
set_param('compare_PSK/AWGN Channel PSK','EsNodB','EbNodB+10*log10(4)'); % изменение параметров модуля - изменяется парамет модуля AWGN
%log10(4) - логарифм десятичнный от количесва символов в алфавите ; EsNodB-
%тем работы нашей модели 0- символ за раз  - в этом же темпе накладывается
%и шаг -  в связи с этим и задана поправка log10(4); 
set_param('compare_PSK/Error Rate Calculation PSK','numErr','1e4'); % устанавливается значение числа ошибок при достижении которого симуляция останавливается

% Simulate multiple times.

for n = 1:length(EbNoVec)
    fprintf (1,'Выполняем %2d запуск из %d\n',n,length(EbNoVec));
    EbNodB = EbNoVec(n);
    sim('compare_PSK',1e7,opts);
    SERVec_PSK(n,:) = PSK_SER;    
    semilogy(EbNoVec(n),SERVec_PSK(n,1),'go-'); % Plot point.
%    title('Bit Error Rate (BER)');
%    legend('Actual BER');
%    xlabel('Eb/No (dB)'); ylabel('Bit Error Rate');
    hold on;
    drawnow;
end

hold off;
%
BER_PSK_16_an=(2/4)*0.5*erfc(sin(pi/16)*sqrt(4*2*(10.^(EbNoVec./10)))/sqrt(2));
%
semilogy(EbNoVec,SERVec_PSK(:,1),'go',EbNoVec,4.*BER_PSK_16_an,'mx:','LineWidth',1.2); % полулогарифмический график
set(gca, ...
'XAxisLocation','bottom', ...
'XTickMode','auto', ...
'YTickMode','auto', ...
'FontSize',14, ...
'FontName','Arial Unicode MS', ...
'Box','on');
legend('PSK sim','PSK analit',3);
grid off;
%title('Symbol Error Rate (SER)','FontSize',14);
xlabel('Eb/No (dB)','FontSize',14); ylabel('SER','FontSize',14);
hold off;