- added
git-svn-id: http://moon:8086/svn/matlab/trunk@153 801c6759-fa7c-4059-a304-17956f83a07c
This commit is contained in:
Executable
+24
@@ -0,0 +1,24 @@
|
||||
% function [b,k] = fir_rc(fa, T, N, alpha)
|
||||
% Raised Cosine FIR-Filter
|
||||
|
||||
function [b,k] = fir_rc(fa, T, alpha, N)
|
||||
|
||||
n = -(N-1)/2:1:(N-1)/2;
|
||||
t = n/fa;
|
||||
|
||||
nom = sinc(t/T).*cos(pi*alpha*t/T);
|
||||
denom = (1 - (2*alpha*t/T).^2);
|
||||
|
||||
% Find zero elements
|
||||
ze = find(abs(alpha*t/T) == 0.5);
|
||||
|
||||
nom(ze) = pi/4 * sinc(t(ze)./T);
|
||||
denom(ze) = 1;
|
||||
|
||||
b = (nom./denom).*blackman(N)';
|
||||
k = 1 /sum(b);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
% [h] =fir_rc(Fa,Tsym,Alpha,N)
|
||||
function [b,k,delay] =fir_rc(fa,Tsym,Alpha,N)
|
||||
|
||||
if rem(N,2),
|
||||
delay = (N-1)/2;
|
||||
else
|
||||
delay = N/2;
|
||||
end
|
||||
|
||||
n = ((0:N-1)-delay)/fa;
|
||||
|
||||
ind1 = find(abs(abs(4.*Alpha.*n./Tsym) - 1.0) > sqrt(eps));
|
||||
if ~isempty(ind1),
|
||||
nind = n(ind1);
|
||||
b(ind1) = sinc(2.*nind./Tsym)./fa ...
|
||||
.* cos(2.*pi.*Alpha.*nind./Tsym) ...
|
||||
./ (1.0 - (4.*Alpha.*nind./Tsym).^2);
|
||||
end
|
||||
|
||||
ind = 1:length(n);
|
||||
ind(ind1) = [];
|
||||
b(ind) = Alpha ./ (2.*fa) .* sin(pi ./ (2.*Alpha));
|
||||
|
||||
b = 2.*b./Tsym;
|
||||
k=0.5*fa*Tsym;
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
% function [b,k] = fir_rc(fa, T, N, alpha)
|
||||
% Raised Cosine FIR-Filter
|
||||
|
||||
function [b,k] = fir_rc(fa, T, alpha, N)
|
||||
|
||||
n = -(N-1)/2:1:(N-1)/2;
|
||||
t = n/fa;
|
||||
|
||||
nom = sinc(t/T).*cos(pi*alpha*t/T);
|
||||
denom = (1 - (2*alpha*t/T).^2);
|
||||
|
||||
% Find zero elements
|
||||
ze = find(abs(alpha*t/T) == 0.5);
|
||||
|
||||
nom(ze) = pi/4 * sinc(t(ze)./T);
|
||||
denom(ze) = 1;
|
||||
|
||||
b = (nom./denom).*blackman(N)';
|
||||
k = 1 /sum(b);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
% [h] =fir_rrc(fa,Tsym,Alpha,N)
|
||||
function [b,k,delay] =fir_rrc(fa,Tsym,Alpha,N)
|
||||
|
||||
if rem(N,2),
|
||||
delay = (N-1)/2;
|
||||
else
|
||||
delay = N/2;
|
||||
end
|
||||
|
||||
n = ((0:N-1)-delay)/fa;
|
||||
|
||||
ind1 = find(n == 0);
|
||||
if ~isempty(ind1),
|
||||
b(ind1) = - sqrt(2./Tsym) ./ (pi.*fa) .* (pi.*(Alpha-1) - 4.*Alpha );
|
||||
end
|
||||
|
||||
ind2 = find(abs(abs(8.*Alpha.*n./Tsym) - 1.0) < sqrt(eps));
|
||||
if ~isempty(ind2),
|
||||
b(ind2) = sqrt(2./Tsym) ./ (2.*pi.*fa) ...
|
||||
* ( pi.*(Alpha+1) .* sin(pi.*(Alpha+1)./(4.*Alpha)) ...
|
||||
- 4.*Alpha .* sin(pi.*(Alpha-1)./(4.*Alpha)) ...
|
||||
+ pi.*(Alpha-1) .* cos(pi.*(Alpha-1)./(4.*Alpha)) ...
|
||||
);
|
||||
end
|
||||
|
||||
ind = 1:length(n);
|
||||
ind([ind1 ind2]) = [];
|
||||
nind = n(ind);
|
||||
|
||||
b(ind) = -4.*Alpha./fa .* ( cos((1+Alpha).*2.*pi.*nind./Tsym) + ...
|
||||
sin((1-Alpha).*2.*pi.*nind./Tsym) ./ (8.*Alpha.*nind./Tsym) ) ...
|
||||
./ (pi .* sqrt(1./(2./Tsym)) .* ((8.*Alpha.*nind./Tsym).^2 - 1));
|
||||
|
||||
b = sqrt(2./Tsym) .* b;
|
||||
k=0.5*fa*Tsym;
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
% function b = fir_rrc(fa, T, N, alpha)
|
||||
% Root Raised Cosine FIR-Filter
|
||||
|
||||
function b = fir_rrc(fa, T, N, alpha)
|
||||
|
||||
n = -(N-1)/2:1:(N-1)/2;
|
||||
t = n/fa;
|
||||
|
||||
A = 4*alpha/(pi*sqrt(T))
|
||||
|
||||
nom = 4*alpha*cos((1+alpha)*pi*t/T) + T*sin((1-alpha)*pi*t/T);
|
||||
denom = pi*sqrt(T)*(1 - (4*alpha*t/T).^2);
|
||||
|
||||
% Find zero elements
|
||||
ze = find(abs(alpha*t/T) == 0.25)
|
||||
|
||||
%nom(ze) = sqrt(T)*(1 - alpha*(1 - (4/pi)));
|
||||
%denom(ze) = 1;
|
||||
|
||||
b = nom./denom;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user