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

 
 
> 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

Сообщений в этой теме
- 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   Какая-то из версий этой модели была на Verilog-е р...   Mar 20 2018, 06:34
|- - Acvarif   Цитата(ataradov @ Mar 20 2018, 09:34) Как...   Mar 20 2018, 07:10
|- - ataradov   QUOTE (Acvarif @ Mar 20 2018, 00:10) Похо...   Mar 20 2018, 07:12
||- - Acvarif   Цитата(ataradov @ Mar 20 2018, 10:12) Это...   Mar 20 2018, 07:28
||- - ataradov   QUOTE (Acvarif @ Mar 20 2018, 00:28) Похо...   Mar 20 2018, 07:36
||- - Acvarif   ЦитатаЛучше сразу смотреть в строну симулинка, обл...   Mar 20 2018, 07:51
||- - 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   Цитата(Acvarif @ Mar 20 2018, 10:51) Да. ...   Mar 20 2018, 08:07
||- - Acvarif   Цитата(petrov @ Mar 20 2018, 11:07) Получ...   Mar 20 2018, 08:14
||- - petrov   Цитата(Acvarif @ Mar 20 2018, 11:14) Кста...   Mar 20 2018, 08:29
||- - Acvarif   Цитата(petrov @ Mar 20 2018, 12:29) Возмо...   Mar 22 2018, 06:26
||- - ataradov   QUOTE (Acvarif @ Mar 21 2018, 23:26) Посм...   Mar 22 2018, 06:32
||- - Acvarif   Цитата(ataradov @ Mar 22 2018, 10:32) Нуж...   Mar 22 2018, 07:21
||- - ataradov   QUOTE (Acvarif @ Mar 22 2018, 00:21) Спас...   Mar 22 2018, 07:27
||- - Acvarif   Цитата(ataradov @ Mar 22 2018, 11:27) Это...   Mar 22 2018, 08:09
||- - petrov   Цитата(Acvarif @ Mar 22 2018, 11:09) Толь...   Mar 22 2018, 09:05
||- - Acvarif   Цитата(petrov @ Mar 22 2018, 13:05) Читай...   Mar 22 2018, 11:11
||- - petrov   Цитата(Acvarif @ Mar 22 2018, 14:11) Проб...   Mar 22 2018, 11:22
||- - Acvarif   Цитата(petrov @ Mar 22 2018, 15:22) Никак...   Mar 22 2018, 11:46
||- - petrov   Цитата(Acvarif @ Mar 22 2018, 14:46) Поня...   Mar 22 2018, 12:52
||- - Acvarif   Цитата(petrov @ Mar 22 2018, 16:52) Нет н...   Mar 23 2018, 06:12
||- - petrov   RE: BPSK матлаб модулятор демодулятор   Mar 23 2018, 06:49
||- - Acvarif   Цитата(petrov @ Mar 23 2018, 10:49) Пока...   Mar 23 2018, 07:22
||- - 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 Текстовая версия Сейчас: 16th June 2025 - 14:35
Рейтинг@Mail.ru


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