Files
jens b823fe9942 - fixed phase
git-svn-id: http://moon:8086/svn/matlab/trunk@158 801c6759-fa7c-4059-a304-17956f83a07c
2022-06-29 10:44:29 +00:00

81 lines
1.4 KiB
Matlab
Executable File

function P = eval_farrow()
M = 5;
Nb = 33;
R = 32;
Np = R*(Nb+1);
sr = 1;
SRRC_ROLLOFF = 0.35;
nsamplespersym = 2;
if (mod(Nb, 2) ~= 0)
offset = R/2;
else
offset = R/2;
end;
offset=0
% Simulation
Ni = 1000;
close all;
[hp, kn] = calcfir_srrc(R*nsamplespersym*sr, 2/sr, SRRC_ROLLOFF, Np);
hp = R*kn*hp; %.*kaiser(Np, 8)';
%hp = gen_basefir(N, R, 0.125).*hann(R*N+1)';
hb = hp(offset+1:R:Np);
freqz(hb);
P = fir_polyfit(M, R, hp, Nb, offset);
for k=1:Nb,
pv((k-1)*Ni+1:k*Ni) = polyval(P(k,:), (0:Ni-1)/Ni);
end;
figure;
plot(offset:R:Np-1, hb, 'ro', 0:Np-1, hp, 'b+', R*(0:Nb*Ni-1)/Ni, pv, 'g-');
legend('Base FIR', 'Prototype FIR', 'Interpolation');
grid;
for pp=1:M,
figure;
pt = sprintf('C_{%d}', M-pp);
plot(0:Nb-1, P(1:Nb, pp));
title(pt);
grid on;
end;
Nd = 11;
x = [1 zeros(1, Nb)];
for d=1:Nd,
mu(d) = (Nd-d)/(Nd-1);
y(d,:) = farrow(x, P, mu(d));
end;
figure;
for d=0:R
plot(hp(offset+1+d:R:offset+R*Nb+d)); grid on; hold on;
end
figure;
for d=1:Nd,
pt = sprintf('mu = %f', mu(d));
plot(y(d,:)); grid on; hold on;
% freqz(y(d,:));
legend(pt);
F(d) = getframe;
end;
fid = fopen('farrow_coeff.dat','wb');
fwrite(fid,M,'uint');
fwrite(fid,Nb,'uint');
fwrite(fid,P,'float');
fclose(fid);
%for mm=1:M
% for nn=1:Nb
movie(F,3, 12)