git-svn-id: http://moon:8086/svn/matlab/trunk@157 801c6759-fa7c-4059-a304-17956f83a07c
28 lines
711 B
Matlab
Executable File
28 lines
711 B
Matlab
Executable File
function [b, kn] = calcfir_srrc(fa, Tsym, a, N)
|
|
|
|
if mod(N,2) ~= 0
|
|
delay = (N-1)/2;
|
|
else
|
|
delay = N/2;
|
|
end
|
|
|
|
k = sqrt(2/Tsym);
|
|
k0 = 0.5*Tsym*fa;
|
|
kn = 1/k0;
|
|
|
|
for n=0:N-1,
|
|
phi = (n-delay)/fa;
|
|
if phi == 0.0
|
|
b(n+1) = -k * (pi*(a-1.0) - 4*a) /(pi*fa);
|
|
else
|
|
if abs(abs(8*a*phi/Tsym) - 1.0) < sqrt(eps)
|
|
b(n+1) = k / (2*pi*fa) * (pi*(a+1.0) * sin(pi*(a+1.0)/(4*a)) - 4*a * sin(pi*(a-1.0)/(4*a)) + pi*(a-1.0) * cos(pi*(a-1.0)/(4*a)));
|
|
else
|
|
term = 8*a*phi/Tsym;
|
|
b(n+1) = -4*a/fa * ( cos((1.0+a)*2*pi*phi/Tsym) + sin((1.0-a)*2*pi*phi/Tsym) / (8*a*phi/Tsym)) / (pi * sqrt(1.0/(2/Tsym)) * (term*term - 1.0));
|
|
end
|
|
end
|
|
b(n+1) = b(n+1) * k * k0;
|
|
end;
|
|
|