Демодуляция DBPSK в Simulink с использованием набора блоков Xilinx

Я пытаюсь создать демодулятор DBPSK, используя набор блоков Simulink и Xilinx. Я рассчитываю разность фаз последовательных образцов следующим образом: введите здесь описание изображения

Итак, теперь мне нужно сопоставить эту разность фаз с символом 0 или 1 в зависимости от того, равна ли разность фаз 0 или пи.

% ----------------------------------------
% | Bit input   |   Phase change (+j*pi) |
% ----------------------------------------
% |     0       |       0                |
% ----------------------------------------
% |     1       |       pi               |
% ----------------------------------------

Я не уверен, как я могу сделать преобразование фазы в символ в Simulink (Xilinx). Кстати, вот версия Matlab:

demod_symbol=abs(round(DBPSK_Signal/pi));
for i=1:length(demod_symbol)
        if(demod_symbol(i)==2)
            demod_symbol(i)=0;
        end
end

Пожалуйста, дайте мне знать, правильный ли мой подход и как действовать дальше


person Kiran    schedule 05.05.2011    source источник


Ответы (1)


Возьмите вывод вашего вычитателя и подайте его в блок сравнения «больше, чем» с другим вводом, установленным на пи / 2. Результатом этого будет бит, который вам нужен.

Имейте в виду, что вы будете создавать довольно много логики в этих блоках atan — почти наверняка есть более эффективный способ сделать это, но в данный момент он не приходит на ум.

person Martin Thompson    schedule 05.05.2011
comment
Большое спасибо .. Я использовал комплексный множитель 3.1, чтобы умножить образец и комплексное сопряжение предыдущего образца, а затем атан для вычисления разности фаз. - person Kiran; 06.05.2011
comment
Это все еще кажется довольно долгим путем. - person Martin Thompson; 06.05.2011