La señal de barrido / chirrido termina a una frecuencia incorrecta

Estoy creando una señal de barrido / chirp usando matlab / octava y mi señal de finalización parece estar terminando en la frecuencia incorrecta. ¿Cómo puedo arreglarlo para que la señal termine en la frecuencia correcta?

PD: No puedo usar el comando chirp en octava porque estoy creando una señal chirp / sweep usando una ecuación específica.

Código de ejemplo con ecuación simple. y trama del problema

%test sweep / chirp

clear all,clc
freq1=20; %start freq
freq2=200; %end freq
fs=44100;
dur=1; %duration of signal in seconds

t = linspace(0,2*pi,fs*dur);

f=freq1:(freq2-freq1)/length(t):freq2-(freq2-freq1)/length(t); 
%20:(200-20)/lenght(t) :200-(200-20)/length(t)

data=sin(f.*t); %build signal
data=(data/max(abs(data))*.8); %normalize signal
wavwrite([data'] ,fs,32,strcat('/tmp/del.wav')); %export file
plot(t,data)

PD: estoy usando octava 3.8.1

Respuestas a la pregunta(2)

Su respuesta a la pregunta