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

 
 
> BPSK матлаб модулятор демодулятор
Acvarif
сообщение Mar 19 2018, 12:14
Сообщение #1


Знающий
****

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



Имеется код BPSK модема, передатчик и приемник.
CODE
clear all;
Br = 117.1875*10^3;
Fd = Br*8;

Fif = 20*10^6;
Fdif = 60*10^6;
Fdopl = 100;

%% === TRANSMITTER ===
M = pngen(5);
D = rand(1, 200*8) > 0.5;
CRC = zeros(1, 16);
for i=1:length(D),
CRC(16) = xor(CRC(16), D(i));
CRC = [CRC(2:16) CRC(1)];
end;
FILL = ones(1, 200)*0.5;
DATA = [dec2bin(length(D)/8, 11)=='1' D CRC];
packet = [FILL M M diff_enc([0 DATA]) FILL]*2-1;

% redescr
Ndkr = Fd/Br;
pkt = packet(ceil(0.01:1/Ndkr:length(packet)));

hch = firls(31, [0 .24 .3 .5]*2, [1 1 0 0]);
pktf = filter(hch, [1], pkt);

% upsample
t1 = upsample4(pktf, 31);
t2 = upsample4(t1, 31);
pktfu = upsample4(t2, 31)';

% -> IF
l = length(pktfu);
s = sin(2*pi*(Fif+Fdopl)*(0:1/Fdif:l/Fdif));
c = cos(2*pi*(Fif+Fdopl)*(0:1/Fdif:l/Fdif));
pkts = pktfu.*s(1:l);
pktc = pktfu.*c(1:l);

%% === TRANSMIT LINE ===
Ir = awgn(awgn(pkts, 0.05), 0.01);
Qr = awgn(awgn(pktc, 0.05), 0.01);

%% === RECEIVER ===
% -> 0
l = length(Ir);
s = sin(2*pi*Fif*(0:1/Fdif:l/Fdif));
c = cos(2*pi*Fif*(0:1/Fdif:l/Fdif));

Rreu = Ir.*s(1:l) + Qr.*c(1:l);
Rimu = Qr.*s(1:l) - Ir.*c(1:l);

tr00 = downsample4(Rreu);
tr01 = downsample4(tr00);
Rre_ = downsample4(tr01);
Rre = filter(hch, [1], Rre_);

tr10 = downsample4(Rimu);
tr11 = downsample4(tr10);
Rim_ = downsample4(tr11);
Rim = filter(hch, [1], Rim_);

%figure; hold on; plot(Rre); plot(Rim, 'r');

% detection
Ms = M(ceil(0.01:1/Ndkr:length(M)));
cfh = Ms(length(Ms):-1:1);
cre = filter(cfh, [1], Rre)/length(cfh);
cim = filter(cfh, [1], Rim)/length(cfh);
%cr = sqrt(cre.^2 + cim.^2);
cr = (7/8)*max(abs(cre), abs(cim)) + (1/8)*min(abs(cre), abs(cim));

%figure; hold on; plot(cre); plot(cim); plot(cr, 'r');

env(length(cr)) = 0;
for j=1:length(cr),
f = max(1, j-Ndkr*length(M)+2*Ndkr);
t = min(length(cr), max(2, j-Ndkr));
env(j) = sum(cr(f:t))/(t-f);
end;

%figure; hold on; plot(cr, 'r'); plot(env, 'g'); plot(env*5);

%
for i=length(M)*Ndkr+1:length(cr)-1,
c1 = cr(i) > env(i)*5;
% c2 = (cr(i) > cr(i-1)) && (cr(i) > cr(i+1));
c2 = (cr(i-1) > cr(i-2)) && (cr(i-1) > cr(i));
c3 = abs(cr(i)-cr(i-length(M)*Ndkr)) < 4*env(i);
c4 = cr(i-length(M)*Ndkr) > env(i-length(M)*Ndkr)*5;

if c1 && c2 && c3 && c4,
break;
end;
end;
i
re = Rre(i:length(Rre));
im = Rim(i:length(Rim));

