Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Instananeous frequency of a chirp signal is halved?

  1. Jan 27, 2013 #1
    I'm doing some research with MATLAB, where i have a simple chirp. y = sin(x.^2)
    i take the FFT of the chirp, set the upper half of the FT of the signal to 0, and take the IFFT of this to recover the original chirp y with real and imaginary parts.
    then i use the formula for calculation of the instantaneous frequency:

    (s1.*ds2 - s2.*ds1)./(s1.^2 +s2.^2)
    where s1 is the real part of y, s2 is imag of y
    and ds1 and ds2 are the derivatives of s1 and s2 respectively.

    It turns out i get my inst. freq to be y = x. but i expected y = 2x.
    Is there any reason why my inst. frequency is missing the factor of 2? I have no idea what I'm doing wrong that results in the missing factor.
    thanks!
    any help is greatly appreciated.

    here is my MATLAB code:
    function []=chirp()

    x = 0:0.01:5;
    y = sin(x.^2);
    y = sin(x.^2)-mean(y); %eliminate DC offset subtract mean
    plot(x,y,'k')
    hold on
    y = fft(y);
    y = 2*y; %double the amplitude
    y(250:end) = 0; %cut off upper half the signal
    y = ifft(y);
    %double amplitude of the chirp signal
    s1 = real(y);
    plot(x,s1, 'p')
    s2 = imag(y);
    %plot(x,s2, 'r')
    ds1 = diff(s1)./0.01;
    ds1(501) = 0;
    ds2 = diff(s2)./0.01;
    ds2(501) = 0;
    %derivative plots:
    %plot(x,ds1,'y');
    %plot(x,ds2,'k');
    %obtain instantaneous frequency
    n = (s1.*ds2 - s2.*ds1);
    d = (s1.^2 +s2.^2+ (max(s1).^2));
    q = n./d;
    plot(x,q, 'g')
     
  2. jcsd
  3. Feb 1, 2013 #2
    How did you arrive at your formula for the instantaneous frequency? I suspect that it might be off.

    If I calculate the instantaneous frequency using a different approach, with the analytical signal 'y' using your code:

    dy = diff(y)/0.01;
    dy(501) = 0;
    instfrq = imag(dy./y);

    I get something that tracks 2*x instead. Here I used the imaginary part of the log-derivative of the analytic signal:

    [itex]\hat{y} = A e^{i\varphi(t)}[/itex]
    [itex]\frac{d\hat{y}}{dt}=i \frac{d\phi(t)}{dt} A e^{i\varphi(t)}[/itex]
    [itex]\rightarrow \frac{d\phi(t)}{dt} = \frac{\frac{d\hat{y}}{dt}}{i \hat{y}}[/itex]
     
  4. Feb 1, 2013 #3
    it turns out i made a mistake with my epsilion correction factor, it works now though. thanks
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Instananeous frequency of a chirp signal is halved?
  1. Signal generator (Replies: 6)

  2. Beat signals (Replies: 19)

Loading...