чувствителен к временным колебаниям в приемнике. Эти проблемы можно решить,
если сделать полосу перехода в частотной области менее резкой.
Формирование сигналов типа « приподнятый косинус»
Как упоминалось ранее, недостатки сигнала 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