Time Frequency Analysis We want to see how

  • Slides: 27
Download presentation
Time Frequency Analysis • We want to see how the frequencies of a signal

Time Frequency Analysis • We want to see how the frequencies of a signal change with time. • Typical example of a Time/Frequency representation: log(freq) time

Short Time Fourier Transform (STFT) • Given a signal we take the FFT on

Short Time Fourier Transform (STFT) • Given a signal we take the FFT on a window sliding with time

Spectrogram: ideally • The evolution of the magnitude with time is called Spectrogram. •

Spectrogram: ideally • The evolution of the magnitude with time is called Spectrogram. • Ideally we would like to have this: frequency time

Spectrogram: in practice • We need to deal with the effects of the window:

Spectrogram: in practice • We need to deal with the effects of the window: main lobe and sidelobes frequency time

Spectrogram: effect of window length • Let N be the length of the window

Spectrogram: effect of window length • Let N be the length of the window frequency time • Frequency Resolution • Time resolution: with m depending on the window;

Windows Rectangular Hamming Blackman

Windows Rectangular Hamming Blackman

Time/Frequency Uncertainty Principle • either you have good resolution in time or in frequency,

Time/Frequency Uncertainty Principle • either you have good resolution in time or in frequency, not both. either … or good localization in time. . . good localization in freq.

Example: a Chirp A “Chirp” is a sinusoid with time varying frequency, with expression

Example: a Chirp A “Chirp” is a sinusoid with time varying frequency, with expression If the frequency changes linearly with time, it has the form shown below: Frequency (Hz) Time (sec)

Chirp in Matlab Fs=10000; Ts=1/Fs; t=(0: 999)*Ts; y=chirp(t, 100, t(1000), 4000); plot(t(1: 300), y(1:

Chirp in Matlab Fs=10000; Ts=1/Fs; t=(0: 999)*Ts; y=chirp(t, 100, t(1000), 4000); plot(t(1: 300), y(1: 300))

Given Data Four repetitions of a chirp:

Given Data Four repetitions of a chirp:

Spectrogram of the Chirp: no window spectrogram(y, rectwin(256), 250, 256, Fs, 'yaxis');

Spectrogram of the Chirp: no window spectrogram(y, rectwin(256), 250, 256, Fs, 'yaxis');

Spectrogram of the Chirp: hamming window spectrogram(y, hamming(256), 250, 256, Fs, 'yaxis');

Spectrogram of the Chirp: hamming window spectrogram(y, hamming(256), 250, 256, Fs, 'yaxis');

Spectrogram of the Chirp: shorter window spectrogram(y, hamming(64), 60, 64, Fs, 'yaxis');

Spectrogram of the Chirp: shorter window spectrogram(y, hamming(64), 60, 64, Fs, 'yaxis');

Spectrogram of the Chirp: shorter window spectrogram(y, hamming(64), 60, 256, Fs, 'yaxis');

Spectrogram of the Chirp: shorter window spectrogram(y, hamming(64), 60, 256, Fs, 'yaxis');

Spectrogram of the Chirp: blackman window spectrogram(y, blackman(256), 250, 256, Fs, 'yaxis');

Spectrogram of the Chirp: blackman window spectrogram(y, blackman(256), 250, 256, Fs, 'yaxis');

Sealion

Sealion

Spectrogram of Sealion: hamming window spectrogram(y(2001: 12000), hamming(256), 250, 256, Fs, 'yaxis');

Spectrogram of Sealion: hamming window spectrogram(y(2001: 12000), hamming(256), 250, 256, Fs, 'yaxis');

Spectrogram of Sealion: no window spectrogram(y(2001: 12000), rectwin(256), 250, 256, Fs, 'yaxis');

Spectrogram of Sealion: no window spectrogram(y(2001: 12000), rectwin(256), 250, 256, Fs, 'yaxis');

Spectrogram of Sealion: blackman, longer spectrogram(y(2001: 12000), blackman(512), 500, 512, Fs, 'yaxis');

Spectrogram of Sealion: blackman, longer spectrogram(y(2001: 12000), blackman(512), 500, 512, Fs, 'yaxis');

Music spectrogram(y(2001: 12000), blackman(512), 500, 512, Fs, 'yaxis');

Music spectrogram(y(2001: 12000), blackman(512), 500, 512, Fs, 'yaxis');

Spectrogram spectrogram(y(12001: 22000), hamming(256), 250, 256, 'yaxis');

Spectrogram spectrogram(y(12001: 22000), hamming(256), 250, 256, 'yaxis');

Spectrogram: zoom spectrogram(y(12001: 22000), hamming(256), 250, 256, 'yaxis'); Not enough frequency resolution!

Spectrogram: zoom spectrogram(y(12001: 22000), hamming(256), 250, 256, 'yaxis'); Not enough frequency resolution!

Frequencies we expect to see Since this signal contains music we expect to distinguish

Frequencies we expect to see Since this signal contains music we expect to distinguish between musical notes. These are the frequencies associated to it (rounded to closest integer): Notes Freq. (Hz) C Db D Eb E F Gb G Ab A Bb B 262 277 294 311 330 349 370 392 415 440 466 494 Desired Frequency Resolution***: This yields a window length of at least N=1024 ***Note: the slide in the video has a typo, showing the inequality reversed.

Spectrogram: longer window spectrogram(y(12001: 22000), hamming(1024), 1000, 1024, 'yaxis');

Spectrogram: longer window spectrogram(y(12001: 22000), hamming(1024), 1000, 1024, 'yaxis');

Spectrogram: longer window (zoom) spectrogram(y(12001: 22000), hamming(1024), 1000, 1024, 'yaxis');

Spectrogram: longer window (zoom) spectrogram(y(12001: 22000), hamming(1024), 1000, 1024, 'yaxis');

Spectrogram: recognize some notes spectrogram(y(12001: 22000), hamming(1024), 1000, 1024, 'yaxis'); Closest Notes: E: 330

Spectrogram: recognize some notes spectrogram(y(12001: 22000), hamming(1024), 1000, 1024, 'yaxis'); Closest Notes: E: 330 Hz, 660 Hz D: 294 Hz, 588 Hz

Check with the Music Score E E B D D A

Check with the Music Score E E B D D A