реклама на сайте
подробности

 
 
5 страниц V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> BPSK матлаб модулятор демодулятор
Acvarif
сообщение Mar 23 2018, 07:22
Сообщение #31


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(petrov @ Mar 23 2018, 10:49) *

Показан процесс демодуляции - повторное умножение на комплексную экспоненту со знаком минус.
Грубо говоря это избавление от несущей. Так?
Значит если несущая 100 кгц то в демодуляторе омега0 тоже должна быть 100 кГц. Так?
Тоесть если в квадратурном гетеродине омега0 сделать 110 кГц то спектр раздвоится на 10 и 210 кГц.
Произойдет перенос модулированного сигнала на другую частоту. А нам, грубо говоря, это н. не нужно.
Нужно всего лишь избавиться от несущей. Так?
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 23 2018, 07:37
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



При умножении на комплексную экспоненту ничего не раздваивается, просто спектр сдвигается. Если мы берём реальную часть комплексного сигнала, то получаем симметричный спектр относительно нуля.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 23 2018, 08:10
Сообщение #33


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(petrov @ Mar 23 2018, 11:37) *
При умножении на комплексную экспоненту ничего не раздваивается, просто спектр сдвигается. Если мы берём реальную часть комплексного сигнала, то получаем симметричный спектр относительно нуля.

Да. Погорячился. Сдвигается.
Но всеравно остается вопрос почему в квадратурном демодуляторе(гетеродине) на входы умножителей обычно подается частота равная несущей?
Для того чтобы сразу от нее избавиться?
Почему не перенести спектр на другую частоту Например несущая 100 кГц Гетеродин 98 кГц. Так у нас обычно делалось. Дальше уже работа идет с 2 кГц и там уже и выделяется комплексная огибающая таким же способом перемножения комплексных експонент.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 23 2018, 08:17
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Acvarif @ Mar 23 2018, 11:10) *
Но всеравно остается вопрос почему в квадратурном демодуляторе(гетеродине) на входы умножителей обычно подается частота равная несущей?


Вы видели созвездие BPSK, QPSK, QAM? По которым мы принимаем решения о передаваемых символах. Чтобы такую картинку получить нужно осуществить фазовую и символьную синхронизации. Если будет сдвиг по частоте, то созвездие будет вращаться с угловой частотой соответствующей сдвигу и решения принять не получится.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 23 2018, 08:51
Сообщение #35


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(petrov @ Mar 23 2018, 12:17) *
Вы видели созвездие BPSK, QPSK, QAM? По которым мы принимаем решения о передаваемых символах. Чтобы такую картинку получить нужно осуществить фазовую и символьную синхронизации. Если будет сдвиг по частоте, то созвездие будет вращаться с угловой частотой соответствующей сдвигу и решения принять не получится.

Спасибо. Кажется становится понятно. Нужно еще осмыслить...
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 26 2018, 05:01
Сообщение #36


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Для большего понимания для себя происходящего в BPSK сворганил простую модель.
CODE
%% 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 - Mar 26 2018, 05:03
Go to the top of the page
 
+Quote Post
ataradov
сообщение Mar 26 2018, 05:09
Сообщение #37


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



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

Сообщение отредактировал ataradov - Mar 26 2018, 05:10
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 26 2018, 08:08
Сообщение #38


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(ataradov @ Mar 26 2018, 08:09) *
Костас только убирает несовпадение частот и допплер (они не различимы на приемнике). Костас ничего не делает для символьной синхронизации. Для этого в данные вставляют синхропоследовательности для начальной синхронизации и дальнейшая синхронизация осуществляется по смене фаз дынных. И чтобы этих смен было достаточно используют скремблеры.

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

На демодулятор поступает rx (смесь модулированного сигнала с аддит. гаусовым шумом) которую далее необходимо умножать на
sin и cos поступающие с выхода VCO
Очевидно что в демодуляторе необходимо будет организовать
1. Управляемый генератор sin cos (VCO).
2. Два одинаковых ФНЧ
3. Фазовый дискриминатор
4. Еще фильтр перед управляемым генератором
Какова роль фильтра (loopfilter) после фазового дискриминатора?


Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 26 2018, 08:32
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Acvarif @ Mar 26 2018, 11:08) *
Попытаюсь встроить петлю Костаса в код


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

Цитата(Acvarif @ Mar 26 2018, 11:08) *
2. Два одинаковых ФНЧ


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

Цитата(Acvarif @ Mar 26 2018, 11:08) *
4. Еще фильтр перед управляемым генератором
Какова роль фильтра (loopfilter) после фазового дискриминатора?


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

