Код:
clear; %очистка рабочей области
clc;
D = 1000;
N=6*D;
n=15; %параметры кодирования
k=5;
M = 16;
Fd = 1;
FsFd = 40; %отношение Fs/Fd
Fs = Fd*FsFd; %частота дискретизации
Fc = 4*Fd; % несущая частота
msg = randint(N,1,2); % Случайные данные
genpoly = cyclpoly(n,k);
code = encode(msg,n,k,'cyclic/binary',genpoly); % Кодирование
intrlvd = randintrlv(code,n); % Перемежение
scr = intrlvd;
for i = 2:D
scr(6*i-6:6*i) = scramblerflip(scr(6*i-6:6*i));
end
buf = buffer(scr,4)';
buf1 = bi2de(buf);
[s_qask,t]=dmod(buf1,Fc,Fd,Fs,'qask',M); %модуляция
snr = -10:20; % вектор отношений С/Ш (в децибелах)
for k1 = 1:length(snr)
sn = awgn(s_qask, snr(k1), 'measured'); % добавляем шум
dsy=ddemod(sn,Fc,Fd,Fs,'qask',M);
debuf1 = de2bi(dsy);
for j = 0:(length(debuf1)-1)
debuf(j*4+1:j*4+4) = debuf1(j+1,1:4);
end
descr = debuf';
for i = 2:D
descr(6*i-6:6*i) = scramblerflip(descr(6*i-6:6*i));
end
deintrlvd = randdeintrlv(descr(1:length(intrlvd)),n); % Деперемежение
decod = decode(deintrlvd,n,k,'cyclic/binary'); % Декодирование
decod = decod(1:length(msg));
tblen = 0;
[n1(k1),r1(k1)] = biterr(decod(tblen+1:length(msg)),msg(1:length(msg)-tblen));
end
semilogy(snr, r1); % вывод графика
уважаемые как поменять скремблирование... вот преподаватель заставил не могу ни как по другому реализовать.