Electronics > RF, Microwave, Ham Radio

How to sample FM

<< < (3/3)

Dear All,

Thank you for your valuable inputs which definitely is useful for me.
I want to learn GSM signals ... and prior to doing that i thought to learn interpretation of FM / AM signals for example.

For example when you switch mobile on it is looking for so called "frequency correction burst" - which is in fact a pure sine wave with some microseconds duration. I wanted to visualize this microseconds sine wave etc etc....

By the way don't you know any live forum where GSM technical topics are being discussed...

Why not mix the FM signal down to an IF frequency and a lower sampling rate will be required

The sampling process is fundamentally a mixing process, and as RoGeorge mentioned can be cleverly utilized as an effective downconverter eliminating the need for a traditional mixer. Also mentioned is the need for a preselect filter to isolate the band of interest. Back in the 70s we called this RF sub-sampling, bringing Microwave signals down to baseband with a sampler.



--- Quote from: RoGeorge on September 23, 2021, 11:06:52 am ---
--- Quote from: langwadt on September 22, 2021, 01:16:41 pm ---
--- Quote from: RoGeorge on September 22, 2021, 12:43:21 pm ---If f0 is 100MHz with +/-100kHz deviation, than we can translate the spectrum around 0Hz, so we will have \$\Delta f = 200kHz\$ which will require a Nyquist sampling at 400 kilosamples/s (400kSa/s).

If I got your question wright, what you are looking for is decimation.

In decimation, if it were to have all the samples taken at 200 MSa/s, than we can simply keep only each 50th sample and discard the other samples.  That way we would get the same samples as if it we were sampling at 400 kSa/s (every 50th because 200 MSa/s = 200_000 kSa/s = 50 * 400 kSa/s).

Keep in mind that decimation will fold down other spectral components into the same band, so usually this is done by first applying a low pass filter over all of the high speed 200 MSa/s samples, and only after filtering we can throw away the rest of the samples and keep only each 50th sample after low pass filtering the original high speed signal.

The low pass filter in this numerical example must be at 200kHz, to cut out any higher spectral components.  This is necessary only if higher than 200kHz frequencies are present in the FM signal, because by decimation all other multiple of 200kHz bands (e.g. 400kHz-600kHz, or 91.8MHz to 92.0MHz, etc.) will be folded into the first 200kHz, too, and there is no way to distinguish which is which.

--- End quote ---

if you want the ~100MHz +/-100kHz signal from your 200MSa/s, you a bandpass filter around ~100MHz not a lowpass before decimation...

--- End quote ---

I guess I was using the wrong words.  AFAIK it's a low pass filter, not a band pass, and the cutting frequency is as low as the bandwidth of interest, near zero Hz.

The signal path for decimation is like this: 

1. Analog signal with spectrum between 0-100 MHz --->
2. High speed ADC sampling (200 MSa/s) --->
3. Keep only the Nth sample and make all the other samples zero (so we still have 200 MSa/s) --->
4. Apply low pass filter to keep only the bandwidth of interest (200 kHz) --->
5. Copy each Nth sample into a new array, this last array is at low sampling rate (400 kSa/s), it's the final result of the decimation.

I might have a working Python example to upload from some time ago when I was fiddling with decimation in GNU Radio.

--- End quote ---

close but, no..

if you want to interpolate(upsample) you take your 400kSa/s stream insert zeros and lowpass filter the now 200MSa/s stream

if you want to decimate(downsample) you take your 200MSa/s stream lowpass* filter and throw away* every nth sample to get 400kSa/s stream

*using a lowpass/bandpass you pick the one image of the n*400kHz +/-200kHz that you want to keep
*if using a FIR filter only calculate the samples you want to keep


[0] Message Index

[*] Previous page

There was an error while thanking
Go to full version