%figure; hold on; plot(re); plot(im, 'r');
figure; hold on; plot(cr, 'r'); plot(env, 'g'); plot(env*5); plot((c1&c2&c3&c4)*1.3, 'k');

%
l = length(re);
lb = length(packet);
Yre(lb) = 0;
Yim(lb) = 0;
fre(lb) = 0;
fim(lb) = 0;
are(lb) = 0;
aim(lb) = 0;
mark(l) = 0;
bit(lb) = 0;

k = 1;
gamma = 0.1;
Yre(1) = re(1);
Yim(1) = im(1);

for i = 8:8:length(re)-10,
mark(i) = 1;
are(k) = sum(re(i-6:i-1));
aim(k) = sum(im(i-6:i-1));

% okre(k) = are(k)*Yim(k) - aim(k)*Yre(k);
okim(k) = aim(k)*Yim(k) + are(k)*Yre(k);

bit(k) = sign(okim(k));

fre(k) = are(k)*bit(k);
fim(k) = aim(k)*bit(k);

Yre(k+1) = (1-gamma)*Yre(k) + gamma*fre(k);
Yim(k+1) = (1-gamma)*Yim(k) + gamma*fim(k);

k = k + 1;
end;

bit_dec = diff_dec(sign(bit+1));
bits = bit_dec(2:length(bit_dec));

%figure; hold on; plot(okim); plot(okre, 'r');
%figure; hold on; plot(re); plot(Yre(ceil(0.01:1/Ndkr:length(bit))), 'r');
%figure; hold on; plot(im); plot(Yim(ceil(0.01:1/Ndkr:length(bit))), 'r');

figure; hold on; plot(im); plot(mark, 'k');

%
len = bin2dec(int2str(bits(1:11)));
data = bits(12:12+len*8-1);
rcrc = bits(12+len*8:12+len*8+15);
crc = zeros(1, 16);
for i=1:length(D),
crc(16) = xor(crc(16), data(i));
crc = [crc(2:16) crc(1)];
end;

disp('---');
disp(sprintf('Received packet length: %d bytes', len));
disp(sprintf('Data ok: %d', sum(abs(data-D))==0));
disp(sprintf('CRC ok: %d', sum(abs(crc-rcrc))==0));


При компиляции возникает ошибка:
Undefined function 'pngen' for input arguments of type 'double'.

Error in Modem (line 10)
M = pngen(5);
Я так понимаю, что функция pngen должна быть где-то описана. Или такая функция уже встроена в Матлаб последних версий.
Использую R2014a.
Подскажите пожалуйста в чем проблема.
Если кто сталкивался, подсобите пожалуйста простейшим рабочим кодом BPSK модема (передатчик + приемник).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ataradov
сообщение Mar 20 2018, 06:34
Сообщение #2


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

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



Какая-то из версий этой модели была на Verilog-е реализована, но исходников этого мне сейчас уже точно не найти.

Ну и не стоит эту модель воспринимать как полную истину. Это моя первая модель модема созданная по следам чтения Скляра и экспериментов.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 20 2018, 07:10
Сообщение #3


Знающий
****

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



Цитата(ataradov @ Mar 20 2018, 09:34) *
Какая-то из версий этой модели была на Verilog-е реализована, но исходников этого мне сейчас уже точно не найти.

Ну и не стоит эту модель воспринимать как полную истину. Это моя первая модель модема созданная по следам чтения Скляра и экспериментов.

Да, я понимаю.
У меня пока совсем никакого представления. Только в общих чертах. Как работает ФАПЧ мне известно. На практике приходилось это делать, но только в бинарном варианте.
Но сейчас это все реализовывается в дискретном варианте на микроконтроллерах http://www.ti.com/lit/an/slaa681a/slaa681a.pdf, ПЛИС. Для начала пытаюсь хоть как-то понять это дело через Матлаб. Конечно Verilog (VHDL) код очень бы не помешал. Поскольку больше работаю с ПЛИС.

В коде появилась еще ошибка Undefined function 'diff_enc' for input arguments of type 'double'.
Похоже должна быть определена еще и функция diff_enc.
Go to the top of the page
 
