|
BPSK матлаб модулятор демодулятор |
|
|
|
Mar 19 2018, 12:14
|
Знающий
   
Группа: Участник
Сообщений: 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 модема (передатчик + приемник).
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|