Matlab, моделирование, детектирование BPSK/QPSK.

Поиск исполнителей для разовых работ

Модератор: Admin

Правила форума
Раздел предназначен для размещения объявлений о поиске исполнителя (физического лица) на выполнение каких-либо разовых работ на коммерческой основе.

Объявления о поиске постоянных сотрудников следует размещать в разделе «Вакансии»

При создании темы просьба придерживаться следующих правил:
  • заголовок темы должен отражать суть работы, которую необходимо выполнить
  • если географическое местоположение исполнителя имеет значение, это следует отразить в заголовке (пример: "Необходимо разработать модель элерона, г.Москва")
  • тело сообщения должно содержать:
    - описание работы в общем
    - контактные данные заказчика

ОБЯЗАТЕЛЬНО оставляйте "внешние" контактные данные
  • Имя,
  • e-mail,
  • телефон/скайп для голосовой связи
Для профилактики атаки спамеров рекомендуется маскировать адреса электронной почты и телефоны (например, писать "собака" вместо "@", цифры прописью или вставлять адрес в виде изображения, см. сервис http://2ip.ru/spambot/)

  • Рекомендуется сразу указывать форму, порядок взаимодействия между заказчиком и исполнителем, бюджет и форму оплаты
  • Не допускается размещение заказов на выполнение курсовых, дипломов и прочих учебных задач.
  • Общение участников форума с заказчиком происходит посредством системы личных сообщений или через контакты, указанные в сообщении.
  • В случаях когда объявление становится неактуальным, автору рекомендуется самостоятельно закрыть тему через меню: "Опции темы" -> "Закрыть тему"
Кисеан
Пользователь
Сообщения: 1
Зарегистрирован: Пн апр 23, 2018 5:51 pm

Matlab, моделирование, детектирование BPSK/QPSK.

Сообщение Кисеан » Пн апр 23, 2018 6:24 pm

Среда - Matlab или MathCad.
Необходимо задать BPSK/QPSK сигнал, промодулированный случайной последовательностью.
Зашумленный сигнал должен проходить через детектор - Гарднера, Мюллера, не принципиально.
Частота дискретизации сигнала должна чуть отличаться от частоты выборки (стробирования) детектора, а детектор должен периодически подстраиваться под отставание.
Сигнал, величина ошибки, СКО, должны отображаться на графиках, также на графике ошибки должны быть видны отставание и подстройка детектора.
Синтаксис максимально примитивный, код закомментирован.
Привожу пример:
%clear all;
A = 1;
f = 10*(10^6);
fz = 1; % ч-та символов
N = 128;
z = randint(1,N); % случ. данные
t = 0 : 100000 / (N * f) : (1/fz-1 / (N * f));


rep_matr = repmat(z,100,1);

s_m = reshape(rep_matr,1,(N * f)/100000);

Z = s_m.*( fix(t*fz)+1 );

x = sin(2*pi* (f)/10*t + Z*pi); % сигнал с модуляцией

subplot(2,1,1)
plot(t,Z,'linew',2)
ylim([-0.1 1.1])
grid on

subplot(2,1,2)
plot(t,x,'r','linew',2)
ylim([-1.1 1.1])
grid on


y=awgn(x,30);
tau=0:1/(N*f):(N-1)/(N*f);
leny=length(y);
lentau=length(tau);

numofT = floor(leny/N);
e = zeros(floor(lentau/2)+1,numofT-1);

for k=2:numofT-1
for m = 1:floor(lentau/2)+1
e(m, k)=( y((k - 1) * N/2 + m) - y(k * N/2 + m)) * y(k * N/2 - N/4 + m);
end
end


plot(e(:,2));
hold on
plot(y(1:N/2+1), 'g');

sko = zeros(1,floor(lentau/2)+1);

for m = 1:floor(lentau/2)+1
sko(m)=sqrt(var(e(m, 2:numofT-1)))*100;
end

figure
plot(sko)