+Quote Post
ataradov
сообщение Mar 20 2018, 07:12
Сообщение #4


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

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



QUOTE (Acvarif @ Mar 20 2018, 00:10) *
Похоже должна быть определена еще и функция diff_enc.


CODE
function enc=diff_enc(data, start);
    if ~(exist('start'))
        start = 0;

    de(1)=xor(data(1), start);
    for i=2:length(data), de(i)=xor(de(i-1), data(i)); end;
    enc = de;
end


Этот модем скорее всего перебор по сравнению с той программной реализацией на МК.

Сообщение отредактировал ataradov - Mar 20 2018, 07:18
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 20 2018, 07:28
Сообщение #5


Знающий
****

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



Цитата(ataradov @ Mar 20 2018, 10:12) *
Этот модем скорее всего перебор по сравнению с той программной реализацией на МК.

Спасибо. Дело продвинулось.
Далее Undefined function 'upsample4' for input arguments of type 'double'.
Похоже дальше есть еще неопределенные функции...

Перебор это в смысле..?

Сообщение отредактировал Acvarif - Mar 20 2018, 07:29
Go to the top of the page
 
+Quote Post
ataradov
сообщение Mar 20 2018, 07:36
Сообщение #6


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

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



QUOTE (Acvarif @ Mar 20 2018, 00:28) *
Похоже дальше есть еще неопределенные функции...
Вот все функции какие у меня есть.

QUOTE (Acvarif @ Mar 20 2018, 00:28) *
Перебор это в смысле..?
Я возможно не совсем понял статью, но они там похоже уже ожидают прямоугольный сигнал и только восстанавливают битовый клок.

Этот модем еще борется с несовпадением частоты дискретизации на приемнике и передатчике (или эффектом Допплера). Плюс тут много всяких заморочек с конкретным железом. Для модема на 100 Кбод не нужна дискретизация на 60 МГц.

Сообщение отредактировал ataradov - Mar 20 2018, 07:37
Прикрепленные файлы
Прикрепленный файл  functions.zip ( 8.04 килобайт ) Кол-во скачиваний: 0
 
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 20 2018, 07:51
Сообщение #7


Знающий
****

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



Цитата
Лучше сразу смотреть в строну симулинка, облегчает понимание и постепенно модель можно конретизировать до полноценного рабочего HDL кода не прибегая к внешним HDL симуляторам.

Да. Согласен. Но в симуленке я сильно плаваю.
Цитата(ataradov @ Mar 20 2018, 10:36) *
Вот все функции какие у меня есть.

Архив не скачивается. Выскакивает на пустую страницу.
Цитата
Я возможно не совсем понял статью, но они там похоже уже ожидают прямоугольный сигнал и только восстанавливают битовый клок.

Насколько я понял там задействован внутренний АЦП микроконтроллера. Далее цифровые библиотеки FIR и т. п.
Цитата
Этот модем еще борется с несовпадением частоты дискретизации на приемнике и передатчике (или эффектом Допплера). Плюс тут много всяких заморочек с конкретным железом. Для модема на 100 Кбод не нужна дискретизация на 60 МГц.

Доплер, это мне какраз и нужно.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 20 2018, 08:07
Сообщение #8


Гуру
******

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



Цитата(Acvarif @ Mar 20 2018, 10:51) *
Да. Согласен. Но в симуленке я сильно плаваю.


Получается как в анекдоте:
Мужик что-то ищет под фонарем. Тут к нему под ходит милиционер и
спрашивает: "Что вы тут делаете?" Мужик отвечает: "Ключи от квартиры
ищу". "А где потерял?". "В парке". "А зачем здесь ищешь?".
"А здесь светлее ".

Искать надо там где надо. Все эти обрывки чужих исходников - тупик. Симулинк - отличнейшее окружение, чтобы разобраться с сутью, да ещё в конце и HDL код получить можно, готовый для прошивки в FPGA.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 20 2018, 08:14
Сообщение #9


Знающий
****

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



