What is the unit of frequency in a spectrogram- Hertz or frequency bins?

3 views (last 30 days)
Is it Frequency in hertz or in bins? If in bins, how do you convert it to Hertz?
Thanks

Answers (1)

dpb
dpb on 8 Mar 2014
The latter and by using your sampling frequency and sample time.
  6 Comments
Win
Win on 8 Mar 2014
When I do the FFT of the same signal using the following simple codes
if true
clear all;
Array=csvread('Nodefect-63dB.csv');
t = Array(:, 1);
x = Array(:, 2);
X=fft(x);
X_mag=abs(X);
plot(abs(X))
end
I get the attached figure where the frequency axis finishes in 5000000 (10 times greater than what the spectrogram finishes in- also attached below). All I want is to understand how MATLAB displays the frequency. It's the same signal being analysed. For the FFT, frequency is on the x-axis while for the spectrogram, frequency is on the y-axis. Why is the frequency on the spectrogram from 0-500,000 while that on the FFT plot from 0-5000,000? How do I convert them to Hertz?
Thanks!
dpb
dpb on 8 Mar 2014
Again I reiterate -- fft "knows nuthink" about frequency, it's simply the two-sided DFT of the input in a vector of length N. If you want to plot against a real frequency, you have to create the frequency vector associated with your sampling frequency and sample length. See
doc fft % which shows an example of a PSD and a plot.
Note especially that the DC component is at point N/2+1. Also see
doc fftshift
OTOH, since you used the optional input Fs sample frequency to spectrogram, it normalized the plot to that and handles the display of the single-sided plot automagically for you as a convenience of being a higher-level routine than fft
Read the documentation more carefully and in full on the two specifically and the background information on the FFT in general as well as slowing down and really thinking about what it is that you're actually plotting and computing.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!