Ideas for improved FM reception

Guys [+girls?],
I’m new to the list. I joined because I do research in signal
processing
(speech recognition) and I have the idea
that it ought to be possible to use statistical signal processing to get
much better FM radio reception than a normal tuner.
I basically want to process the quadrature output (the 2 signals that
you
get out after multiplying by sin + cos and
lopass filtering) in a different way, not just doing atan but doing a
bunch
of predictive modeling at that stage, assuming
the signal is a mix of multiple stations + noise, and trying to separate
the
signals out.
I want to ask this list two things:
(1) is anyone aware of anyone having tried something like this in the
past
(or know what search
terms I might use to find this out), and
(2) Could anyone give me to work with, the sampled output at the
quadrature
stage (I assume this would be something
like 2 synchronized .wav or a stereo .wav file (does it support
stereo?),
sampled at quite a high frequency).
Dan

Martin D. schrieb am 2007-12-07 18:28:

The second thing I want to do is detecting if multiple transmitters (at different locations and frequencies) transmit the same radiostation.
With a single tuner I can capture all these signals at the same time.

Provided they are within 8 or 16MHz.

Then do a correlation to get there phase and time relationship.
And then smartly combine them to get better signal quality.

Clever boy!

Do you have in mind that RD(B)S transmits “alternative frequencies”?
This is a feature to enable seamless frequency switch for mobile users
(cars). Never thought of it to use it simultaneously.
This would spare you a lot of correlation.

Do you have some code already?

Patrick

Engineers motto: cheap, good, fast: choose any two
Patrick S.
Student of Telematik, Techn. University Graz, Austria

Daniel Povey wrote:

signals out.
I want to ask this list two things:
(1) is anyone aware of anyone having tried something like this in the past
(or know what search
terms I might use to find this out), and
I am working on an optimized FM receiver for gnuradio.
At the moment my main concern is getting the processing load down.
But I am also going to implement improvements in quality.
The first thing I am going to implement is implementing MIMO.
That is, using multiple tuners to get signals from multiple antennas and
combine these signals to get a better signal quality.
(Phase array)

The second thing I want to do is detecting if multiple transmitters (at
different locations and frequencies) transmit the same radiostation.
With a single tuner I can capture all these signals at the same time.
Then do a correlation to get there phase and time relationship.
And then smartly combine them to get better signal quality.
The simplest thing to do is lineup the signals (phase and time shift)
and add them up.
A better approuch would be to do some statistical analisis like you
described.

This can be done both before and after frequency demodulation.
I don’t know yet which one will give better results.

Your approuch sounds interesting.
Unfortunately I am not a statisticus aor signal modeling expert, but I
am very handy with GnuRadio and FFT processing.
So maybe we could combine forces.

(2) Could anyone give me to work with, the sampled output at the quadrature
stage (I assume this would be something
like 2 synchronized .wav or a stereo .wav file (does it support stereo?),
sampled at quite a high frequency).
Dan

Walker, Robert CIV NSWC Crane, WC NAE Staff wrote:

Daniel - There are a bunch of different types of captured samples at
http://www.kd7lmo.net/ground_gnuradio_ota.html. The output isn’t .wav,
but you can find a format description at the gnuradio website or the
tutorial at http://sdr.nd.edu/docs/.
Daniel, did this work out for you?
If you need more captured signals, I can capture some for you.
I can even capture using two tuners / two antenna’s or capture two
frequencies which transmit the same radio station at the same time.

What samplerate do you need/want.
The USRP can produce the following samplerates (Samples/second):
8000000, 5333333.33, 4000000, 3200000, 2666666.67, 2285714.29, 2000000,
1777777.78, 1600000, 1454545.45, 1333333.33, 1230769.23, 1142857.14,
1066666.67, 1000000, 941176.47, 888888.89, 842105.26, 800000, 761904.76,
727272.73, 695652.17, 666666.67, 640000, 615384.62, 592592.59,
571428.57, 551724.14, 533333.33, 516129.03, 500000, 484848.48,
470588.24, 457142.86, 444444.44, 432432.43, 421052.63, 410256.41,
400000,
390243.9, 380952.38, 372093.02, 363636.36, 355555.56, 347826.09,
340425.53, 333333.33, 326530.61, 320000, 313725.49, 307692.31,
301886.79,
296296.3, 290909.09, 285714.29, 280701.75, 275862.07, 271186.44,
266666.67, 262295.08, 258064.52, 253968.25, 250000,

for wideband FM usually 320000 samples/second is used
This is handy because after processing you can decimate by 10 to get a
nice 32000 samples/second audiorate

Possible output formats:
raw complex shorts

or

raw complex floats

the gnuradio raw complex format is just all Real and Imaginary samples
interleaved.
Re0 Im0 Re1 Im1 Re3 Im3

for complex shorts this mean 16 bit signed short int Real0, 16 bit
signed short int Imag0, …
for complex floats this mans 32 bit float Real0, 32 bit float Imag0,

It is also possible to output the Real and Imaginary samples in separate
files
file one: Re0 Re1 Re2 …
file two: Im0 Im1 Im2 …

You can convert the complex captured signals into (stereo) wav files
with
sox - Sound eXchange : universal sound sample translator

Sox is available in all linux distributions, and also available for
windows.
http://sox.sourceforge.net/

I hope this helps,

Martin

Patrick S. wrote:

Clever boy!

Do you have in mind that RD(B)S transmits “alternative frequencies”?
This is a feature to enable seamless frequency switch for mobile users
(cars). Never thought of it to use it simultaneously.
This would spare you a lot of correlation.
Yes, that is exactly how I got the idea.
So I intend to use RDS.
I already have an RDS decoder in place.
You still need a correlation for the phase/time relationship but you
don’t have to correlate every frequency to determine if it is a “mirror”
of
your current station.

Greetings,
Martin

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs