Function: chirpzt
CHIRPZT Chirped Z-transform
  Usage:  c = chirpzt(f,K,fdiff)
          c = chirpzt(f,K,fdiff,foff)
          c = chirpzt(f,K,fdiff,foff,fs)

  Input parameters:
        f      : Input data.
        K      : Number of values.
        fdiff  : Frequency increment.
        foff   : Starting frequency. 
        fs     : Sampling frequency. 

  Output parameters:
        c      : Coefficient vector.

  c = CHIRPZT(f,K,fdiff,foff) computes K samples of the discrete-time 
  fourier transform DTFT c of f at values c(k+1)=F(2pi(f_{off}+kf_{diff}))
  for k=0,dots,K-1 where F=DTFT(f). Values foff and fdiff should
  be in range of 0-1. If foff is ommited or empty, it is considered to
  be 0. If fdiff is ommited or empty, K equidistant values 
  c(k+1)=F(2pi k/K) are computed. If even K is ommited or empty, 
  input length is used instead resulting in the same values as fft does.

  c = CHIRPZT(f,K,fdiff,foff,fs) computes coefficients using frequency 
  values relative to fs c(k+1)=F(2pi(f_{off}+kf_{diff})/fs) for k=0,dots,K-1.

  The input f is processed along the first non-singleton dimension or
  along dimension dim if specified.

  Examples:
  ---------
  
  Calculating DTFT samples of interest (aka zoom FFT):

    % Generate input signal
    fs = 8000;
    L = 2^10;
    k = (0:L-1).';
    f1 = 400;
    f2 = 825;
    f = 5*sin(2*pi*k*f1/fs + pi/4) + 2*sin(2*pi*k*f2/fs - pi/3);

    % This is equal to fft(f)
    ck = chirpzt(f,L);

    %chirpzt to FFT error:
    norm(ck-fft(f))

    % Frequency "resolution" in Hz
    fdiff = 0.4;
    % Frequency offset in Hz
    foff = 803.9;
    % Number of frequency values
    K = 125;
    % DTFT samples. The frequency range of interest is 803.9-853.5 Hz
    ckchzt = chirpzt(f,K,fdiff,foff,fs);

    % Plot modulus of coefficients
    figure(1);
    fax=foff+fdiff.*(0:K-1);
    hold on;
    stem(k/L*fs,abs(ck),'k');
    stem(fax,abs(ckchzt),'r:');
    set(gca,'XLim',[foff,foff+K*fdiff]);
    set(gca,'YLim',[0 1065]);
    xlabel('f[Hz]');
    ylabel('|ck|');

    % Plot phase of coefficients
    figure(2);
    hold on;
    stem(k/L*fs,angle(ck),'k');
    stem(fax,angle(ckchzt),'r:');
    set(gca,'XLim',[foff,foff+K*fdiff]);
    set(gca,'YLim',[-pi pi]);
    xlabel('f[Hz]');
    ylabel('angle(ck)');


  References:
    L. Rabiner, R. Schafer, and C. Rader. The chirp Z-transform algorithm.
    Audio and Electroacoustics, IEEE Transactions on, 17(2):86--92, 1969.
    
    

Url: http://ltfat.github.io/doc/fourier/chirpzt.html

See also: gga.

Package: ltfat