Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

OPISIS_LAB6

.pdf
Скачиваний:
32
Добавлен:
24.12.2021
Размер:
1.27 Mб
Скачать

чувствителен к временным колебаниям в приемнике. Эти проблемы можно решить,

если сделать полосу перехода в частотной области менее резкой.

Формирование сигналов типа « приподнятый косинус»

Как упоминалось ранее, недостатки сигнала sinc можно устранить, сделав полосу перехода в частотной области менее резкой. Сигнал типа « приподнятый косинус» имеет регулируемый параметр спада переходной полосы α, с помощью которого можно управлять скоростью затухания переходной полосы. Функция формирования RC-импульсов выражается в частотной области как

Tsym ,

T P( f ) sym

2

0,

 

Fsym

f

Fsym

 

 

2

 

2

 

 

 

 

 

 

 

 

 

 

Tsym

 

 

 

 

 

 

 

1

cos

 

 

 

f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tsym

,

f1

2Tsym

1

 

 

1

 

 

 

f

 

(10)

 

 

2Tsym

 

 

 

2Tsym

 

 

 

 

f1

2Tsym

Соответственно, во временной области импульсная характеристика

определяется выражением

p(t)

sin( t / Tsym ) cos( t / Tsym )

where 0

1

(11)

 

 

 

 

 

 

t / T

1 (2 t / T

 

)2

 

 

 

 

 

 

sym

 

 

sym

 

 

 

 

Простое вычисление уравнения

11

дает сингулярности

(неопределенные

точки) в точках p (t = 0) и p (t = ± Tsym ). Значение приподнятого косинусного

2

импульса в этих сингулярностях можно получить, применив правило Л’Опиталя, и

значения равны

p t 0 1

 

Tsym

 

 

 

 

 

p t

 

 

 

 

sin

 

 

 

 

 

 

2

 

2

 

2

(12)

(13)

Следующие коды Matlab генерируют импульс с приподнятым косинусом для заданной длительности символа Tsym 1 с и строят представление во временной области и частотную характеристику (показано на рисунке 7.6). Импульс RC

спадает со скоростью 1/ t 3 при t , что является значительным улучшением по сравнению со скоростью затухания синусоидального импульса, равной 1/ t .

Он удовлетворяет критерию Найквиста для нулевого ISI - импульс достигает нулевых переходов в желаемые моменты выборки. Регулируя α, спад полосы перехода в частотной области может быть постепенным.

Программа 5: raiseCosineFunction.m: функция для генерации импульса с приподнятым косинусом

function [p,t,filtDelay]=raisedCosineFunction(alpha,L,Nsym) %Function for generating raised-cosine (RC) pulse

%alpha - roll-off factor,L - oversampling factor,

%Nsym - filter span in symbols

%Returns the output pulse p(t) that spans the discrete-time base %-Nsym:1/L:Nsym.Also returns the filter delay when the function %is viewed as an FIR filter

Tsym=1; t=-(Nsym/2):1/L:(Nsym/2);%unit symbol duration time-base A = sin(pi*t/Tsym)./(pi*t/Tsym); B=cos(pi*alpha*t/Tsym);

p = A.*B./(1-(2*alpha*t/Tsym).^2);

p(ceil(length(p)/2))=1;%p(0)=1 & p(0) occurs exactly at the center temp=(alpha/2)*sin(pi/(2*alpha)); %p(t=+-1/(2a))=(a/2)sin(pi/(2a)) p(t==Tsym/(2*alpha))=temp; p(t==-Tsym/(2*alpha))=temp;

%FIR filter delay = (N-1)/2, N=length of the filter filtDelay = (length(p)-1)/2; %FIR filter delay

end

Программа 6: test_RCPulse.m: косинусоидальные импульсы и их проявление

в частотной области

Tsym=1; %Symbol duration in seconds

L=10; % oversampling rate, each symbol contains L samples Nsym = 80; %filter span in symbol durations

alphas=[0 0.3 0.5 1];%RC roll-off factors - valid range 0 to 1 Fs=L/Tsym;%sampling frequency

lineColors=['b','r','g','k','c']; i=1;legendString=cell(1,4); for alpha=alphas %loop for various alpha values [rcPulse,t]=raisedCosineFunction(alpha,L,Nsym); %RC Pulse

subplot(1,2,1); t=Tsym*t; %translate time base for given duration plot(t,rcPulse,lineColors(i));hold on; %plot time domain view

