Перейти к содержанию
    

BPSK матлаб модулятор демодулятор

?e^{ j2\pi f_{ n }t }\cdot e^{ -j2\pi f_{ n }t }=e^{ j2\pi \cdot 0\cdot t }

Показан процесс демодуляции - повторное умножение на комплексную экспоненту со знаком минус.

Грубо говоря это избавление от несущей. Так?

Значит если несущая 100 кгц то в демодуляторе омега0 тоже должна быть 100 кГц. Так?

Тоесть если в квадратурном гетеродине омега0 сделать 110 кГц то спектр раздвоится на 10 и 210 кГц.

Произойдет перенос модулированного сигнала на другую частоту. А нам, грубо говоря, это н. не нужно.

Нужно всего лишь избавиться от несущей. Так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При умножении на комплексную экспоненту ничего не раздваивается, просто спектр сдвигается. Если мы берём реальную часть комплексного сигнала, то получаем симметричный спектр относительно нуля.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При умножении на комплексную экспоненту ничего не раздваивается, просто спектр сдвигается. Если мы берём реальную часть комплексного сигнала, то получаем симметричный спектр относительно нуля.

Да. Погорячился. Сдвигается.

Но всеравно остается вопрос почему в квадратурном демодуляторе(гетеродине) на входы умножителей обычно подается частота равная несущей?

Для того чтобы сразу от нее избавиться?

Почему не перенести спектр на другую частоту Например несущая 100 кГц Гетеродин 98 кГц. Так у нас обычно делалось. Дальше уже работа идет с 2 кГц и там уже и выделяется комплексная огибающая таким же способом перемножения комплексных експонент.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но всеравно остается вопрос почему в квадратурном демодуляторе(гетеродине) на входы умножителей обычно подается частота равная несущей?

 

Вы видели созвездие BPSK, QPSK, QAM? По которым мы принимаем решения о передаваемых символах. Чтобы такую картинку получить нужно осуществить фазовую и символьную синхронизации. Если будет сдвиг по частоте, то созвездие будет вращаться с угловой частотой соответствующей сдвигу и решения принять не получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы видели созвездие BPSK, QPSK, QAM? По которым мы принимаем решения о передаваемых символах. Чтобы такую картинку получить нужно осуществить фазовую и символьную синхронизации. Если будет сдвиг по частоте, то созвездие будет вращаться с угловой частотой соответствующей сдвигу и решения принять не получится.

Спасибо. Кажется становится понятно. Нужно еще осмыслить...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для большего понимания для себя происходящего в BPSK сворганил простую модель.

%% BPSK модель
% Количество бит данных
N = 4;
% Данные
data = [1 0 1 0];
%data = randi(1,N);
pData = data*2 - 1;
% Несущая частота (100 кГц)
f= 100000;
% частота выборок
fs = f*100;
% Период выборки
Ts = 1/fs;
% Период несущей
T = 1/f;
% Количество периодов несущей на бит-символ
M = 4;
% Длина пакета данных
n = M*length(data);
% Текущее время
t = 0:Ts:n*T;
% Несущая в пакете
car = sin(2*pi*f*t);
% График данных
subplot(2, 1, 1);
stem(pData);
title('Данные');
% График несущей
subplot(2, 1, 2);
plot(car);
title('Несущая');

%% Преобразование данных в прямоугольные импульсы
tp = 0:Ts:T*M;
exdata = [];
for (i = 1:length(data))
   for(j = 1:length(tp) - 1)
       exdata = [exdata pData(i)];
   end
end
exdata = [exdata 0];
figure;
plot(exdata, 'r-', 'LineWidth', 4);
hold on;
grid on;
plot(car, 'g-');
hold on

%% Модуляция
% Перенос exdata на несущую
mSig = exdata.*car;
plot(mSig, 'h-', 'LineWidth', 2);
hold off;
title('Прям. импульсы + несущая + промод.несущая');

%% AWGN (аддитивный белый гауссов шум) канал передачи данных
figure;
% отношение сигнал/шум в децибелах
SNR = 50;
% мощность сигнала в децибелах
SIGPOWER = 10;
% смесь мод.сигнала с шумом
rx = awgn( mSig, SNR, SIGPOWER);
plot(mSig, 'r-', 'LineWidth', 3);
hold on;
plot(rx, 'g-', 'LineWidth', 1);
grid on;
%% Демодуляция
% умножение мод.зашумленого сигн.на несущую
dem = rx.*car;
figure;
plot(dem);
grid on;
%% Декодирование
k = 1;
rcv = [];
for(i = 1:length(data))
   sm = 0;
   for(j = 1:length(tp) - 1)
       sm = sm + dem(k);
       k = k + 1;
   end
   if(sm > 0)
       rcv = [rcv 1];
   else    
       rcv = [rcv 0];
   end