Цитата(petrov @ Mar 20 2018, 11:07) *
Получается как в анекдоте:
Мужик что-то ищет под фонарем. Тут к нему под ходит милиционер и
спрашивает: "Что вы тут делаете?" Мужик отвечает: "Ключи от квартиры
ищу". "А где потерял?". "В парке". "А зачем здесь ищешь?".
"А здесь светлее ".

Искать надо там где надо. Все эти обрывки чужих исходников - тупик. Симулинк - отличнейшее окружение, чтобы разобраться с сутью, да ещё в конце и HDL код получить можно, готовый для прошивки в FPGA.

Принимается.
Кстати Ваш симулинк код под названием bpsk_costas_2008_08_25.mdl надеюсь в этом поможет.

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


Гуру
******

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



Цитата(Acvarif @ Mar 20 2018, 11:14) *
Кстати Ваш симулинк код под названием bpsk_costas_2008_08_25.mdl надеюсь в этом поможет.


Возможно, лишь как отправная точка, воспринимайте критически, ищите пробелы, недостатки и ошибки.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 22 2018, 06:26
Сообщение #11


Знающий
****

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



Цитата(petrov @ Mar 20 2018, 12:29) *
Возможно, лишь как отправная точка, воспринимайте критически, ищите пробелы, недостатки и ошибки.

Посмотрел модельку. Сложно для начинающего. Не понимаю, что такое скрамблер.
Google советует туториал по цифровой модуляции http://www.cengage.com/resource_uploads/do...2511_315335.pdf
Только не понятно где эти все примеры находятся. В самом Матлаб, или нужно искать в сети?

Go to the top of the page
 
+Quote Post
ataradov
сообщение Mar 22 2018, 06:32
Сообщение #12


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

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



QUOTE (Acvarif @ Mar 21 2018, 23:26) *
Посмотрел модельку. Сложно для начинающего. Не понимаю, что такое скрамблер.

Нужно матлаб пока отложить и книжки по цифровой связи читать. С наскоку ничего путного не выйдет.

Обычно скрамблер убирает длинные последовательности 0 и 1 в исходном сигнале. Это нужно так как восстановление символьной частоты происходит по переходам из 0 в 1 и обратно. И если этих переходов не достаточно, то символьная синхронизация может потеряться.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 22 2018, 07:21
Сообщение #13


Знающий
****

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



Цитата(ataradov @ Mar 22 2018, 10:32) *
Нужно матлаб пока отложить и книжки по цифровой связи читать. С наскоку ничего путного не выйдет.

Обычно скрамблер убирает длинные последовательности 0 и 1 в исходном сигнале. Это нужно так как восстановление символьной частоты происходит по переходам из 0 в 1 и обратно. И если этих переходов не достаточно, то символьная синхронизация может потеряться.

Спасибо. Понятно. Тогда по ходу в демодуляторе должен быть дескрамблер?
Хотя на этом думаю мне пока не стоит зацикливаться.
В простом случае принцип фазовой манипуляции ничего особенного их себя не представляет. Это все очень похоже, например, на принцип формирования кода Баркера, с чем плотно приходилось и приходится иметь дело в цифровой технике.
Что касается демодулятора с ФАПЧ (или модное название петля Костаса) это все тоже очень похоже на цифровую ФАПЧ с использованием синтезатора частоты, например, по Уолшу в обратной связи, что тоже приходилось делать, и работало оно на ура.
Думаю не стоит мне сейчас влезать в дебри цифровой связи. Это все придет по ходу.
Пока в Матлабе ищу простейший способ запустить простейший модулятор-демодулятор (кодированием или симулинк) чтобы понять как все перенести в ПЛИС. Имеется ввиду в цифровом виде (АЦП, выборки и пр.). В бинарном виде ФАПЧ ничего особенного из себя не представляет. Разве, что только пока не понимаю как подбираются промежуточная по отношению к несущей, как пересчитывать коэффициенты для управления синтезатором уолша. В свое время это все делалось на варикапах и подбиралось экспериментально, потом по мере появления новых технологий все переносилось в ПЛИС, но соблюдая все наработки.