[vals,f]=freqDomainView(rcPulse,Fs,'double');%See Chapter 1 subplot(1,2,2); plot(f,abs(vals)/abs(vals(length(vals)/2+1)),lineColors(i));

hold on;legendString{i}=strcat('\alpha =',num2str(alpha) );i=i+1; end

subplot(1,2,1);title('Raised Cosine pulse'); legend(legendString);

subplot(1,2,2);title('Frequency response');legend(legendString);

Рисунок 7.6 – Косинусоидальный импульс и его спектр

Формирование импульса квадратного корня с приподнятым косинусом

В передатчике обычно используется фильтр-формирователь импульса с приподнятым косинусом. Пусть Xrc ( f ) будет частотной характеристикой фильтра с приподнятым косинусом. Предположим, что амплитудная характеристика канала

плоская, т.е. Hc f 1,

а шум канала белый. Тогда комбинированный отклик

фильтра передачи P f

и фильтра приемника G f

в частотной области задается

как

 

 

 

Xrc ( f ) P f G f

(14)

Если фильтр приема совпадает с фильтром передачи, мы имеем

Xrc ( f ) P f G f

 

P f

 

2

(15)

 

 

Таким образом, передающий и приемный фильтры принимают вид

P f G f Xrc ( f ) e

j 2 fT0

(16)

 

где G f P f , где T0 - номинальная задержка, необходимая для обеспечения

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

Таким образом, задача фильтрации с помощью приподнятого косинуса поровну разделяется между фильтрами передачи и приема. Это приводит к использованию фильтров квадратного корня с приподнятым косинусом (SRRC) в передатчике и приемнике, эквивалентная импульсная характеристика которых описывается следующим образом.

p(t) 1

Tsym

 

t 1

 

 

 

4 t

 

 

t 1

 

 

sin

 

 

cos

 

 

 

 

 

 

 

 

 

 

Tsym

 

 

 

Tsym

 

 

 

Tsym

 

 

 

 

 

 

 

 

 

 

(17)

 

 

t

 

 

 

4 t 2

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

T

 

 

 

 

 

 

 

 

 

T

 

 

 

 

 

 

 

sym

 

 

 

 

sym

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Коэффициент сглаживания для SRRC обозначается как β, чтобы отличать его от коэффициента RC-фильтра. Простое вычисление уравнения 17 дает

T

сингулярности (неопределенные точки) в точках p (t = 0) и p p(t 4sym ) . Величину

приподнятого косинусоидального импульса в этих сингулярностях можно получить, применив правило Л’Остипиталя, и эти значения равны

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

p(t 0)

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

(18)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Tsym

 

 

 

 

 

 

 

 

 

 

 

 

Tsym

 

 

 

 

 

 

 

2

 

 

 

 

 

 

2

 

 

 

 

 

p(t

 

)

 

 

 

1

 

 

sin

 

 

 

1

 

 

cos

 

 

(19)

4

 

 

 

 

 

 

 

 

2T

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

4

 

 

 

 

 

sym

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Далее приводится функция для генерации формы импульса SRRC. За ним следует тестовый код, который строит комбинированный импульсный отклик

комбинации фильтров SRRC передачи и приема, а также строит представление в частотной области одиночного импульса SRRC, как показано на рисунке 7.

Комбинированный импульсный отклик имеет значение, поскольку мы можем определить, что комбинированный отклик достигает нуля в моменты выборки символов. Это указывает на то, что работа по отмене ISI разделена между фильтрами передатчика и приемника. Обратите внимание, что комбинированная импульсная характеристика двух фильтров SRRC такая же, как импульсная характеристика RC-фильтра.

Программа 7: srrcFunction.m: функция для генерации квадратного корня импульса с приподнятым косинусом

function [p,t,filtDelay]=srrcFunction(beta,L,Nsym)

%Function for generating square-root raised-cosine (SRRC) pulse

%beta - roll-off factor of SRRC pulse,

%L - oversampling factor (number of samples per symbol)

%Nsym - filter span in symbol durations

%Returns the output pulse p(t) that spans the discrete-time base %-Nsym:1/L:Nsym. Also returns the filter delay when the function %is viewed as an FIR filter

Tsym=1; t=-(Nsym/2):1/L:(Nsym/2);%unit symbol duration time-base

num = sin(pi*t*(1-beta)/Tsym)+...

((4*beta*t/Tsym).*cos(pi*t*(1+beta)/Tsym)); den = pi*t.*(1-(4*beta*t/Tsym).^2)/Tsym;

