DVB-S/S2/S2X
Jump to navigation
Jump to search
DAB/DAB+
DAB/DAB+ channels can be found on satellite 7.0 east.
Frequency:12572 MHz Symbolrate: 10215000 Modulation: DVB-S2/QPSK Polarization: Vertical
Locking on Transponder:
/opt/bin/mediaclient -m DVBS2 -f 12572000 -M QPSK -S 10215000 -V V -E 3/4
FileOutput
capturing and replaying the stream:
/opt/bin/mediaclient --cat /dev/dvb/adapter0/dvr0 | ../eti-tools/fedi2eti 101 239.16.242.17 60017 | ./odr-dabmod -C doc/example.ini > test.iq
hackrf_transfer -t test.iq -f 180064000 -x 47 -a 1 -s 2048000 -b 1750000
example.ini (parts of it): [output] ; choose output: possible values: uhd, file, zmq, soapysdr output=file [fileoutput] ; Two output formats are supported: In the default mode, ; the file output writes I/Q float values (i.e. complex ; float) to the file. The I and Q samples can take values up ; to 810000 in absolute magnitude with gainmode FIX. With ; gainmode VAR and FIX, they should never exceed 50000. ;format=complexf ; ; The complexf_normalised format applies a compensation factor to the complexf ; output to bring the range of the I and Q components to [-1.0 .. 1.0]. The ; digital_gain is still applied on top of that normalisation. ;format=complexf_normalised ; ; When the format is set to s8, the output writes I/Q 8-bit ; signed integers, where the magnitude is multiplied by 128/50000 ; effectively mapping the gainmode VAR range of -50000 -- 50000 ; to -128 -- 128. For other gainmodes, use the digital_gain setting ; to make sure you don't create clipping. ; ; The format u8 is the same as s8, except that the values are mapped ; between 0 and 255. Use u8 for welle.io, qt-dab or other tools. ; ; Also supported is s16, with system endianness (little endian on x86_64 and ARM) format=s8 ; The output file: filename=/dev/stdout show_metadata=0
Soapy Output
/opt/bin/mediaclient --cat /dev/dvb/adapter0/dvr0 | ../eti-tools/fedi2eti 101 239.16.242.17 60017 | ./odr-dabmod -C doc/example.ini
[soapyoutput] ; These options are given to the SoapySDR library: device=driver=hackrf ;master_clock_rate=32768000 txgain=47 frequency=180064000
Soapy Config
Full Sample configuration:
; Sample configuration file for ODR-DabMod [remotecontrol] ; The RC feature is described in detail in doc/README-RC.md ; enable the telnet remote control on localhost:2121 telnet=1 telnetport=2121 ; Enable zmq remote control. zmqctrl=1 zmqctrlendpoint=tcp://127.0.0.1:9400 ; accepted formats according to man zmq_bind, i.e. ; tcp://<interface>:<port>, e.g. tcp://lo:9400 ; and tcp://<ipaddress>:<port> [log] ; Write to a logfile or to syslog. ; Setting filename to stderr is not necessary, as all messages are ; automatically written to stderr. syslog=0 filelog=0 filename=odr-dabmod.log [input] ; A file or fifo input is using transport=file transport=file source=/dev/stdin ; When the end of file is reached, it is possible to rewind it loop=0 ; ETI-over-TCP example: ;transport=tcp ;source=localhost:9200 ; When recieving data using ZeroMQ, the source is the URI to be used ;transport=zeromq ;source=tcp://localhost:9100 ; The option max_frames_queued defines the maximum number of ETI frames ; (frame duration: 24ms) that can be in the input queue ;max_frames_queued=100 ; EDI input. ; Listen for EDI data on a given UDP port, unicast or multicast. ;transport=edi ; ; EDI over TCP: ; ; Connect to TCP server on a given host ;source=tcp://localhost:9201 ; ; EDI over UDP: ; ; Supported syntax for the source setting: ; Bind to default interface and receive data from port 12000 ;source=udp://:12000 ; ; Bind to interface with IP:192.168.1.22 and receive data from port 12000 ;source=udp://192.168.1.22:12000 ; ; Bind to interface with IP:192.168.1.22 and join multicast group: ; 239.100.101.22 and receive data from port 12000 ;source=udp://192.168.1.22@239.100.101.22:12000 ; ; Bind to default interface (which routes to multicast) and join multicast ; group: 239.100.101.22 and receive data from port 12000 ;source=udp://@239.100.101.22:12000 ; ; Maximum delay in milliseconds that the EDI input is willing to wait ; before it timeouts ;edi_max_delay=240 ; This EDI implementation does not support EDI Packet Resend [modulator] ; Mode 'fix' uses a fixed factor and is really not recommended. It is more ; useful on an academic perspective for people trying to understand the DAB ; modulation. ; ; Mode 'max' is the normalization of every OFDM symbol. No overshoot, no ; truncating, but varying output power (around 3dB) which might not be the best ; for some power amplifier. The output samples are limited to a magnitude ; of 32768. ; ; Mode 'var' uses the method specified in ETSI 300 798 Clause 5.3. This method ; normalizes to 4 times the standard deviation for an approximation of the RMS ; power. So around 6/100000 samples will be truncated and will introduce some ; really minor distortion. But this mode also maximizes the output power. This ; is the gain mode recommended for real world operation as it is based on a DAB ; standard; the only difference is that ODR-DabMod internally calculates this with ; 32-bit floats instead of 8 bits. gainmode=var ; ; In mode var, you can choose to normalise the samples to something else than ; 4 times the standard deviation. ;normalise_variance=4 ; Transmission mode ; If not defined, use Transmission Mode 1 ;mode=1 ; The digital gain is a value that is multiplied to each sample. It is used ; to tune the chain to make sure that no non-linearities appear up to the ; USRP daughterboard programmable gain amplifier (PGA). ; If there is clipping, the spectral quality of the signal will quickly deteriorate, ; and wide-band noise will be generated. ; ; Be aware that there is a dependency with resampling. digital_gain=0.8 ; Output sample rate. Values other than 2048000 enable ; resampling. ; Warning! digital_gain settings are different if resampling ; is enabled or not ! rate=2048000 ; (DEPRECATED) CIC equaliser for USRP1 and USRP2 ; These USRPs have an upsampler in FPGA that does not have a flat frequency ; response. The CIC equaliser compensates this. This setting is specific to ; the USRP1 and USRP2 devices. ; Set to 0 to disable CicEqualiser ;dac_clk_rate=0 ; The USRP1 does not have flexible clocking, you will need ;rate=3200000 ; and ;dac_clk_rate=128000000 ; When nonzero, overlap ofdmwindowing samples from each OFDM symbol ; onto the previous and next symbol, using a raised cosine window function. ; This has the effect of smoothing the transition from one symbol to the next, ; which improves spectrum shape. ; In Transmission Mode I, every data symbol is composed of 2552 samples. ;ofdmwindowing=10 ; Settings for crest factor reduction. Statistics for ratio of ; samples that were clipped are available through the RC. [cfr] enable=0 ; At what amplitude the signal should be clipped clip=50.0 ; How much to clip the error signal used to compensate the effect ; of clipping error_clip=0.1 [firfilter] ; The FIR Filter can be used to create a better spectral quality. enabled=1 ; The filter taps can be calculated with the python script ; doc/fir-filter/generate-filter.py ; If filtertapsfile is not given, the default taps are used. ;filtertapsfile=simple_taps.txt [poly] ;Predistortion using memoryless polynom, see dpd/ folder for more info enabled=0 polycoeffile=polyCoefs [output] ; choose output: possible values: uhd, file, zmq, soapysdr output=soapysdr [fileoutput] ; Two output formats are supported: In the default mode, ; the file output writes I/Q float values (i.e. complex ; float) to the file. The I and Q samples can take values up ; to 810000 in absolute magnitude with gainmode FIX. With ; gainmode VAR and FIX, they should never exceed 50000. ;format=complexf ; ; The complexf_normalised format applies a compensation factor to the complexf ; output to bring the range of the I and Q components to [-1.0 .. 1.0]. The ; digital_gain is still applied on top of that normalisation. ;format=complexf_normalised ; ; When the format is set to s8, the output writes I/Q 8-bit ; signed integers, where the magnitude is multiplied by 128/50000 ; effectively mapping the gainmode VAR range of -50000 -- 50000 ; to -128 -- 128. For other gainmodes, use the digital_gain setting ; to make sure you don't create clipping. ; ; The format u8 is the same as s8, except that the values are mapped ; between 0 and 255. Use u8 for welle.io, qt-dab or other tools. ; ; Also supported is s16, with system endianness (little endian on x86_64 and ARM) format=s8 ; The output file: filename=/dev/stdout show_metadata=0 [uhdoutput] ; The UHD output can be directly used with the Ettus USRP devices ; ; You have to set master_clock_rate to a multiple of the ; sample_rate. Ideally, it should be ; master_clock_rate = 4 * sample_rate ; or even a higher factor. ; ; Settings for the B200: device= master_clock_rate=32768000 type=b200 txgain=40 ; The B200 needs larger gains (up to 89dB) but, ; "Gain settings are application specific, but it is recommended that users ; consider using at least half of the available gain to get reasonable dynamic ; range." ; From the B200 User Manual ; http://files.ettus.com/uhd_docs/manual/html/usrp_b200.html ; ; More information and measurements available on: ; http://wiki.opendigitalradio.org/index.php/USRP_B200_Measurements ; You can set what TX and RX antennas to use. This will depend on the ; USRP model you are using. ;tx_antenna= ;rx_antenna=RX2 ; Settings for a USRP B100: ;device= ; you can put additional UHD device settings here ;master_clock_rate=32768000 ;type=b100 ;txgain=2.0 ; Try first with small gain values ; Also set rate to 2048000 ; For the USRP1 ;device= ;type=usrp1 ; the usrp1 can have two daughterboards, the subdevice parameter allows you ; to choose which one to use ;subdevice=A:0 ; The USRP1 doesn't support master_clock_rate, you need to enable resampling ; You must specify either frequency or channel, but not both. ;frequency=234208000 channel=13C ; Override automatic analog frontend bandwidth calculation. Units: Hz ;bandwidth=2000000 ; Some USRP boards/frontends support setting an LO offset that has the ; effect of shifting DC out of the signal bandwidth. This should also ; improve IQ imbalance effects, because the mirror will centered on another ; frequency (it should be on frequency + 2*lo_offset) ; ; The value can be negative, and its absolute value must be smaller than ; master_clock_rate/2. ;lo_offset=2048000 ; The reference clock to use. The gpsdo is the ODR LEA-M8F board, the ; official Ettus GPSDO is selected with gpsdo-ettus ; possible values : internal, external, MIMO, gpsdo, gpsdo-ettus refclk_source=internal ; The reference one pulse-per second to use ; possible values : none, external, MIMO, gpsdo pps_source=none ; Behaviour when external clock reference lock lost ; possible values: ignore, crash behaviour_refclk_lock_lost=ignore ; The maximum accepted holdover time for the gpsdo once it ; started operating. Initial check interval for GPSDO lock ; at startup is always 180s. ; Valid only if the refclk and pps_source are set to gpsdo. ; Units: seconds ; Set to 0 to disable holdover check ; default value: 0 max_gps_holdover_time=600 ; Enable the TCP server to communicate TX and RX feedback for ; digital predistortion. ; Set to 0 to disable ;dpd_port=50055 ; section defining ZeroMQ output properties [zmqoutput] ; on which port to listen for connections ; please see the Transports section in man zmq ; for more information regarding the syntax listen=tcp://*:54001 ; what ZMQ socket type to use. Valid values: PUB, REP ; Please see man zmq_socket for documentation socket_type=pub ; section defining the SoapySDR output settings. [soapyoutput] ; These options are given to the SoapySDR library: device=driver=hackrf ;master_clock_rate=32768000 txgain=61 ; 47 frequency=180064000 ; channel=5D ; 13C ;lo_offset=2048000 ; Override automatic analog frontend bandwidth calculation. Units: Hz ;bandwidth=2000000 ; You can set what TX antenna to use. This will depend on the ; SDR device you are using. ;tx_antenna= ; Enable the TCP server to communicate TX and RX feedback for ; digital predistortion. ; Set to 0 to disable ;dpd_port=50055 ; Used for running single-frequency networks [delaymanagement] ; Enable handling of timestamps for SFN synchronous=0 ; Whether to mute the TX when incoming frames have no timestamp mutenotimestamps=0 ; This offset is added to the TIST, and the sum defines the ; TX time of the transmission frame. It can by changed at runtime ; through the remote control. offset=0.002 ; The way the timestamps are interpreted in ODR-DabMod up to v1.1.0 was not ; specified, and you should not assume that two different versions will ; transmit synchronously given the same settings. Always run SFNs with ; identical versions! ; Furthermore, when combining ODR-DabMod with third-party modulators, always ; measure! [tii] ; If these options are set, TII transmission is enabled. ; DAB modes I and II are supported, and must be set explicitly in ; this file. Reading DAB mode from ETI is not supported. enable=0 ; comb is also known as sub-identifier. comb=1 ; pattern is also known as main-identifier. If you run several transmitters ; in SFN, it is better to use the same pattern for all, and vary the comb. ; Otherwise identification of the transmitters may be more difficult. pattern=11 ; There are two variants of TII being used. The old variant that uses the wrong ; phase on the second carrier in each carrier pairs and is therefore not ; conforming to the specification. Modern analysers can decode both variants, ; while others, like the Philips DAB752 and the VAD v2 monitor are known to ; decode only the old non-conforming variant. old_variant=0