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)