Сообщение отредактировал Acvarif - Mar 22 2018, 07:22
Go to the top of the page
 
+Quote Post
ataradov
сообщение Mar 22 2018, 07:27
Сообщение #14


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

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



QUOTE (Acvarif @ Mar 22 2018, 00:21) *
Спасибо. Понятно. Тогда по ходу в демодуляторе должен быть дескрамблер?
Да, конечно.

QUOTE (Acvarif @ Mar 22 2018, 00:21) *
В простом случае принцип фазовой манипуляции ничего особенного их себя не представляет. Это все очень похоже, например, на принцип формирования кода Баркера, с чем плотно приходилось и приходится иметь дело в цифровой технике.
Это каша полная. Причем тут Баркер?

QUOTE (Acvarif @ Mar 22 2018, 00:21) *
Что касается демодулятора с ФАПЧ (или модное название петля Костаса)
Петля Костаса - это не модное название ФАПЧ, это очень специфическая схема с ФАПЧ. ФАПЧ бывает и с другими схемами, ничего общего с Костасом не имеющие.

QUOTE (Acvarif @ Mar 22 2018, 00:21) *
Думаю не стоит мне сейчас влезать в дебри цифровой связи. Это все придет по ходу.
Как раз таки наоборот, с пониманием цифровой связи почти автоматически придет понимание как это сделать в матлабе.

Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 22 2018, 08:09
Сообщение #15


Знающий
****

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



Цитата(ataradov @ Mar 22 2018, 11:27) *
Это каша полная. Причем тут Баркер?

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

Не согласен. Ничего специфического там нет. В бинарном виде эта самая ФАПЧ делается с применением синтезатора частоты Уолша как гетеродина.
Используем, например, в гидроакустических лагах.
Цитата
Как раз таки наоборот, с пониманием цифровой связи почти автоматически придет понимание как это сделать в матлабе.

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

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


Гуру
******

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



Цитата(Acvarif @ Mar 22 2018, 11:09) *
Только просто чтение, по опыту, бесполезно. Пытаюсь все делать по ходу.


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

Цитата(Acvarif @ Mar 22 2018, 11:09) *
Конечно хотелось-бы выяснить как все-же правильно, подобрать частоту гетеродина, например при несущей 100 кГ, если один бит при BPSK модуляции планируется передавать четырьмя периодами несущей.
Как рассчитывается шаг изменения частоты гетеродина в петле ФАПЧ.
Должны-же быть основополагающие формулы для таких расчетов...


Демодуляцию делают на нулевой частоте, частота комплексного гетеродина минус 100 кГц.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 22 2018, 11:11
Сообщение #17


Знающий
****

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



Цитата(petrov @ Mar 22 2018, 13:05) *
Читайте и делайте соответствующие простенькие модельки в симулинке. Про железо и предыдущий опыт сейчас надо забыть, лишнее мешает.

Пробую. Трудно дается. Неспецифическая тема.
Цитата
Демодуляцию делают на нулевой частоте, частота комплексного гетеродина минус 100 кГц.

Не совсем врубаюсь.
Комплексная это понятно.
Допустим несущая 100 кГц. Какая должна быть средняя частота управляемого синтезатора частоты DDS в петле ФАПЧ?
Тоже 100кГ?
Если взять одно квадратурное плечо-умножитель то на один вход будет подаваться модулированная несущая 100 кГц, а на другой, например sin 100 кГц. В этом случае какраз и получится нулевая чатота. Так?
Если так почему именно на нулевой, а не со сдвигом, например 100 и 102?
Мы когда-то ФАПЧ делали с небольшой разностной, например 7 и 5 кГц.
Или я чего-то не так понял?


Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 22 2018, 11:22
Сообщение #18


Гуру
******

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



Цитата(Acvarif @ Mar 22 2018, 14:11) *
Пробую. Трудно дается. Неспецифическая тема.