p = 1/sqrt(Tsym)*num./den; %srrc pulse definition

%handle catch corner cases (singularities) p(ceil(length(p)/2))=1/sqrt(Tsym)*((1-beta)+4*beta/pi); temp=(beta/sqrt(2*Tsym))*( (1+2/pi)*sin(pi/(4*beta)) ...

19 + (1-2/pi)*cos(pi/(4*beta))); p(t==Tsym/(4*beta))=temp; p(t==-Tsym/(4*beta))=temp; %FIR filter delay = (N-1)/2, N=length of the filter filtDelay = (length(p)-1)/2; %FIR filter delay

end

Программа 8: test_SRRCPulse.m: Характеристики импульса с квадратным

корнем из приподнятого косинуса

Tsym=1; %Symbol duration in seconds

L=10; % oversampling rate, each symbol contains L samples Nsym = 80; %filter span in symbol durations

betas=[0 0.22 0.5 1];%root raised-cosine roll-off factors Fs=L/Tsym;%sampling frequency lineColors=['b','r','g','k','c']; i=1;legendString=cell(1,4); for beta=betas %loop for various alpha values

[srrcPulseAtTx,t]=srrcFunction(beta,L,Nsym); %SRRC Filter at Tx srrcPulseAtRx = srrcPulseAtTx;%Using the same filter at Rx

%Combined response matters as it hits 0 at desired sampling instants combinedResponse = conv(srrcPulseAtTx,srrcPulseAtRx,'same');

subplot(1,2,1); t=Tsym*t; %translate time base & normalize reponse

plot(t,combinedResponse/max(combinedResponse),lineColors(i)); hold on;

%See Chapter 1 for the function 'freqDomainView' [vals,F]=freqDomainView(srrcPulseAtTx,Fs,'double'); subplot(1,2,2); plot(F,abs(vals)/abs(vals(length(vals)/2+1)),lineColors(i)); hold on;legendString{i}=strcat('\beta =',num2str(beta) );i=i+1; end

subplot(1,2,1);

title('Combined response of SRRC filters'); legend(legendString); subplot(1,2,2);

title('Frequency response (at Tx/Rx only)');legend(legendString);

Рисунок 7 – Комбинированный отклик двух фильтров SRRC и представление

одного импульса SRRC в частотной области

Программа 9: plotEyeDiagram.m: функция для построения глазковой диаграммы

function [eyeVals]=plotEyeDiagram(x,L,nSamples,offset,nTraces)

%Function

to plot

eye diagram

 

 

%x - input

vector

representing the signal

 

%L - oversampling

factor (for

calculating

x-axis in plot)

%nSamples

- number of samples

per trace -

preferably set to integral

% multiple

of oversampling factor L(number of bits per symbol)

%offset -

initial

offset in the data from

where to begin plotting

%nTraces -

number

of traces to plot

 

%If the signal processing toolbox is not available, put M=1 % and convert the line that says y=interp(x,M) to y=x

M=4; %oversampling factor for eyediagram - for smoother plot tnSamp = (nSamples*M*nTraces);%total number of samples y=interp(x,M);%interpolate the signal with the oversampling factor

eyeVals=reshape(y(M*offset+1:(M*offset+tnSamp)),nSamples*M,nTraces); t=( 0 : 1 : M*(nSamples)-1)/(M*L);

plot(t,eyeVals);

title('Eye Plot');xlabel('t/T_{sym}');ylabel('Amplitude');

end

Реализация системы согласованных фильтров с фильтрацией SRRC

Базовая система амплитудно-импульсной модуляции (PAM) расширена на рисунке 8 за счет добавления повышающего дискретизатора L , функции формирования импульса p n на передатчике и согласованного фильтра g n ,

комбинация нижнего пробоотборника L на приемнике

В этой модели случайный поток исходных битов сначала сегментируется на символы шириной k бит, которые могут принимать любое значение из набора m 1,2, ..., M . Код моделирования напрямую начинается с генерации случайного набора символов, который передается в модуль отображения модуляции.

Модулятор MPAM отображает k-битовые информационные символы на один из

M 2k различных уровней сигнализации. Символ модуляции MPAM показан на рисунке 7.9.

Рисунок 8 –Реализация системы модуляции PAM с формированием импульсов и согласованной фильтрацией

Программа 10: Модуляция MPAM

N = 10^5; %Number of symbols to transmit MOD_TYPE = 'PAM'; %modulation type

M = 4; %modulation level for the chosen modulation MOD_TYPE

