OPISIS_LAB3
.pdfПосле когерентного обнаружения демодулированные символы подвергаются операции XOR с расширяющей последовательностью, которая синхронизируется с последовательностью передатчика. На этом этапе приемник должен знать последовательность расширения, используемую в передатчике, и должен быть с ней синхронизирован. В противном случае сигнал с расширенным спектром будет казаться приемнику зашумленным, и это демонстрирует важное свойство расширенного спектра – низкую вероятность перехвата или вообще обнаружения выхода в эфир.
Рисунок 13 –Модель приемника DSSS
Программа 11: dsss_receiver.m: функция, реализующая приемник DSSS
function d_cap = dsss_receiver(r_t,carrier_ref,prbs_ref,Rb,Rc,L) %Direct Sequence Spread Spectrum (DSSS) Receiver (Rx)
%r_t - received DS-SS signal from the transmitter (Tx) %carrier_ref - reference carrier (synchronized with transmitter) %prbs_ref - reference PRBS signal(synchronized with transmitter) %Rb - data rate (bps) for the data d
%Rc - chip-rate ((Rc >> Rb AND Rc is integral multiple of Rb) %L - versampling factor used for waveform generation at the Tx %The function first demodulates the receiver signal using the %reference carrier and then XORs the result with the reference %PRBS. Finally returns the recovered data.
%------------BPSK Demodulation----------
v_t = r_t.*carrier_ref;
x_t=conv(v_t,ones(1,L)); %integrate for Tc duration
y= x_t(L:L:end);%sample at every Lth sample (i.e, every Tc instant)
z= ( y > 0 ).'; %Hard decision (gives demodulated bits)
% |
-----------De-Spreading---------------- |
|
y |
= xor(z,prbs_ref.');%reverse the spreading |
process using PRBS ref. |
d_cap = y(Rc/Rb:Rc/Rb:end); %sample at every |
Rc/Rb th symbol |
8. Моделирование в канале с АБГШ Чтобы протестировать модели передатчика и приемника, представленные в
предыдущем разделе, следует промоделировать их характеристики в канале с АБГШ.
Следующий код Matlab демонстрирует характеристики передатчика и приемника DSSS в
диапазоне отношений сигнал/шум канала АБГШ. Смоделированные характеристики будут соответствовать характеристикам обычного BPSK.
Программа 12: dsss_test_awgn.m: Характеристики системы DSSS в канале с АБГШ
close all; clear all;
%----PRBS definition----
prbsType='MSEQUENCE'; %PRBS type G1=[1 0 0 1 0 1];%LFSR polynomial X1=[0 0 0 0 1];%initial seed for LFSR
G2=0;X2=0;%G2,X2 are zero for m-sequence (only one LFSR used)
%--- Input data, data rate, chip rate------
N=10e5; %number of data bits to transmit d= rand(1,N) >=0.5; %random data
Rb=2e3; %data rate (bps) for the data d
Rc=6e3; %chip-rate(Rc >> Rb AND Rc is integral multiple of Rb) L=8; %oversampling factor for waveform generation
SNR_dB = -4:3:20; %signal to noise ratios (dB)
BER = zeros(1,length(SNR_dB)); %place holder for BER values
for i=1:length(SNR_dB) [s_t,carrier_ref,prbs_ref]=dsss_transmitter(d,prbsType,G1,G2,X1,X2,Rb,Rc,L);% Tx
%-----Compute and add AWGN noise to the transmitted signal---
Esym=L*sum(abs(s_t).^2)/(length(s_t));%Calculate symbol energy N0=Esym/(10^(SNR_dB(i)/10)); %Find the noise spectral density n_t = sqrt(N0/2)*randn(length(s_t),1);%computed noise
r_t = s_t + n_t; %received signal
dCap = dsss_receiver(r_t,carrier_ref,prbs_ref,Rb,Rc,L);%Receiver BER(i) = sum(dCap~=d)/length(d); %Bit Error Rate
end
%%
theoreticalBER = 0.5*erfc(sqrt(10.^(SNR_dB/10))); figure; semilogy(SNR_dB, BER,'k*'); hold on; semilogy(SNR_dB, theoreticalBER,'r');
9. Моделирование в канале с помехами
Системы с DSSS изначально предназначались для обеспечения перехвата с низкой вероятностью и для противодействия помехам. Многие коммерческие приложения измеряют характеристики таких систем в присутствии источника помех. Системы DSSS
расширяют сигнал данных на видеочастоте по большей полосе пропускания, что обеспечивает устойчивость к источникам помех и, следовательно, низкую вероятность перехвата. Величина расширения полосы пропускания определяется коэффициентом,
называемым выигрышем при обработке (processing gain), который обозначается как Gp .
Он определяется как отношение ширины полосы РЧ переданного сигнала к нерасширенной полосе частот основной полосы частот информационного сигнала. Для системы DSSS с расширением, которое не зависит от данных, выигрыш при обработке — это отношение скорости передачи элементарных сигналов расширяющей последовательности к скорости передачи данных информационной последовательности.
Gp |
chip rate |
|
Rc |
(6) |
|
data rate |
Rb |
||||
|
|
|
Эффективность DSSS при наличии помех может быть продемонстрирована с использованием различных типов помех. Блок-схема моделирования для этой цели представлена на рисунке 14. В этой модели все вычисления происходят на видеочастоте.
Следует подчеркнуть, что симуляция данной модели в дискретном времени для получения высокого выигрыша при обработке непрактична из-за огромного количества задействованных выборок и может вызвать проблемы с памятью во время выполнения.
Следовательно, рекомендуется поддерживать выигрыш обработки ( Gp ) на разумном уровне.
Мы могли видеть, что имитационная модель, представленная в этом разделе, очень похожа на модель с АБГШ. Единственное отличие – добавление источника помех
(jammer). Источника помех может быть смоделирован для генерации сигналов помех различных типов. Сигнал считается помехой только в том случае, если одновременно выполняются все следующие условия.
Помехи возникают в пределах полосы частот демодуляции и в то же время, что и при демодуляции.
Мешающий сигнал достаточно силен, чтобы превышать влияние шума. В случае источника помех это количественно выражается в терминах отношения помехи к сигналу
(JSR), которое представляет собой отношение мощности помехи к мощности сигнала.
Различные типы подавления в системе DSSS включают подавление широкополосным шумом, парциальное частотное подавление, импульсное подавление и подавление тональным сигналом. Тональные помехи далее подразделяются на однотоновые и многотоновые.
Однотоновый источник помехи может быть образован синусоидальной помехой.
Из всех типов помех проще всего создать однотоновую помеху. Уравнение дискретного времени для генерации однотоновой помехи задается следующим образом:
J n |
|
sin 2 f j n j |
|
2Pj |
(7) |
||
где Pj – мощность генератора помех для требуемого JSR, f j |
– сдвиг частоты генератора |
помех от центральной частоты, а j – сдвиг фазы генератора помех, который может быть
равномерной случайной величиной между 0 и 2π. Далее приводится реализация однотонального глушителя в Matlab.
Рисунок 14 – Имитационная модель системы BPSK DSSS с тональными помехами
Программа 13: tone_jammer.m: имитация однотоновой помехи
function [J,JSRmeas] = tone_jammer(JSR_dB,Fj,Thetaj,Esig,L) %Generates a single tone jammer (J) for the following inputs %JSR_dB - required Jammer to Signal Ratio for generating the jammer
%FjJammer frequency offset from center frequency (-0.5 < Fj < 0.5) %Thetaj - phase of the jammer tone (0 to 2*pi)
%Esig -transmitted signal power to which jammer needs to be added %L - length of the transmitter signal vector
%The output JSRmeas is the measured JSR from the generated samples
JSR = 10.^(JSR_dB/10); %Jammer-to-Signal ratio in linear scale Pj= JSR*Esig; %required Jammer power for the given signal power n=(0:1:L-1).';%indices for generating jammer samples
J = sqrt(2*Pj)*sin(2*pi*Fj*n+Thetaj); %Single Tone Jammer
Ej=sum(abs(J).^2)/L; %computed jammer energy from generated samples JSRmeas = 10*log10(Ej/Esig);%measured JSR
disp(['Measured JSR from jammer & signal: ',num2str(JSRmeas),'dB']);
Многотоновая помеха вставляет K тонов одинаковой мощности, равномерно распределенных по ширине полосы расширенного спектра. Для подавления множественных тонов уравнение (7) может быть расширено следующим образом.
|
|
|
(8) |
|
J n |
2Pj sin 2 f ji n ji |
|||
K |
|
|
|
|
i1 |
K |
|
Первичным показателем эффективности расширенного спектра является вероятность ошибок по битам при данном отношении сигнал/шум (SNR) и отношение помеха/сигнал (JSR). Следующий код реализует имитационную модель, показанную на рисунке 14 для случая однотоновых помех, а соответствующие кривые показаны на рисунке 15.
Примечание: код Matlab вызывает две общие функции, а именно generatePRBS и repeatSequence, которые определены ранее.
Программа 14: dsss_test_jamm.m: Моделирование системы с DSSS при наличии однотоновой помехи и АБГШ
%Perf. of BPSK DSSS over AWGN channel in presence of a jammer clearvars; clc;
%--- Input parameters------
Gp = 31; %processing gain
N=10e5; %number of data bits to transmit EbN0dB = 0:2:14; %Eb/N0 ratios (dB)
JSR_dB = [-100, -10,-5, 0, 2]; %Jammer to Signal ratios (dB)
Fj = 0.0001; %Jamming tone - normalized frequency (-0.5 < F < 0.5) Thetaj = rand(1,1)*2*pi;%random jammer phase(0 to 2*pi radians)
%----PRBS definition (refer previous sections of this chapter)---
prbsType='MSEQUENCE';%PRBS type,period of the PRBS should match Gp G1=[1 0 0 1 1 1];%LFSR polynomial
X1=[0 0 0 0 1];%initial seed for LFSR
G2=0;%G2,X2 set to zero for m-sequence (only one LFSR used) X2=0;
%---------------Transmitter------------------
d= rand(1,N) >=0.5; %Random binary information source dp =2*d-1; %converted to polar format (+/- 1)
dr = kron(dp(:),ones(Gp,1)); %repeat d[n] - Gp times L = N*Gp; %length of the data after the repetition
prbs = generatePRBS(prbsType,G1,G2,X1,X2);%1 period of PRBS prbs = 2*prbs-1; %convert PRBS to +/- 1 values prbs=prbs(:);% serialize
c=repeatSequence(prbs,L);%repeat PRBS sequence to match data length
s = dr.*c; %multiply information source and PRBS sequence
%Calculate signal power (used to generate jamming signal) Eb=Gp*sum(abs(s).^2)/L;
plotColors =['r','b','k','g','m'];
for k=1:length(JSR_dB),%loop for each given JSR
%Generate single tone jammer for each given JSR
J = tone_jammer(JSR_dB(k),Fj,Thetaj,Eb,L);%generate a tone jammer
BER = zeros(1,length(EbN0dB)); %place holder for BER values for i=1:length(EbN0dB),%loop for each given SNR
%-----------AWGN noise addition---------
N0=Eb/(10^(EbN0dB(i)/10)); %Find the noise spectral density w = sqrt(N0/2)*randn(length(s),1);%computed whitenoise
r = s + J + w; %received signal
%------------Receiver--------------
yr = r.*c; %multiply received signal with PRBS reference y=conv(yr,ones(1,Gp)) ; %correlation type receiver
dCap = y(Gp:Gp:end) > 0; %threshold detection
BER(i) = sum(dCap.'~=d)/N; %Bit Error Rate
semilogy(EbN0dB, BER, [plotColors(k) '-*']); hold on; %plot end
end
%theoretical BER (when no Jammer)
theoreticalBER = 0.5*erfc(sqrt(10.^(EbN0dB/10)));
%reference performance for BPSK modulation semilogy(EbN0dB, theoreticalBER,'k-O'); xlabel('Eb/N0 (dB)');
ylabel('Bit Error Rate (Pb)');
|
10-1 |
|
|
|
|
|
|
(Pb) |
-2 |
|
|
|
|
|
|
10 |
|
|
|
|
|
|
|
ошибки |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
битовой |
10-3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вероятность |
10-4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10-5 |
|
|
|
|
|
|
|
0 |
2 |
4 |
6 |
8 |
10 |
12 |
Eb/N0 (dB)
Рисунок 15 – Вероятность битовой ошибки при Gp 31, при наличии однотоновой
помехи и шума AWGN
Задание на лабораторную работу №3
С использованием приведенных программных кодов и значений по варианту
1.Получить график АКФ кода Баркера по варианту.
2.Получить графики АКФ и ВКФ m-последовательностей с длиной по
варианту.
3.Получить графики АКФ и ВКФ кода Голда с длиной по варианту.
4.Получить графики BER для кода по варианту в условиях АБГШ, одной и трех тоновых (гармонических) помех. Пересчитать Gp в децибелы.
Если параметр по варианту не задан – оставить без изменений.
Отчет без кода программ загрузить в ОРИОКС.
Вариант |
Длина кода Баркера |
Тип кода |
Длина последовательности |
Отношение |
|
помеха/сигнал |
|||||
|
|
|
|
||
|
|
|
|
|
|
1 |
4 |
Голда |
127 |
-5 |
|
|
|
|
|
|
|
2 |
5 |
m-послед. |
255 |
-3 |
|
|
|
|
|
|
|
3 |
7 |
Голда |
511 |
0 |
|
|
|
|
|
|
|
4 |
11 |
m-послед. |
1023 |
1 |
|
|
|
|
|
|
|
5 |
13 |
Голда |
127 |
5 |
|
|
|
|
|
|
|
6 |
4 |
m-послед. |
255 |
-10 |
|
|
|
|
|
|
|
7 |
5 |
Голда |
511 |
-8 |
|
|
|
|
|
|
|
8 |
7 |
m-послед. |
1023 |
-5 |
|
|
|
|
|
|
|
9 |
11 |
Голда |
127 |
-3 |
|
|
|
|
|
|
|
10 |
13 |
m-послед. |
255 |
0 |
|
|
|
|
|
|
|
11 |
4 |
Голда |
511 |
1 |
|
|
|
|
|
|
|
12 |
5 |
m-послед. |
1023 |
5 |
|
|
|
|
|
|
|
13 |
7 |
Голда |
127 |
-10 |
|
|
|
|
|
|
|
14 |
11 |
m-послед. |
255 |
-10 |
|
|
|
|
|
|
|
15 |
13 |
Голда |
511 |
-8 |
|
|
|
|
|
|
|
16 |
4 |
m-послед. |
1023 |
-5 |
|
|
|
|
|
|
|
17 |
5 |
Голда |
127 |
-3 |
|
|
|
|
|
|
|
18 |
7 |
m-послед. |
255 |
0 |
|
|
|
|
|
|
|
19 |
11 |
Голда |
511 |
1 |
|
|
|
|
|
|
|
20 |
13 |
m-послед. |
1023 |
5 |
|
|
|
|
|
|
21 |
4 |
Голда |
127 |
-10 |
|
|
|
|
|
22 |
5 |
m-послед. |
255 |
-10 |
|
|
|
|
|
23 |
7 |
Голда |
511 |
-8 |
|
|
|
|
|
24 |
11 |
m-послед. |
1023 |
-5 |
|
|
|
|
|
25 |
13 |
Голда |
127 |
-3 |
|
|
|
|
|
26 |
4 |
m-послед. |
255 |
0 |
|
|
|
|
|
27 |
5 |
Голда |
511 |
1 |
|
|
|
|
|
28 |
7 |
m-послед. |
1023 |
5 |
|
|
|
|
|
29 |
11 |
Голда |
511 |
-10 |
|
|
|
|
|
30 |
13 |
m-послед. |
1023 |
0 |
|
|
|
|
|