Для системы приемника мы предполагаем, что АЦП в приемнике производит целое число выборок на символ (т.е. Fs / Fsym является целым числом). На практике это не всегда так, и поэтому фильтр передискретизации часто используется в реальных проектах. В модели с дискретным временем принятые выборки проходят
через согласованный фильтр, импульсная характеристика которого
согласована с |
импульсной |
характеристикой p[n] фильтра формирования |
импульсов как |
g[n] p[ n] . |
Поскольку импульс SRRC является симметричным, |
мы будем использовать ту же функцию формирования импульса SRRC для согласованного фильтра. Принятые выборки свертываются с помощью согласованного фильтра, и выходной сигнал согласованного фильтра показан на рисунке 11.
Программа 14: Согласованная фильтрация с формой импульса SRRC
vCap=conv(r,p,'full');%convolve received signal with Rx SRRC filter figure; plot(real(vCap),'r');
title('After matched filtering $\hat{v}$(n)','Interpreter','Latex'); %plot eye at the receiver after matched filtering
figure; plotEyeDiagram(vCap,L,3*L,2*filtDelay,100); %3*L -> 3 eyes per plot
%L can be integral multiple of oversampling factor. Valid data %starts from 2*filtDelay after matched filtering, plots 100 traces
Далее мы предполагаем, что получатель в совершенстве знает моменты времени символа, и поэтому мы не будем реализовывать подсистему синхронизации времени символа в приемнике. В приемнике символы согласованного фильтра сначала проходят через субдискретизатор, который дискретизирует выходной сигнал фильтра в правильные моменты времени.
На экземпляры выборки влияет задержка FIR-фильтров (SRRC-фильтры в Tx
и Rx ). Для симметричных КИХ-фильтров длиной Lfir задержка фильтра равнаLfir / 2 . Поскольку канал связи содержит два фильтра, общая задержка фильтра составляет 2 . Следовательно, первая действительная выборка происходит на
2 1-й позиции в согласованном
Рисунок 11 – Полученный сигнал с шумом AWGN (слева) и выход согласованного фильтра (справа)
выходной вектор фильтра (+1 добавляется из-за того, что индексы массива
Matlab начинаются с 1). Последующий субдискретизатор начинает выборку сигнала с этой позиции и возвращает каждый L-й символ. Субдискретизированный выходной сигнал, показанный на рисунке 12, затем проходит через демодулятор,
который выбирает символы, используя оптимальную методику обнаружения, и
переназначает их обратно на предполагаемые символы сообщения.
Программа 15: Выборка и демодуляция скорости передачи символов
%------Symbol rate Sampler-----
uCap = vCap(2*filtDelay+1:L:end-(2*filtDelay))/L;
%downsample by L from 2*filtdelay+1 position result by normalized L, %as the matched filter result is scaled by L
figure; stem(real(uCap)); hold on;
title('After symbol rate sampler $\hat{u}$(n)',...
'Interpreter','Latex');
dCap = demodulate(MOD_TYPE,M,uCap); %demodulation
Рисунок 12 – Даунсэмплинг - вывод сэмплера символьной скорости
Глазковую диаграмму можно построить с помощью следующего вызова функции.
figure; plotEyeDiagram(vCap,L,3*L,2*filtDelay,100);
Здесь первый аргумент vCap обозначает выходной сигнал согласованного фильтра, а второй аргумент - частоту избыточной выборки системы L. Третий аргумент — это количество выборок, которые мы хотим видеть на одной трассе.
Также обычно задается целое число коэффициента передискретизации. Здесь он установлен на 3L, поэтому мы увидим визуальную информацию, относящуюся к моменту трех символов. Четвертый аргумент — это смещение, с которого мы хотели бы начать построение глазковой диаграммы. Как правило, мы хотели бы построить график с позиции 2 , которая учитывает задержки фильтра в канале связи. Наконец, пятый аргумент — это общее количество таких трасс, которые мы хотим нанести на график. Примерные глазковые диаграммы, показанные на рисунке 7.13, созданы для случая отсутствия шума с Eb / N0 100 дБ. Из глазковых диаграмм мы можем видеть, что в моменты выборки символов (t / Tsym 0,1, 2,3) нет
ISI.
Рисунок 13 – Глазковая диаграмма на выходе согласованного фильтра непосредственно перед отборщиком символов на приемнике
Общее моделирование Следующий код объединяет все вышеупомянутые фрагменты кода для
моделирования производительности системы связи MPAM с передачей SRRC и
согласованными фильтрами (см. Рисунок 8).
Программа 17: Согласованная фильтрация mpam srrc.m: Моделирование производительности системы связи на основе модуляции MPAM с передачей SRRC
и согласованными фильтрами
%Performance simulation of MPAM with SRRC pulse shaping clearvars; clc;
N = 10^5; %Number of symbols to transmit MOD_TYPE = 'PAM'; %modulation type is 'PAM'
M = 4; %modulation level for the chosen modulation MOD_TYPE EbN0dB = -4:2:10; %SNRs for generating AWGN channel noise %----Pulse shaping filter definitions-----
beta = 0.3;% roll-off factor for SRRC filter Nsym = 8;%SRRC filter span in symbol durations
L = 4; %Oversampling factor (L samples per symbol period) [p,t,filtDelay] = srrcFunction(beta,L,Nsym);%SRRC filter
SER=zeros(1,length(EbN0dB)); %Symbol Error Rate place holders
snr |
= 10*log10(log2(M))+EbN0dB; %Converting |
given Eb/N0 dB to SNR |
for |
i=1:length(snr),%simulate the system for each given SNR |
|
%-------- |
Transmitter ------------------- |
|
d = |
ceil(M.*rand(1,N));%random numbers from |
1 to M for input to PAM |
u= modulate(MOD_TYPE,M,d); %modulation
v= [u ;zeros(L-1,length(u))];%insert L-1 zero between each symbols
v= v(:).';%Convert to a single stream, output is at sampling rate
s= conv(v,p,'full');%Convolve modulated symbols with p[n] %-------- Channel -------------------
r= add_awgn_noise(s,snr(i),L);%add AWGN noise for given SNR, r=s+w %-------- Receiver -------------------
vCap = conv(r,p,'full'); %convolve received signal with SRRC filter uCap = vCap(2*filtDelay+1:L:end-(2*filtDelay))/L;%downsample by L %from filtdelay+1 position, matched filter output is scaled by L dCap = demodulate(MOD_TYPE,M,uCap); %demodulation
SER(i) = sum(dCap ~=d)/N; %Calculate symbol error rate end
SER_theory = ser_awgn(EbN0dB,MOD_TYPE,M);%theoretical SER for PAM semilogy(EbN0dB,SER,'r*'); hold on; semilogy(EbN0dB,SER_theory,'k-')
Эквализация Эквалайзер — это цифровой фильтр на приемнике, который уменьшает
эффекты искажения межсимвольных помех , вносимые каналом с временной дисперсией. Если канал неизвестен и изменяется во времени, оптимальная конструкция фильтров передачи и приема невозможна. Однако можно нейтрализовать (уравновесить) эффекты канала, если импульсная характеристика канала известна на приемнике. Проблема восстановления входного сигнала в канале с временной дисперсией сводится к нахождению инверсии канала и использованию его для нейтрализации канальных эффектов. Однако найти обратную импульсную характеристику канала может быть сложно по следующим причинам:
Если отклик канала равен нулю на любой частоте, обратный отклик канала на этой частоте не определен.
Как правило, приемник не знает отклика канала, и для его оценки могут потребоваться дополнительные схемы (оценка канала).
Канал может изменяться в реальном времени, поэтому коррекция должна быть адаптивной.