Ещё что-то надо делать с амплитудой сигнала, которую надо учитывать при рассчёте коэффициентов передачи ФАПЧ.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 26 2018, 10:45
Сообщение #40


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(petrov @ Mar 26 2018, 11:32) *
Согласованный фильтр лучше поставить до петли, иначе задержка фильтра будет входить в петлю ФАПЧ, с соответствующим увеличением времени настройки, для обеспечения устойчивасти.

До петли это как? На схеме разве не так? Фильтры стоят сразу после I Q умножителей.
Разве можно как-то иначе поставить фильтры и так чтобы не учитывалась их задерка в петле ФАПЧ?
Хотя Ваша схема ФАПЧ не похожа на привычную петлю Костаса
Прикрепленное изображение

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

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

Сообщение отредактировал Acvarif - Mar 26 2018, 11:20
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 26 2018, 11:47
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Acvarif @ Mar 26 2018, 13:45) *
До петли это как? На схеме разве не так? Фильтры стоят сразу после I Q умножителей.


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


Цитата(Acvarif @ Mar 26 2018, 13:45) *
Хотя Ваша схема ФАПЧ не похожа на привычную петлю Костаса
Если не сложно, поясните пожалуйста в нескольких фразах как она работает.


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

Цитата(Acvarif @ Mar 26 2018, 13:45) *
С этим я вообще пока не знаю что делать...
В свое время когда петля ФАПЧ делалась в бинарном виде этот вопрос вообще не стоял.


Моделировать, моделировать. У вас же в общем случае короткие пакеты будут приходить минимального и максимального уровня друг за другом.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 26 2018, 13:10
Сообщение #42


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(petrov @ Mar 26 2018, 14:47) *
Уже выше обсуждали, что комплексный сигнал у вас будет на нулевой частоте, сначала фильтр согласованный, а потом уже ФАПЧ - умножение на управляемую комплексную экспоненту, поворачиваем вращающееся созвездие в обратную сторону, чтобы оно стояло неподвижно.

Запутался.
Вот петля Костаса
Прикрепленное изображение

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

Сообщение отредактировал Acvarif - Mar 26 2018, 13:10
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 26 2018, 15:26
Сообщение #43


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



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


Статья Костаса древняя, эту петлю в аналоге делали, не нужно её тупо переносить в цифру.
Разобрались, что мы можем перенести сигнал на нулевую частоту.
Далее фильтруем его согласованным фильтром, согласованным с формой видео импульсов, которые мы передаём.
Коррелятор фильтром не является, он не инвариантен ко времени прихода.
Далее петлёй Костаса на нулевой частоте разворачиваем созвездие BPSK, чтобы оно стояло.
Filter1,3 не нужны, 2 - ПИ звено. VCO - NCO, комплексная экспонента управляемая, умножается на комплексный сигнал с выхода согласованного фильтра. Детектор ошибки - произведение реальной и мнимой частей после умножителя.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 26 2018, 18:10
Сообщение #44


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Спасибо что Вы мне подсказываете. Общее понимание почти сложилось. Но непонятые детали не дают покоя.
Цитата(petrov @ Mar 26 2018, 18:26) *
Статья Костаса древняя, эту петлю в аналоге делали, не нужно её тупо переносить в цифру.

Да. Картинка немного не та. Вот та картинка
Прикрепленное изображение

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

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

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

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

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


Сообщение отредактировал Acvarif - Mar 26 2018, 19:11
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 26 2018, 19:15
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Acvarif @ Mar 26 2018, 21:10) *
Чем отличается согласованный фильтр от ФНЧ?


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

Цитата(Acvarif @ Mar 26 2018, 21:10) *
А как быть с компонентами на удвоенной несущей после переноса на нулевую?
Вроде ФНЧ их устраняет.


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


Цитата(Acvarif @ Mar 26 2018, 21:10) *
Тут опять тупик. Получается что
1. Согласованный фильтр должен стоять до умножителей.
2. ФНЧ не нужны.


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

Поймите, что от переноса частоты в ноль и даунсемплинга нужно абстрагироваться, с этим вопросом можно разобраться отдельно, всё равно никакого Костаса у вас не будет в итоге, потому что ФАПЧ медленно настраивается. Далее вся обработка осуществляется на нулевой частоте, в комплексном виде, с малым количеством отсчётов на символьный интервал.
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 5 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th April 2024 - 01:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01538 секунд с 7
ELECTRONIX ©2004-2016