FM Signal FFT

Started by Kate March 9, 2011
Dear all,

I have two questions; I got really confused about them and I appreciate if
you could help me.

1) I am interested in Received Signal Strength of FM broadcasting signal in
different areas. I am really wondering whether it would be the amplitude of
the FFT of the signal or the Power Spectrum Density (PSD) of that?

2) I collected data by sampling rate of 10MHz for 5 secs (My data is complex
and I just have 10MHz bandwidth of FM spectrum which is fine for me). I want
to look at my data in every 0.1s, which means I have got 50 segments of data
in 5 secs. Actually, I need the peak value of the sensed FM channels in
these 50 segments of data (which is related to the question 1). Now my
question is that, if we assume that the FFT amplitude is just fine here, do
I need to directly use FFT function in MATLAB and take the peaks out as
follows?

Y = fft(complex_signal,NFFT);

plot(freq,10*log10(abs(Y))+30) %FFT of FM Signal (dBm)

complex_signal is the vector of (1x1e^6) data in 0.1s.
What would NFFT be here? Is that 1e^6 since I am looking at 0.1sec of data
each time? Or it should be as the same as sampling frequency?
Thanks all,
Cheers,
Kate
Kate-

Doesn't seem like anyone gave an answer, let me give a quick try.

> I have two questions; I got really confused about them and I appreciate if
> you could help me.
>
> 1) I am interested in Received Signal Strength of FM broadcasting signal in
> different areas. I am really wondering whether it would be the amplitude of
> the FFT of the signal or the Power Spectrum Density (PSD) of that?

PSD. Instantaneous frequency domain amplitude will vary depending on modulation (information content), so you
probably want some type of averaged result.

> 2) I collected data by sampling rate of 10MHz for 5 secs (My data is complex
> and I just have 10MHz bandwidth of FM spectrum which is fine for me). I want
> to look at my data in every 0.1s, which means I have got 50 segments of data
> in 5 secs. Actually, I need the peak value of the sensed FM channels in
> these 50 segments of data (which is related to the question 1). Now my
> question is that, if we assume that the FFT amplitude is just fine here, do
> I need to directly use FFT function in MATLAB and take the peaks out as
> follows?
>
> Y = fft(complex_signal,NFFT);
>
> plot(freq,10*log10(abs(Y))+30) %FFT of FM Signal (dBm)
>
> complex_signal is the vector of (1x1e^6) data in 0.1s.
> What would NFFT be here? Is that 1e^6 since I am looking at 0.1sec of data
> each time? Or it should be as the same as sampling frequency?

First not sure what you mean by "take the peaks out". I assume you're trying to identify frequencies with high
energy, not remove (filter) them.

Second, NFFT is the size of the FFT you want to perform, so in this case NFFT should be at least the size of your
input array (i.e. the "analysis framesize"), or larger. Typically a power-of-2 value is used (results are calculated
faster) so in this case you might use 1,048,576. If NFFT is larger than your analysis framesize (in the above
example, the length of your complex_signal array), then complex_signal will be zero-padded up to NFFT. If you do
that, you may want to also apply a window (and possibly overlap between successive FFTs) to avoid "edge noise"
resulting from a discontinuity where zero-padding starts.

-Jeff