Не совсем врубаюсь.
Комплексная это понятно.
Допустим несущая 100 кГц. Какая должна быть средняя частота управляемого синтезатора частоты DDS в петле ФАПЧ?
Тоже 100кГ?
Если взять одно квадратурное плечо-умножитель то на один вход будет подаваться модулированная несущая 100 кГц, а на другой, например sin 100 кГц. В этом случае какраз и получится нулевая чатота. Так?
Если так почему именно на нулевой, а не со сдвигом, например 100 и 102?
Мы когда-то ФАПЧ делали с небольшой разностной, например 7 и 5 кГц.
Или я чего-то не так понял?


Никакие небольшие сдвиги нам не нужны. Рассматривайте перенос на нулевую, понижение частоты дискретизации отдельно от демодуляции, синхронизации, которые будут осуществляться на нулевой частоте в комплексном виде с небольшим количеством отсчётов на символ.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 22 2018, 11:46
Сообщение #19


Знающий
****

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



Цитата(petrov @ Mar 22 2018, 15:22) *
Никакие небольшие сдвиги нам не нужны. Рассматривайте перенос на нулевую, понижение частоты дискретизации отдельно от демодуляции, синхронизации, которые будут осуществляться на нулевой частоте в комплексном виде с небольшим количеством отсчётов на символ.

Понял. Спасибо.
Тогда если в цифровом виде (не бинарном).
Несущая 100 кгц. Частота дискретизации 400 кГц. Исходная частота NCO в петле ФАПЧ 100 кГц.
Количество периодов несущей на символ (в смысле на бит) 4.
От этого можно оттолкнуться?

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


Гуру
******

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



Цитата(Acvarif @ Mar 22 2018, 14:46) *
Понял. Спасибо.
Тогда если в цифровом виде (не бинарном).
Несущая 100 кгц. Частота дискретизации 400 кГц. Исходная частота NCO в петле ФАПЧ 100 кГц.
Количество периодов несущей на символ (в смысле на бит) 4.
От этого можно оттолкнуться?


Нет никакой петли ФАПЧ 100 кГц, нет никакого количества периодов несущей на символ, просто переносим нужную частоту на нулевую.
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 23 2018, 06:12
Сообщение #21


Знающий
****

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



Цитата(petrov @ Mar 22 2018, 16:52) *
Нет никакой петли ФАПЧ 100 кГц, нет никакого количества периодов несущей на символ, просто переносим нужную частоту на нулевую.

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

Выход элемента Switch - BPSK сигнал
Далее, чтобы его демодулировать необходимо выделить из него комплексную огибающую. Для этого его нужно умножить на комплексную экспоненту (перенос спектра модулированного сигнала в область 0) и затем отфильтровать с помощью ФНЧ
Выглядит это так
Прикрепленное изображение

Если, допустим, в модуляторе несущая равна Fn, то в демодуляторе чему должна быть равна омега0, тоже Fn?
Вот на этом моменте я почему-то застрял...
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 23 2018, 06:49
Сообщение #22


Гуру
******

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



Go to the top of the page
 
+Quote Post
Acvarif
сообщение Mar 23 2018, 07:22
Сообщение #23


Знающий
****

Группа: Участник
Сообщений: 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

