- added
git-svn-id: http://moon:8086/svn/matlab/trunk@157 801c6759-fa7c-4059-a304-17956f83a07c
This commit is contained in:
Executable
+79
@@ -0,0 +1,79 @@
|
||||
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;
|
||||
% 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)
|
||||
Reference in New Issue
Block a user