d = ceil(M.*rand(1,N)); %random numbers from 1 to M for input to PAM u = modulate(MOD_TYPE,M,d);%MPAM modulation

figure; stem(real(u)); %plot modulated symbols

Рисунок 9 – Модулированные символы MPAM

Каждый модулированный символ MPAM должен существовать в течение некоторого времени, называемого временем символа, обозначенного как Tsym.

Каждый модулированный символ будет проходить через фильтр p(n)

формирования импульсов с дискретным временем, импульсная характеристика которого равна отсчетам с интервалом T , где T обозначает период дискретизации.

Для этого входящие символы из модуля отображения модуляции необходимо преобразовать в последовательность дискретных временных импульсов путем повышения их дискретизации с коэффициентом L (согласно уравнению 7.7).

Устройство повышения дискретизации вставляет L-1 нулей между каждым модулированным символом. На практике L выбирается как целое число, кратное 4.

Выходной сигнал повышающего / передискретизированного сигнала показан на рисунке 10.

Программа 11: Повышение частоты дискретизации

L=4; %Oversampling factor (L samples per symbol period) v=[u;zeros(L-1,length(u))];%insert L-1 zero between each symbols %Convert to a single stream

v=v(:).';%now the output is at sampling rate stem(real(v)); title('Oversampled symbols v(n)');

Чтобы заполнить правильные значения вместо вставленных нулей,

интерполяция выполняется фильтром формирования импульса путем свертки выходного сигнала повышающего дискретизатора и функции формирования импульса. Функция формирования импульсов должна удовлетворять критерию Найквиста для нулевого ISI, в противном случае эффект наложения спектров нанесет серьезный ущерб. Если амплитудный отклик канала плоский и если шум белый, то амплитудный отклик функции формирования импульса можно разделить поровну между передатчиком и приемником. Для этого моделирования желаемая форма импульса Найквиста представляет собой форму импульса с приподнятым косинусом, а задача фильтрации с приподнятым косинусом поровну разделена между фильтрами передачи и приема. Это приводит к использованию фильтров квадратного корня с приподнятым косинусом (SRRC) в передатчике и приемнике.

Это система согласованных фильтров, в которой фильтр приема согласован с фильтром формирования импульса передачи.

Согласованная система фильтрации — это теоретическая основа, а не конкретный тип фильтра. Он предлагает улучшенное шумоподавление за счет улучшения отношения сигнал / шум на выходе приемного фильтра. Реализация начинается с разработки фильтра SRRC с коэффициентом спада β = 0,3. На длину фильтра SRRC влияет параметр Nsym - диапазон длины фильтра в единицах символов и коэффициент передискретизации L.

Фильтры не производят мгновенный вывод, и им требуется время для вывода. То есть выход фильтра сдвинут во времени относительно входа. Для симметричных КИХ-фильтров длиной Lfir задержка фильтра равна Lfir / 2 . Помимо

возврата функции импульса SRRC, функция проектирования фильтра, возвращает задержку фильтра. Задержки фильтра полезны при определении соответствующих

экземпляров выборки в приемнике. Модулированные символы в передатчике проходят через разработанный фильтр, и его отклик показан на рисунке 10.

Программа 12: Формирование импульсов SRRC

%----Pulse shaping-----

beta = 0.3;% roll-off factor for Tx 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);%design filter s=conv(v,p,'full');%Convolve modulated syms with p[n] filter figure; plot(real(s),'r'); title('Pulse shaped symbols s(n)');

Выборки сигнала в форме импульса отправляются через канал AWGN, где переданные выборки добавляются с выборками шума, которые генерируются в соответствии с требуемым Eb / N0 (см. Модель шума AWGN, приведенную в разделе 6.1.2). Принятый сигнал, искаженный шумом AWGN, показан на рисунке

7.11.

Рисунок 10 – Модулированные символы с повышенной дискретизацией на 4 (слева) и выход фильтра формирования импульсов SRRC (справа)

Программа 13: Добавление шума AWGN для заданного значения SNR

EbN0dB = 10; %EbN0 in dB for AWGN channel

snr = 10*log10(log2(M))+EbN0dB; %Converting given Eb/N0 dB to SNR %log2(M) gives the number of bits in each modulated symbol

r = add_awgn_noise(s,snr,L); %AWGN , add noise for given SNR, r=s+w %L is the oversampling factor used in simulation

figure; plot(real(r),'r');title('Received signal r(n)');

Соседние файлы в предмете Основы построения инфокоммуникационных систем и сетей