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

# FM Signal FFT

Started by ●March 9, 2011

Reply by ●March 15, 20112011-03-15

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

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