end
clc;
% Переданные данные
data
% Принятые данные
rcv 

В данном случае это идеальный, полностью синхронизированный, вариант.

Я так понимаю в реальности все далеко не так. Демодулятор может иметь свою частоту дискретизации отличную от модулятора и она не синхронна с частотой дискретизации в модуляторе. Но это не самое важное. Важно что несущая подаваемая на умножитель в демодуляторе тоже не синхронна с несущей пришедшего на него сигнала, не говоря уже о доплере если источник и приемник двигаются друг относительно друга.

В этой части вопрос. Какая основная задача петли Костаса? Подстройка частоты подаваемой на умножитель, вернее на умножители демодулятора? Или задача петли Костаса это фазовая и символьная синхронизация в демодуляторе? Если это так то не врубаюсь как подстройкой частоты NCO можно добиться еще и фазовой синхронизации...

Изменено пользователем Acvarif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Костас только убирает несовпадение частот и допплер (они не различимы на приемнике). Костас ничего не делает для символьной синхронизации. Для этого в данные вставляют синхропоследовательности для начальной синхронизации и дальнейшая синхронизация осуществляется по смене фаз дынных. И чтобы этих смен было достаточно используют скремблеры.

Изменено пользователем ataradov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Костас только убирает несовпадение частот и допплер (они не различимы на приемнике). Костас ничего не делает для символьной синхронизации. Для этого в данные вставляют синхропоследовательности для начальной синхронизации и дальнейшая синхронизация осуществляется по смене фаз дынных. И чтобы этих смен было достаточно используют скремблеры.

Спасибо. Понятно. Стало более понятно значение нескольких байт преамбулы обычно используемой в пакете данных.

Попытаюсь встроить петлю Костаса в код post-39850-1522049359_thumb.jpg

На демодулятор поступает rx (смесь модулированного сигнала с аддит. гаусовым шумом) которую далее необходимо умножать на

sin и cos поступающие с выхода VCO

Очевидно что в демодуляторе необходимо будет организовать

1. Управляемый генератор sin cos (VCO).

2. Два одинаковых ФНЧ

3. Фазовый дискриминатор

4. Еще фильтр перед управляемым генератором

Какова роль фильтра (loopfilter) после фазового дискриминатора?

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попытаюсь встроить петлю Костаса в код

 

В коде сложнее что-либо разглядеть, чем в симулинк модели.

 

2. Два одинаковых ФНЧ

 

Согласованный фильтр лучше поставить до петли, иначе задержка фильтра будет входить в петлю ФАПЧ, с соответствующим увеличением времени настройки, для обеспечения устойчивасти.

 

4. Еще фильтр перед управляемым генератором

Какова роль фильтра (loopfilter) после фазового дискриминатора?

 

Пропорционально интегрирующее звено ФАПЧ.

 

Ещё что-то надо делать с амплитудой сигнала, которую надо учитывать при рассчёте коэффициентов передачи ФАПЧ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Согласованный фильтр лучше поставить до петли, иначе задержка фильтра будет входить в петлю ФАПЧ, с соответствующим увеличением времени настройки, для обеспечения устойчивасти.

До петли это как? На схеме разве не так? Фильтры стоят сразу после I Q умножителей.

Разве можно как-то иначе поставить фильтры и так чтобы не учитывалась их задерка в петле ФАПЧ?

Хотя Ваша схема ФАПЧ не похожа на привычную петлю Костаса post-39850-1522063053_thumb.jpg

Если не сложно, поясните пожалуйста в нескольких фразах как она работает.

Ещё что-то надо делать с амплитудой сигнала, которую надо учитывать при рассчёте коэффициентов передачи ФАПЧ.

С этим я вообще пока не знаю что делать...

В свое время когда петля ФАПЧ делалась в бинарном виде этот вопрос вообще не стоял.

Изменено пользователем Acvarif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

До петли это как? На схеме разве не так? Фильтры стоят сразу после I Q умножителей.

 

Уже выше обсуждали, что комплексный сигнал у вас будет на нулевой частоте, сначала фильтр согласованный, а потом уже ФАПЧ - умножение на управляемую комплексную экспоненту, поворачиваем вращающееся созвездие в обратную сторону, чтобы оно стояло неподвижно.

 

 

Хотя Ваша схема ФАПЧ не похожа на привычную петлю Костаса

