[linux-dvb] software radio

BOUWSMA Barry freebeer.bouwsma at gmail.com
Wed Sep 17 13:20:07 CEST 2008


On Wed, 17 Sep 2008, alireza ghahremanian wrote:

> Is it possible to access the sampling subsystem of a dvb card 
> as like skystar 2 or any other ?

I'm not sure I understand your question.

The way a SkyStar 2 card works can be described, in the case
of radio -- assuming the same radio which I tune with it is
that which you want to demodulate -- is sort of like this...

Baseband analogue audio is sampled at 48kHz, 16bit, and then 
compressed into a stream, usually MPEG 1/2 Layer II, but
sometimes Dolby AC3 or similar.  From this, an ES (Elementary
Stream) is created.

This Elementary Stream is then multiplexed into an MPEG
Transport Stream with other services.

The resulting datastream is then modulated onto a RF carrier,
using something like QPSK or whatever is appropriate to the
delivery system, sent to a satellite (SkyStar) and effectively
bounced back.  Error correction and whatnot is added at this
point.

Your hardware tunes into the RF signal, and itself demodulates
the QPSK modulation and recovers the Transport Stream, or at
least part of it.

The Linux-DVB API gives you access to this demodulated signal.

Then, an application can work with this TS, extract the payload
from it (the Layer II or equivalent audio), and decode that into
a PCM stream.

OF course, I could be wrong...


> I want to make a software radio and i want to do demodulation 
> and decoding in software?

The demodulation is performed by the hardware in your SkyStar
card.

The demultiplexing and decoding are already handled either by
all-in-one programs, or you could chain together building-block
tools that already exist, in order to listen to radio...

I use separate, existing utilities to control the frontend (tune
to a transponder); I'm delivered some part of a transport stream
which I can either play, with, for example, `mplayer', or I can
hand it to `ts_es_audio_demux' (if that's not part of the DVB
libdvb package, then it's a hack based on the existing routines
to extract ESen from a TS in that package); that's either an mp2
or ac3 stream which I can pass directly to, for example, `mpg123'
or in a slightly different fashion, to `ac3dec'


The demodulation is performed in the hardware.  You can, of
course, re-invent the wheel if you like and perform the
demultiplexing and decoding to PCM in software, if that is
what you are asking.


The sampling is done at the broadcaster/uplink end, and the
corresponding samples are the PCM output, if I understand
what you are asking.


Sorry if I do not understand your question correctly.

barry bouwsma



More information about the linux-dvb mailing list