Сообщений в этой теме
- Acvarif   BPSK матлаб модулятор демодулятор   Mar 19 2018, 12:14
- - Grizzzly   Нет, это не встроенная функция. Ее написал автор э...   Mar 19 2018, 12:18
|- - Acvarif   Цитата(Grizzzly @ Mar 19 2018, 16:18) Нет...   Mar 19 2018, 13:00
- - ataradov   Ух ты. Я написал этот код много лет назад и все эт...   Mar 19 2018, 16:59
- - ataradov   Вот исходник этой pngen(): CODEfunction x=pngen...   Mar 20 2018, 00:45
|- - Acvarif   Цитата(ataradov @ Mar 20 2018, 03:45) Есл...   Mar 20 2018, 05:59
||- - ataradov   QUOTE (Acvarif @ Mar 20 2018, 00:51) Да. ...   Mar 20 2018, 07:55
|||- - Acvarif   Цитата(ataradov @ Mar 20 2018, 10:55) Мож...   Mar 20 2018, 08:06
||- - petrov   При умножении на комплексную экспоненту ничего не ...   Mar 23 2018, 07:37
||- - Acvarif   Цитата(petrov @ Mar 23 2018, 11:37) При у...   Mar 23 2018, 08:10
||- - petrov   Цитата(Acvarif @ Mar 23 2018, 11:10) Но в...   Mar 23 2018, 08:17
||- - Acvarif   Цитата(petrov @ Mar 23 2018, 12:17) Вы ви...   Mar 23 2018, 08:51
||- - Acvarif   Для большего понимания для себя происходящего в BP...   Mar 26 2018, 05:01
|- - petrov   Цитата(Acvarif @ Mar 20 2018, 10:10) Для ...   Mar 20 2018, 07:30
- - ataradov   Костас только убирает несовпадение частот и доппле...   Mar 26 2018, 05:09
|- - Acvarif   Цитата(ataradov @ Mar 26 2018, 08:09) Кос...   Mar 26 2018, 08:08
|- - petrov   Цитата(Acvarif @ Mar 26 2018, 11:08) Попы...   Mar 26 2018, 08:32
|- - Acvarif   Цитата(petrov @ Mar 26 2018, 11:32) Согла...   Mar 26 2018, 10:45
|- - petrov   Цитата(Acvarif @ Mar 26 2018, 13:45) До п...   Mar 26 2018, 11:47
|- - Acvarif   Цитата(petrov @ Mar 26 2018, 14:47) Уже в...   Mar 26 2018, 13:10
|- - petrov   Цитата(Acvarif @ Mar 26 2018, 16:10) Запу...   Mar 26 2018, 15:26
|- - Acvarif   Спасибо что Вы мне подсказываете. Общее понимание ...   Mar 26 2018, 18:10
|- - petrov   Цитата(Acvarif @ Mar 26 2018, 21:10) Чем ...   Mar 26 2018, 19:15
|- - Acvarif   Цитата(petrov @ Mar 26 2018, 22:15) Далее...   Mar 26 2018, 19:54
|- - petrov   Цитата(Acvarif @ Mar 26 2018, 22:54) Как-...   Mar 27 2018, 06:54
|- - Acvarif   Если посчитать за какое время сработает петля Кост...   Mar 27 2018, 07:41
|- - petrov   Цитата(Acvarif @ Mar 27 2018, 10:41) Уже ...   Mar 27 2018, 08:21
|- - Acvarif   Цитата(petrov @ Mar 27 2018, 11:21) Это е...   Mar 27 2018, 12:03
|- - petrov   Цитата(Acvarif @ Mar 27 2018, 15:03) Ok. ...   Mar 27 2018, 12:19
|- - Acvarif   Цитата(petrov @ Mar 27 2018, 15:19) Не ну...   Mar 28 2018, 05:33
- - ataradov   VCO получает сигал ошибки в качестве контрольного,...   Mar 27 2018, 07:43
|- - Acvarif   Цитата(ataradov @ Mar 27 2018, 10:43) VCO...   Mar 27 2018, 07:47
|- - ataradov   QUOTE (Acvarif @ Mar 27 2018, 00:47) Что ...   Mar 27 2018, 07:51
- - ataradov   Нужно взять исходный бинарный сигнал, умножить его...   Mar 28 2018, 06:47
|- - Acvarif   Цитата(ataradov @ Mar 28 2018, 09:47) Нуж...   Mar 28 2018, 07:09
|- - Acvarif   Не получается. Пытаюсь сформировать синфазную и кв...   Mar 30 2018, 05:13
- - ataradov   Для отладки синхронизации не нужна несущая, ее мож...   Mar 30 2018, 05:28
- - Acvarif   Цитата(ataradov @ Mar 30 2018, 08:28) Для...   Mar 30 2018, 06:51
- - Acvarif   Сворганил BPSK приемо-передатчик с петлей Костаса ...   Apr 12 2018, 10:44
- - Acvarif   RE: BPSK матлаб модулятор демодулятор   Apr 16 2018, 07:54


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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 23:52
Рейтинг@Mail.ru


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