Если не сложно, поясните пожалуйста в нескольких фразах как она работает.

 

Это и не петля Костаса, в оригинальной статье петля работает без символьной синхронизации, здесь же она работает после символьной синхронизации в домене одного отсчёта на символ. Согласованный фильтр здесь как раз включён в петлю.

 

С этим я вообще пока не знаю что делать...

В свое время когда петля ФАПЧ делалась в бинарном виде этот вопрос вообще не стоял.

 

Моделировать, моделировать. У вас же в общем случае короткие пакеты будут приходить минимального и максимального уровня друг за другом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уже выше обсуждали, что комплексный сигнал у вас будет на нулевой частоте, сначала фильтр согласованный, а потом уже ФАПЧ - умножение на управляемую комплексную экспоненту, поворачиваем вращающееся созвездие в обратную сторону, чтобы оно стояло неподвижно.

Запутался.

Вот петля Костаса post-39850-1522069083_thumb.jpg

Входной сигнал m(t) sin(ωt) Далее он сразу умножается в одном плече на sin(ωt) в другом на cos(ωt) Как результат - на выходе верхнего плеча компонента I, нижнего Q. Произошел снос на нулевую частоту. Что понимается под согласованным фильтром? У нас, например, под согласованным фильтром понимается коррелятор при работе со сложным сигналом.

Изменено пользователем Acvarif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запутался.

Вот петля Костаса

Входной сигнал m(t) sin(ωt) Далее он сразу умножается в одном плече на sin(ωt) в другом на cos(ωt) Как результат - на выходе верхнего плеча компонента I, нижнего Q. Произошел снос на нулевую частоту. Что понимается под согласованным фильтром? У нас, например, под согласованным фильтром понимается коррелятор при работе со сложным сигналом.

 

Статья Костаса древняя, эту петлю в аналоге делали, не нужно её тупо переносить в цифру.

Разобрались, что мы можем перенести сигнал на нулевую частоту.

Далее фильтруем его согласованным фильтром, согласованным с формой видео импульсов, которые мы передаём.

Коррелятор фильтром не является, он не инвариантен ко времени прихода.

Далее петлёй Костаса на нулевой частоте разворачиваем созвездие BPSK, чтобы оно стояло.

Filter1,3 не нужны, 2 - ПИ звено. VCO - NCO, комплексная экспонента управляемая, умножается на комплексный сигнал с выхода согласованного фильтра. Детектор ошибки - произведение реальной и мнимой частей после умножителя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо что Вы мне подсказываете. Общее понимание почти сложилось. Но непонятые детали не дают покоя.

Статья Костаса древняя, эту петлю в аналоге делали, не нужно её тупо переносить в цифру.

Да. Картинка немного не та. Вот та картинка post-39850-1522084089_thumb.jpg

Но суть вроде не меняется.

Разобрались, что мы можем перенести сигнал на нулевую частоту.

Железно.

Перенос на нулевую частоту это умножения входного сигнала на комплексную экспоненту.

Далее фильтруем его согласованным фильтром, согласованным с формой видео импульсов, которые мы передаём.

В цифровом варианте это будет FIR (LPF) Это понимается под согласованным фильтром?

Filter1,3 не нужны

Если по цифровой схеме Костаса то не нужны. Там стоят LPF.

VCO - NCO, комплексная экспонента управляемая, умножается на комплексный сигнал с выхода согласованного фильтра.

Тут опять тупик. Получается что согласованный фильтр должен стоять до умножителей.

Может в качестве согласованного фильтра имеется ввиду это? post-39850-1522089357_thumb.jpg

Изменено пользователем Acvarif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чем отличается согласованный фильтр от ФНЧ?

 

Тем, что максимально возможный сигнал/шум даёт на выходе. Читайте про приподнятый косинус и корень из приподнятого косинуса.

 

А как быть с компонентами на удвоенной несущей после переноса на нулевую?

Вроде ФНЧ их устраняет.

 

Да устраняет.

 

 

Тут опять тупик. Получается что

1. Согласованный фильтр должен стоять до умножителей.

2. ФНЧ не нужны.

 

Да, всё уже отфильтровано, осталось только устранить вращение созвездия.

 

Поймите, что от переноса частоты в ноль и даунсемплинга нужно абстрагироваться, с этим вопросом можно разобраться отдельно, всё равно никакого Костаса у вас не будет в итоге, потому что ФАПЧ медленно настраивается. Далее вся обработка осуществляется на нулевой частоте, в комплексном виде, с малым количеством отсчётов на символьный интервал.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...