pabr / leansdr Goto Github PK
View Code? Open in Web Editor NEWLightweight, portable software-defined radio
License: GNU General Public License v3.0
Lightweight, portable software-defined radio
License: GNU General Public License v3.0
could you please tell how to run the gui of leandvb
When I issue the command, "leandvd --help", I get the usage as expected, but at the bottom is an error which I do not expect to display:
** Error while processing '--help'
I feel that both "-h" and "--help" should be treated identically.
When I compile leandvb, I get these notifications:
libiio not found. Will not build leaniio{rx,tx}.
X11 not found. Will not compile GUI.
How do I resolve these? (Ubuntu 19.04)
I saw that the VBER has been implemented; I thought it would be useful for DVB to add other RF measures such as:
inspired by this product http://www.decontis.com/components/sambuddy-rf/
I would add sambuddy-rf features as "desiderata" or "todo" in the roadmap of leansdr
I am trying to build a DTV receiver using a B200 Ettus receiver , the main problem to me was to find a digital decoder but finally dropped into leandvb. I did some test using the decoder as an application and apparently it was working but was not exactly what i was looking for.
I decided then to use the source as add on to mine adding the source files to my application changing very few to start it as a thread and using an unnamed pipe to transfer data.Problems? All easy until start testing.
leandvb returns from the scheduler after having done very few steps.
The following is a trace of the activity (leandvb runnables) when i start to send data:
Runnable: 0 stdin
Runnable: 1 scaler
Runnable: 2 spectrum
Runnable: 3 TS packets
Runnable: 4 rate_estimator
Runnable: 5 S2 frame receiver
Runnable: 6 S2 deinterleaver
Runnable: 7 S2 fecdec io
Runnable: 8 S2 deframer
sch stopped---------------------------stop and start closing
Runnable x shutdown: 0 stdin
Runnable x shutdown: 1 scaler
Runnable x shutdown: 2 spectrum
Runnable x shutdown: 3 TS packets
Runnable x shutdown: 4 rate_estimator
Runnable x shutdown: 5 S2 frame receiver
Runnable x shutdown: 6 S2 deinterleaver
Runnable x shutdown: 7 S2 fecdec io
Runnable x shutdown: 8 S2 deframer
The code is very hermetic and i was not able to go any further ..
As help the following is the used configuration:
config()
: verbose(false),
debug(true),
debug2(true),
highspeed(false),
input_format(INPUT_F32),
float_scale(1.0),
loop_input(false),
input_pipe(0),
input_buffer(0),
buf_factor(4),
Fs(2.4e6),
Fderot(0),
anf(0),
cnr(false),
decim(0),
fd_pp(-1),
fd_gse(-1),
fd_iqsymbols(-1),
awgn(0),
Fm(2e6),
standard(DVB_S2),
constellation(cstln_base::QPSK),
strongpls(false),
modcods(0xffffffff),
framesizes(0x03),
fec(FEC12),
Ftune(0),
allow_drift(false),
freq_tol(0.25),
sr_tol(100e-6),
fastlock(true),
fastdrift(false),
viterbi(true),
hard_metric(false),
ldpc_bf(10),
ldpc_helper("ldpc_tool"),
nhelpers(4),
resample(false),
resample_rej(10),
sampler(config::SAMP_RRC),
rrc_steps(0),
rrc_rej(10),
rolloff(0.35),
hdlc(false),
packetized(false),
gui(false),
duration(60),
linger(false),
fd_info(-1),
Finfo(5),
fd_const(-1),
fd_spectrum(-1),
json(false) {
Any hints will be very appreciated.
Thanks in advance,nando
Hi again,
I am trying to provide a live input from an USRP device to leandvb input. Basically I am trying to achieve something like:
rtl_sdr ... - | ./leandvb --gui ...
For starters I was thinking to redirect the USRP's outptu to an udp port and then, using nc -u ..
to provide this as input for leandvb, sadly with no success.
Wanted to ask you if it is possible for leandvb to get the input data from a local udp port or, if I'm way off the track, if you may have an advice on how can I feed live data from USRP to leandvb.
I read on http://www.pabr.org/radio/leandvb/leandvb.en.html that: " Instead, third-party applications can spawn a leandvb process, inject I/Q samples into its standard input, ..." but I am not sure how to achieve this.
Thank you very much
Hi,
I am trying to use the leandvb as an offline DVB-S2 receiver using an I/Q file as input.
The file was generated using the https://github.com/drmpeg/gr-dvbs transmitter.
The command used to run leandvb is the following:
./leandvb --f32 -f 2e6 --sr 500e3 --cr 9/10 --gui --fd-info 2 --anf 1 --standard DVB-S2 --const 16APSK --sampler rrc < recorded_data_source.iq > capture.ts
But I get no output written into capture.ts. Here are some screenshots:
The preprocessed I/Q looks fine but the constellation does not.
I can not upload the recorded_data_source.iq as it is has a large size (~1.9GB).
The overall idea would be to use 2 USRPs (tx <-> rx) to transmit a .ts file. I have the chain available but when I redirect the USRP's source to a file then pass it to leandvb it gets even worse:
Any help would be highly appreciated. Please let me know if further info in needed from my side. Thank you very much
Following http://www.pabr.org/radio/leandvb/leandvb.en.html#install building of ldpc fails under Ubuntu 20.04.
$ uname -a
Linux E535ubuntu 5.4.0-52-generic #57-Ubuntu SMP Thu Oct 15 10:57:00 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
$ LC_ALL=C make CXX=g++ ldpc_tool
g++ -std=c++11 -W -Wall -Ofast -fno-exceptions -fno-rtti tables_handler.cc -c -o tables_handler.o
g++ -std=c++11 -W -Wall -Ofast -fno-exceptions -fno-rtti itls_handler.cc -c -o itls_handler.o
g++ -std=c++11 -W -Wall -Ofast -fno-exceptions -fno-rtti mods_handler.cc -c -o mods_handler.o
g++ -std=c++11 -W -Wall -Ofast -fno-exceptions -fno-rtti ldpc_tool.cc tables_handler.o itls_handler.o mods_handler.o -o ldpc_tool
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 21600>::hardN(signed char*, std::complex<float>*)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE5hardNEPaPS2_[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE5hardNEPaPS2_]+0xe): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE5hardNEPaPS2_[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE5hardNEPaPS2_]+0x28): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 21600>::mapN(std::complex<float>*, signed char*)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE4mapNEPS2_Pa[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE4mapNEPS2_Pa]+0x1e): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_acw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE4mapNEPS2_Pa[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE4mapNEPS2_Pa]+0x61): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_acw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 21600>::hard(signed char*, std::complex<float>)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE4hardEPaS2_[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE4hardEPaS2_]+0x1a): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE4hardEPaS2_[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE4hardEPaS2_]+0x22): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 21600>::map(signed char*)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE3mapEPa[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE3mapEPa]+0x25): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_acw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE3mapEPa[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE3mapEPa]+0x2d): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_acw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 10800>::hardN(signed char*, std::complex<float>*)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE5hardNEPaPS2_[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE5hardNEPaPS2_]+0xe): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE5hardNEPaPS2_[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE5hardNEPaPS2_]+0x28): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 10800>::mapN(std::complex<float>*, signed char*)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE4mapNEPS2_Pa[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE4mapNEPS2_Pa]+0x1e): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_acw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE4mapNEPS2_Pa[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE4mapNEPS2_Pa]+0x61): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_acw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 10800>::hard(signed char*, std::complex<float>)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE4hardEPaS2_[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE4hardEPaS2_]+0x1a): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE4hardEPaS2_[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE4hardEPaS2_]+0x22): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 10800>::map(signed char*)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE3mapEPa[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE3mapEPa]+0x25): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_acw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE3mapEPa[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE3mapEPa]+0x2d): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_acw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 5400>::hardN(signed char*, std::complex<float>*)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE5hardNEPaPS2_[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE5hardNEPaPS2_]+0xe): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE5hardNEPaPS2_[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE5hardNEPaPS2_]+0x28): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 5400>::mapN(std::complex<float>*, signed char*)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE4mapNEPS2_Pa[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE4mapNEPS2_Pa]+0x1e): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_acw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE4mapNEPS2_Pa[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE4mapNEPS2_Pa]+0x61): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_acw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 5400>::hard(signed char*, std::complex<float>)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE4hardEPaS2_[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE4hardEPaS2_]+0x1a): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE4hardEPaS2_[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE4hardEPaS2_]+0x22): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 5400>::map(signed char*)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE3mapEPa[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE3mapEPa]+0x25): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_acw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE3mapEPa[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE3mapEPa]+0x2d): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_acw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 10800>::softN(signed char*, std::complex<float>*, float)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE5softNEPaPS2_f[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE5softNEPaPS2_f]+0x9): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE5softNEPaPS2_f[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi10800EE5softNEPaPS2_f]+0x64): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 5400>::softN(signed char*, std::complex<float>*, float)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE5softNEPaPS2_f[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE5softNEPaPS2_f]+0x9): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE5softNEPaPS2_f[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi5400EE5softNEPaPS2_f]+0x64): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.o: in function `Modulation<PhaseShiftKeying<8, std::complex<float>, signed char>, 21600>::softN(signed char*, std::complex<float>*, float)':
mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE5softNEPaPS2_f[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE5softNEPaPS2_f]+0x9): undefined reference to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw'
/usr/bin/ld: mods_handler.o:mods_handler.cc:(.text._ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE5softNEPaPS2_f[_ZN10ModulationI16PhaseShiftKeyingILi8ESt7complexIfEaELi21600EE5softNEPaPS2_f]+0x64): more undefined references to `PhaseShiftKeying<8, std::complex<float>, signed char>::rot_cw' follow
collect2: error: ld returned 1 exit status
make: *** [Makefile:18: ldpc_tool] Error 1
I found a solution at https://github.com/Blockstream/satellite/blob/master/doc/sdr.md but this is not repo.
Hi,
My LimeSDR and USRP1 both can output unsigned/signed 16bit ints as a file format (which is obviously half the space of a complex float). Would it be possible to add support to read (u)int16_t files to save the time & disk space of having to convert the files to complex floats? I had a quick look and will attempt to add it myself, but it appears not to be as trivial as I was hoping!
Thanks,
Matt
Hi @pabr ,
I'm trying to benchmark the gr-dvbs2rx performance and compare it to leandvb based on your work
branch. For example, I'm using the command below for one of the IQ files I have:
leandvb --standard DVB-S2 --nhelpers 6 --ldpc-helper /usr/local/bin/ldpc_tool --sampler rrc --rrc-rej 30 --u8 --modcods 32 -f 2000000 --sr 1000000 --roll-off 0.2 --framesizes 1 < qpsk35.iq > /dev/null -d -v
The command works OK and demodulates the DVB-S2 signal. The problem is that leandvb
hangs in the end instead of exiting once the input IQ file reaches EOF. I have realized the problem only occurs with --nhelpers
greater than one, so I suspect it could be hanging in this loop.
Any hints? Is there a way to prevent this via command-line options? I would still like to run with more than one helper to put leandvb in a fast configuration for a fair comparison with gr-dvbs2rx.
Regards
I've tried adding -I/opt/X11/include, as well as exporting to $PATH and env CPPFLAG options but these don't work. Is there any chance someone could give me some more options to edit the makefile for OSX/mac?
Many thanks in advance, Chris
Chris-MacBookAir:apps chrisbridges$ make
g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DGUI leandvb.cc -lX11 -o leandvb || \
g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable leandvb.cc -o leandvb
In file included from leandvb.cc:17:
../leansdr/gui.h:16:10: fatal error: 'X11/X.h' file not found
#include <X11/X.h>
^
1 error generated.
In file included from leandvb.cc:14:
../leansdr/sdr.h:61:26: error: variable length array of non-POD element type
'complex<float>'
complex<float> data[fft.n];
^
../leansdr/sdr.h:52:4: note: in instantiation of member function
'leansdr::auto_notch<float>::detect' requested here
detect();
^
../leansdr/sdr.h:33:5: note: in instantiation of member function
'leansdr::auto_notch<float>::run' requested here
auto_notch(scheduler *sch, pipebuf< complex<T> > &_in,
^
leandvb.cc:265:11: note: in instantiation of member function
'leansdr::auto_notch<float>::auto_notch' requested here
new auto_notch<f32>(&sch, *p_preprocessed, *p_autonotched,
^
In file included from leandvb.cc:14:
../leansdr/sdr.h:1198:22: error: variable length array of non-POD element type
'complex<float>'
complex<T> data[fft.n];
^
../leansdr/sdr.h:1187:4: note: in instantiation of member function
'leansdr::cnr_fft<float>::do_cnr' requested here
do_cnr();
^
../leansdr/sdr.h:1166:5: note: in instantiation of member function
'leansdr::cnr_fft<float>::run' requested here
cnr_fft(scheduler *sch, pipebuf< complex<T> > &_in, pipebuf<float> &_out,
^
leandvb.cc:292:17: note: in instantiation of member function
'leansdr::cnr_fft<float>::cnr_fft' requested here
r_cnr = new cnr_fft<f32>(&sch, *p_preprocessed, p_cnr, cfg.Fm/cfg.Fs);
^
2 errors generated.
This first output has inconsistent column tabbing:
pi@raspberrypi:/usr/local/bin $ leandvb -h
Usage: leandvb [options] < IQ > TS
Demodulate DVB-S I/Q on stdin, output MPEG packets on stdout
Input options:
--u8 Input format is 8-bit unsigned (rtl_sdr, default)
--s16 Input format is 16-bit signed (plutosdr)
--f32 Input format is 32-bit float (gqrx)
-f HZ Input sample rate (default: 2.4e6)
--loop Repeat (stdin must be a file)
--inbuf INT Additional input buffering (samples)
Preprocessing options:
--anf INT Number of birdies to remove (default: 1)
--derotate HZ For use with --fd-pp, otherwise use --tune
--resample Resample baseband (CPU-intensive)
--resample-rej FLOAT Aliasing rejection (default: 10)
--decim INT Decimate baseband (causes aliasing)
--cnr Measure CNR (requires samprate>3*symbrate)
DVB-S options:
--sr HZ Symbol rate (default: 2e6)
--tune HZ Bias frequency for demodulation
--drift Track frequency drift beyond safe limits
--standard S DVB-S (default), DVB-S2 (not implemented)
--const STRING QPSK (default),
BPSK .. 32APSK (DVB-S2),
64APSKe (DVB-S2X),
16QAM .. 256QAM (experimental)
--cr NUM/DEN Code rate 1/2 (default) .. 7/8 .. 9/10
--fastlock Synchronize more aggressively (CPU-intensive)
--sampler nearest, linear, rrc
--rrc-steps INT RRC interpolation factor
--rrc-rej FLOAT RRC filter rejection (defaut:10)
--roll-off FLOAT RRC roll-off (default: 0.35)
--viterbi Use Viterbi (CPU-intensive)
--hard-metric Use Hamming distances with Viterbi
Compatibility options:
--hdlc Expect HDLC frames instead of MPEG packets
--packetized Output 16-bit length prefix (default: as stream)
General options:
--buf-factor INT Buffer size factor (default:4)
--hq Maximize sensitivity
(Enables all CPU-intensive features)
--hs Maximize throughput (QPSK CR1/2 only)
(Disables all preprocessing)
UI options:
-h Display this help message and exit
-v Output debugging info at startup and exit
-d Output debugging info during operation
--version Display version and exit
--fd-pp FDNUM Dump preprocessed IQ data to file descriptor
--fd-info FDNUM Output demodulator status to file descriptor
--fd-const FDNUM Output constellation and symbols to file descr
--fd-spectrum FDNUM Output spectrum to file descr
--json Use JSON syntax
--gui Show constellation and spectrum (X11)
--duration FLOAT Width of timeline plot (s, default 60)
--linger Keep GUI running after EOF
Testing options:
--awgn FLOAT Add white gaussian noise stddev (slow)
should look like this output:
pi@raspberrypi:/usr/local/bin $ leandvb -h
Usage: leandvb [options] < IQ > TS
Demodulate DVB-S I/Q on stdin, output MPEG packets on stdout
Input options:
--u8 Input format is 8-bit unsigned (rtl_sdr, default)
--s16 Input format is 16-bit signed (plutosdr)
--f32 Input format is 32-bit float (gqrx)
-f HZ Input sample rate (default: 2.4e6)
--loop Repeat (stdin must be a file)
--inbuf INT Additional input buffering (samples)
Preprocessing options:
--anf INT Number of birdies to remove (default: 1)
--derotate HZ For use with --fd-pp, otherwise use --tune
--resample Resample baseband (CPU-intensive)
--resample-rej FLOAT Aliasing rejection (default: 10)
--decim INT Decimate baseband (causes aliasing)
--cnr Measure CNR (requires samprate>3*symbrate)
DVB-S options:
--sr HZ Symbol rate (default: 2e6)
--tune HZ Bias frequency for demodulation
--drift Track frequency drift beyond safe limits
--standard S DVB-S (default), DVB-S2 (not implemented)
--const STRING QPSK (default),
BPSK .. 32APSK (DVB-S2),
64APSKe (DVB-S2X),
16QAM .. 256QAM (experimental)
--cr NUM/DEN Code rate 1/2 (default) .. 7/8 .. 9/10
--fastlock Synchronize more aggressively (CPU-intensive)
--sampler nearest, linear, rrc
--rrc-steps INT RRC interpolation factor
--rrc-rej FLOAT RRC filter rejection (defaut:10)
--roll-off FLOAT RRC roll-off (default: 0.35)
--viterbi Use Viterbi (CPU-intensive)
--hard-metric Use Hamming distances with Viterbi
Compatibility options:
--hdlc Expect HDLC frames instead of MPEG packets
--packetized Output 16-bit length prefix (default: as stream)
General options:
--buf-factor INT Buffer size factor (default:4)
--hq Maximize sensitivity
(Enables all CPU-intensive features)
--hs Maximize throughput (QPSK CR1/2 only)
(Disables all preprocessing)
UI options:
-h Display this help message and exit
-v Output debugging info at startup and exit
-d Output debugging info during operation
--version Display version and exit
--fd-pp FDNUM Dump preprocessed IQ data to file descriptor
--fd-info FDNUM Output demodulator status to file descriptor
--fd-const FDNUM Output constellation and symbols to file descr
--fd-spectrum FDNUM Output spectrum to file descr
--json Use JSON syntax
--gui Show constellation and spectrum (X11)
--duration FLOAT Width of timeline plot (s, default 60)
--linger Keep GUI running after EOF
Testing options:
--awgn FLOAT Add white gaussian noise stddev (slow)
It should look like this:
pi@raspberrypi:/usr/local/bin $ leandvb -h
Usage: leandvb [options] < IQ > TS
Demodulate DVB-S I/Q on stdin, output MPEG packets on stdout
Input options:
--u8 Input format is 8-bit unsigned (rtl_sdr, default)
--s16 Input format is 16-bit signed (plutosdr)
--f32 Input format is 32-bit float (gqrx)
-f HZ Input sample rate (default: 2.4e6)
--loop Repeat (stdin must be a file)
--inbuf INT Additional input buffering (samples)
Preprocessing options:
--anf INT Number of birdies to remove (default: 1)
--derotate HZ For use with --fd-pp, otherwise use --tune
--resample Resample baseband (CPU-intensive)
--resample-rej FLOAT Aliasing rejection (default: 10)
--decim INT Decimate baseband (causes aliasing)
--cnr Measure CNR (requires samprate>3*symbrate)
DVB-S options:
--sr HZ Symbol rate (default: 2e6)
--tune HZ Bias frequency for demodulation
--drift Track frequency drift beyond safe limits
--standard S DVB-S (default), DVB-S2 (not implemented)
--const STRING QPSK (default),
BPSK .. 32APSK (DVB-S2),
64APSKe (DVB-S2X),
16QAM .. 256QAM (experimental)
--cr NUM/DEN Code rate 1/2 (default) .. 7/8 .. 9/10
--fastlock Synchronize more aggressively (CPU-intensive)
--sampler nearest, linear, rrc
--rrc-steps INT RRC interpolation factor
--rrc-rej FLOAT RRC filter rejection (defaut:10)
--roll-off FLOAT RRC roll-off (default: 0.35)
--viterbi Use Viterbi (CPU-intensive)
--hard-metric Use Hamming distances with Viterbi
Compatibility options:
--hdlc Expect HDLC frames instead of MPEG packets
--packetized Output 16-bit length prefix (default: as stream)
General options:
--buf-factor INT Buffer size factor (default:4)
--hq Maximize sensitivity
(Enables all CPU-intensive features)
--hs Maximize throughput (QPSK CR1/2 only)
(Disables all preprocessing)
UI options:
-h Display this help message and exit
-v Output debugging info at startup and exit
-d Output debugging info during operation
--version Display version and exit
--fd-pp FDNUM Dump preprocessed IQ data to file descriptor
--fd-info FDNUM Output demodulator status to file descriptor
--fd-const FDNUM Output constellation and symbols to file descr
--fd-spectrum FDNUM Output spectrum to file descr
--json Use JSON syntax
--gui Show constellation and spectrum (X11)
--duration FLOAT Width of timeline plot (s, default 60)
--linger Keep GUI running after EOF
Testing options:
--awgn FLOAT Add white gaussian noise stddev (slow)
Hello,
Is it possible to direct the TS signal to a UDP address?
Example of UDP operation:
https://github.com/BritishAmateurTelevisionClub/longmynd
Thank you,
Stephane.
I read on http://www.pabr.org/radio/leandvb/leandvb.en.html that leandvb works with LimeSDR. With RTL-SDR you can operate rtl_sdr and leandvb as a pipe. Which tool can you use with LimeSDR and leandvb as a pipe?
Hello, I am trying to transmit an MPEG-TS with gr-dvbs2 as the transmitter and an rtl-sdr + leandvb as the receiver. I get an almost perfect constellation diagram. The MER is approx. 18 dB. But leandvb does not generate a transport stream. Have you tested leandvb yourself with gr-dvbs2tx? Do leandvb_tx and leandvb_rx work together? That doesn't work for me either.
Best regards.
First of all, sorry for asking this question in the issues.
Broadcast systems use FEC as error protection. However, if it is important that the data is processed without any error after receipt, CRC error protection should also be used, with which bundle errors are identified with a high degree of probability. As far as I know, there is also CRC error protection in DVB-S2. Does lenadvb support CRC for DVB-S2 reception?
Dears, is it possible for receive dvbs2 from usrp b210?
best regards
Deligeer
Hi there,
Just a small question, is it possible to output the bb frames directly? What I want to do is to provide a GSE instead of .TS as input and at the output I would like to get the plain bb frames.
Something like:
./leandvb ..... < capture.iq > out_bb_frame
So basically bypass all the MPEG related processing.
Thank you
when i run make leandvb-snr . it run .... but after half hour i got this errer :
== S2_LHBP_32APSK_9/10 ==
2 18 --standard DVB-S2 --pilots --modcod 28 --standard DVB-S2 --sampler rrc --ldpc-helper ./ldpc_tool
../src/apps/leantsgen -c 20000 | ../src/apps/leandvbtx -f 2 --power 18 --agc --standard DVB-S2 --pilots --modcod 28 | ../src/apps/leanchansim --awgn 0 --deterministic | ../src/apps/leandvb --f32 --float-scale .17803893913754448594 -f 2000000 --sr 1000000 --anf 0 --gui --fd-info 2 --standard DVB-S2 --sampler rrc --ldpc-helper ./ldpc_tool 2>&1 > /dev/null
git:67b124f other 2 18.00 0 0 0 0 0
2 17 --standard DVB-S2 --pilots --modcod 28 --standard DVB-S2 --sampler rrc --ldpc-helper ./ldpc_tool
../src/apps/leantsgen -c 20000 | ../src/apps/leandvbtx -f 2 --power 17 --agc --standard DVB-S2 --pilots --modcod 28 | ../src/apps/leanchansim --awgn 0 --deterministic | ../src/apps/leandvb --f32 --float-scale .19976297529666900720 -f 2000000 --sr 1000000 --anf 0 --gui --fd-info 2 --standard DVB-S2 --sampler rrc --ldpc-helper ./ldpc_tool 2>&1 > /dev/null
Results written to leandvb_bench_results.txt.
gnuplot -e 'load "leandvb_bench_S.gnuplot"; pause -1'
"leandvb_bench_S.gnuplot", line 42: warning: Skipping data file with no valid points
"leandvb_bench_S.gnuplot", line 42: warning: Skipping data file with no valid points
"leandvb_bench_S.gnuplot", line 42: warning: Skipping data file with no valid points
"leandvb_bench_S.gnuplot", line 42: warning: Skipping data file with no valid points
set term qt size 2048, 1024
^
"leandvb_bench_S.gnuplot", line 44: unknown or ambiguous terminal type; type just 'set terminal' for a list
Makefile:12: recipe for target 'leandvb-snr' failed
make: *** [leandvb-snr] Error 1
mwk@mwk-desktop:~/leansdr/test$
Hello, First of all I would like to thank you for releasing this nice piece of software, it has been really helpful in my recent tinkering.
I would like to implement a DVB-S2 to DVB-C transmodulator in software. I have been looking around your code, and at both DVB standards, and from what I can see, the signal chain is the same up to the outer interleaver block. In DVB-C there is a differential coding on the two MSBs of the symbols, to make the constellation rotation-invariant.
Since you have already implemented the QAM16, QAM64 and QAM256 constellation LUTs, it would only be a matter of implementing the previously mentioned differential coding, am I right? Can you give me some help on this?
Thank you,
João
please help .
when i try to run command for live view :
rtl_sdr -f 742450000 -s 2400000 -g 10 - | ./leandvb --gui | vlc -
rtl_sdr is run and lean is run ok BUT VLC NOT RUN ! please help
Hi Pabr,
I'm Tx'ing using a USRP QPSK 1/2 rate signal at 1M symbol rate - and Rx'ing using a TXCO RTL dongle at 2M sample rate. Followed all advise on your pair pages but I'm in a forever loop in the auto notch filter - any ideas? 73s Chris
Commands:
rtl_sdr -g 40 -f 1.28G -s 2000000 rec.fifo
./leandvb --gui -v -d -f 2000e3 --sr 1000e3 --cr 1/2 --derotate -5000 --anf 2 < ~/rec.fifo > - | mplayer -cache 128 -
Output:
auto_notch: slot 0 new peak 4003 -> 101
auto_notch: slot 1 new peak 3962 -> 3713
auto_notch: slot 0 new peak 101 -> 129
auto_notch: slot 1 new peak 3713 -> 206
auto_notch: slot 0 new peak 129 -> 3696
auto_notch: slot 1 new peak 206 -> 3718
auto_notch: slot 0 new peak 3696 -> 3683
auto_notch: slot 1 new peak 3718 -> 3730
auto_notch: slot 0 new peak 3683 -> 3813
auto_notch: slot 1 new peak 3730 -> 3416
Hi
I was installing leansdr and I included the binaries for libiio and the make step went through.
But when I do make embedded I get the following error.
$ make embedded
g++ -O3 -I.. -DVERSION="leansdr-1.2.0-27-ge6416aa" -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -Ilibiio leaniiorx.cc -lfftw3f -lpthread -Llibiio -L. -liio -lpthread -lxml2 -lz -llzma -static -o leaniiorx.x86_64
/usr/bin/ld: cannot find -liio
collect2: error: ld returned 1 exit status
Makefile:83: recipe for target 'leaniiorx.x86_64' failed
make: *** [leaniiorx.x86_64] Error 1
Output of
$ ld -liio --verbose
/* Script for -z combreloc: combine and sort reloc sections /
/ Copyright (C) 2014-2015 Free Software Foundation, Inc.
Copying and distribution of this script, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. /
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
ENTRY(_start)
SEARCH_DIR("=/usr/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib");
SECTIONS
{
/ Read-only sections, merged into text segment: /
PROVIDE (_executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS;
.interp : { *(.interp) }
.note.gnu.build-id : { *(.note.gnu.build-id) }
.hash : { *(.hash) }
.gnu.hash : { (.gnu.hash) }
.dynsym : { (.dynsym) }
.dynstr : { (.dynstr) }
.gnu.version : { (.gnu.version) }
.gnu.version_d : { (.gnu.version_d) }
.gnu.version_r : { (.gnu.version_r) }
.rela.dyn :
{
(.rela.init)
(.rela.text .rela.text. .rela.gnu.linkonce.t.)
(.rela.fini)
(.rela.rodata .rela.rodata. .rela.gnu.linkonce.r.)
(.rela.data .rela.data. .rela.gnu.linkonce.d.)
(.rela.tdata .rela.tdata. .rela.gnu.linkonce.td.)
(.rela.tbss .rela.tbss. .rela.gnu.linkonce.tb.)
(.rela.ctors)
(.rela.dtors)
(.rela.got)
(.rela.bss .rela.bss. .rela.gnu.linkonce.b.)
(.rela.ldata .rela.ldata. .rela.gnu.linkonce.l.)
(.rela.lbss .rela.lbss. .rela.gnu.linkonce.lb.)
(.rela.lrodata .rela.lrodata. .rela.gnu.linkonce.lr.)
(.rela.ifunc)
}
.rela.plt :
{
(.rela.plt)
PROVIDE_HIDDEN (__rela_iplt_start = .);
(.rela.iplt)
PROVIDE_HIDDEN (__rela_iplt_end = .);
}
.init :
{
KEEP ((SORT_NONE(.init)))
}
.plt : { (.plt) (.iplt) }
.plt.got : { (.plt.got) }
.plt.bnd : { (.plt.bnd) }
.text :
{
(.text.unlikely .text._unlikely .text.unlikely.)
(.text.exit .text.exit.)
(.text.startup .text.startup.)
(.text.hot .text.hot.)
(.text .stub .text. .gnu.linkonce.t.)
/ .gnu.warning sections are handled specially by elf32.em. /
(.gnu.warning)
}
.fini :
{
KEEP ((SORT_NONE(.fini)))
}
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
.rodata : { (.rodata .rodata. .gnu.linkonce.r.) }
.rodata1 : { (.rodata1) }
.eh_frame_hdr : { (.eh_frame_hdr) (.eh_frame_entry .eh_frame_entry.) }
.eh_frame : ONLY_IF_RO { KEEP ((.eh_frame)) (.eh_frame.) }
.gcc_except_table : ONLY_IF_RO { (.gcc_except_table
.gcc_except_table.) }
.gnu_extab : ONLY_IF_RO { (.gnu_extab) }
/ These sections are generated by the Sun/Oracle C++ compiler. /
.exception_ranges : ONLY_IF_RO { (.exception_ranges
.exception_ranges) }
/ Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. /
. = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
/ Exception handling /
.eh_frame : ONLY_IF_RW { KEEP ((.eh_frame)) (.eh_frame.) }
.gnu_extab : ONLY_IF_RW { (.gnu_extab) }
.gcc_except_table : ONLY_IF_RW { (.gcc_except_table .gcc_except_table.) }
.exception_ranges : ONLY_IF_RW { (.exception_ranges .exception_ranges) }
/ Thread Local Storage sections /
.tdata : { (.tdata .tdata. .gnu.linkonce.td.) }
.tbss : { (.tbss .tbss. .gnu.linkonce.tb.) (.tcommon) }
.preinit_array :
{
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP ((.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);
}
.init_array :
{
PROVIDE_HIDDEN (__init_array_start = .);
KEEP ((SORT_BY_INIT_PRIORITY(.init_array.) SORT_BY_INIT_PRIORITY(.ctors.)))
KEEP ((.init_array EXCLUDE_FILE (crtbegin.o crtbegin?.o crtend.o crtend?.o ) .ctors))
PROVIDE_HIDDEN (__init_array_end = .);
}
.fini_array :
{
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP ((SORT_BY_INIT_PRIORITY(.fini_array.) SORT_BY_INIT_PRIORITY(.dtors.)))
KEEP ((.fini_array EXCLUDE_FILE (*crtbegin.o crtbegin?.o crtend.o crtend?.o ) .dtors))
PROVIDE_HIDDEN (__fini_array_end = .);
}
.ctors :
{
/ gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is
first. Because this is a wildcard, it
doesn't matter if the user does not
actually link against crtbegin.o; the
linker won't look for a file to match a
wildcard. The wildcard also means that it
doesn't matter which directory crtbegin.o
is in. /
KEEP (crtbegin.o(.ctors))
KEEP (crtbegin?.o(.ctors))
/ We don't want to include the .ctor section from
the crtend.o file until after the sorted ctors.
The .ctor section from the crtend file contains the
end of ctors marker and it must be last /
KEEP ((EXCLUDE_FILE (crtend.o crtend?.o ) .ctors))
KEEP ((SORT(.ctors.)))
KEEP ((.ctors))
}
.dtors :
{
KEEP (crtbegin.o(.dtors))
KEEP (crtbegin?.o(.dtors))
KEEP ((EXCLUDE_FILE (crtend.o crtend?.o ) .dtors))
KEEP ((SORT(.dtors.)))
KEEP ((.dtors))
}
.jcr : { KEEP ((.jcr)) }
.data.rel.ro : { (.data.rel.ro.local .gnu.linkonce.d.rel.ro.local.) (.data.rel.ro .data.rel.ro. .gnu.linkonce.d.rel.ro.) }
.dynamic : { *(.dynamic) }
.got : { *(.got) *(.igot) }
. = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .);
.got.plt : { *(.got.plt) (.igot.plt) }
.data :
{
(.data .data. .gnu.linkonce.d.)
SORT(CONSTRUCTORS)
}
.data1 : { (.data1) }
_edata = .; PROVIDE (edata = .);
. = .;
__bss_start = .;
.bss :
{
(.dynbss)
(.bss .bss. .gnu.linkonce.b.)
(COMMON)
/ Align here to ensure that the .bss section occupies space up to
_end. Align after .bss to ensure correct alignment even if the
.bss section disappears because there are no input sections.
FIXME: Why do we need it? When there is no .bss section, we don't
pad the .data section. /
. = ALIGN(. != 0 ? 64 / 8 : 1);
}
.lbss :
{
(.dynlbss)
(.lbss .lbss. .gnu.linkonce.lb.)
(LARGE_COMMON)
}
. = ALIGN(64 / 8);
. = SEGMENT_START("ldata-segment", .);
.lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
{
(.lrodata .lrodata. .gnu.linkonce.lr.)
}
.ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
{
(.ldata .ldata. .gnu.linkonce.l.)
. = ALIGN(. != 0 ? 64 / 8 : 1);
}
. = ALIGN(64 / 8);
_end = .; PROVIDE (end = .);
. = DATA_SEGMENT_END (.);
/ Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { (.comment) }
/ DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. /
/ DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { (.line) }
/ GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { (.debug_sfnames) }
/ DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { (.debug_pubnames) }
/ DWARF 2 */
.debug_info 0 : { (.debug_info .gnu.linkonce.wi.) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { (.debug_line .debug_line. .debug_line_end ) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { (.debug_macinfo) }
/ SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { (.debug_varnames) }
/ DWARF 3 */
.debug_pubtypes 0 : { *(.debug_pubtypes) }
.debug_ranges 0 : { (.debug_ranges) }
/ DWARF Extension. */
.debug_macro 0 : { (.debug_macro) }
.gnu.attributes 0 : { KEEP ((.gnu.attributes)) }
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto) }
}
==================================================
attempt to open //usr/local/lib/x86_64-linux-gnu/libiio.so failed
attempt to open //usr/local/lib/x86_64-linux-gnu/libiio.a failed
attempt to open //lib/x86_64-linux-gnu/libiio.so failed
attempt to open //lib/x86_64-linux-gnu/libiio.a failed
attempt to open //usr/lib/x86_64-linux-gnu/libiio.so succeeded
-liio (//usr/lib/x86_64-linux-gnu/libiio.so)
librt.so.1 needed by //usr/lib/x86_64-linux-gnu/libiio.so
found librt.so.1 at //lib/x86_64-linux-gnu/librt.so.1
libusb-1.0.so.0 needed by //usr/lib/x86_64-linux-gnu/libiio.so
found libusb-1.0.so.0 at //lib/x86_64-linux-gnu/libusb-1.0.so.0
libxml2.so.2 needed by //usr/lib/x86_64-linux-gnu/libiio.so
found libxml2.so.2 at //usr/lib/x86_64-linux-gnu/libxml2.so.2
libpthread.so.0 needed by //usr/lib/x86_64-linux-gnu/libiio.so
found libpthread.so.0 at //lib/x86_64-linux-gnu/libpthread.so.0
libc.so.6 needed by //usr/lib/x86_64-linux-gnu/libiio.so
found libc.so.6 at //lib/x86_64-linux-gnu/libc.so.6
libudev.so.1 needed by //lib/x86_64-linux-gnu/libusb-1.0.so.0
found libudev.so.1 at //lib/x86_64-linux-gnu/libudev.so.1
libdl.so.2 needed by //usr/lib/x86_64-linux-gnu/libxml2.so.2
found libdl.so.2 at //lib/x86_64-linux-gnu/libdl.so.2
libicuuc.so.55 needed by //usr/lib/x86_64-linux-gnu/libxml2.so.2
found libicuuc.so.55 at //usr/lib/x86_64-linux-gnu/libicuuc.so.55
libz.so.1 needed by //usr/lib/x86_64-linux-gnu/libxml2.so.2
found libz.so.1 at //lib/x86_64-linux-gnu/libz.so.1
liblzma.so.5 needed by //usr/lib/x86_64-linux-gnu/libxml2.so.2
found liblzma.so.5 at //lib/x86_64-linux-gnu/liblzma.so.5
libm.so.6 needed by //usr/lib/x86_64-linux-gnu/libxml2.so.2
found libm.so.6 at //lib/x86_64-linux-gnu/libm.so.6
ld-linux-x86-64.so.2 needed by //lib/x86_64-linux-gnu/libpthread.so.0
found ld-linux-x86-64.so.2 at //lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
libicudata.so.55 needed by //usr/lib/x86_64-linux-gnu/libicuuc.so.55
found libicudata.so.55 at //usr/lib/x86_64-linux-gnu/libicudata.so.55
libstdc++.so.6 needed by //usr/lib/x86_64-linux-gnu/libicuuc.so.55
found libstdc++.so.6 at //usr/lib/x86_64-linux-gnu/libstdc++.so.6
libgcc_s.so.1 needed by //usr/lib/x86_64-linux-gnu/libicuuc.so.55
found libgcc_s.so.1 at //lib/x86_64-linux-gnu/libgcc_s.so.1
ld: warning: cannot find entry symbol _start; not setting start address
Hello,
I have been trying to transmit DVB-S2 using leandvbtx, but I am running into some problems. I have narrowed it down to leandvbtx's DVB-S2 mode itself by doing some tests:
I have increased my pipe size, before I did it there were lost samples somewhere, but now there are none, the transmission is continuous.
Did you ever test leandvbtx DVB-S2 mode extensively? I can see an issue where it is reported that the tests do not run correctly, but even then, according to my results, software loopback works, even with white noise added. It stops working once I loop the signal back in the analog domain.
Thank you.
Please add some more info in the README about dependencies etc.
Your website is very helpful, but also misses some of this info.
Thx
Hello,
Thank you for your help last time.
Recently, I tried to do some test with leandvb by DekTec DTA-2115 DVB-S2 singnal generator.
Sometimes leandvb may stop processing IQ file and exit before read the end of IQ file.
When I used "--ldpc-helper ldpc_tool" to decode, it may cause problem.
./src/apps/leandvb --inbuf 512000000 --s16 -f 40e6 --sr 20e6 --gui --fd-info 2 --roll-off 0.2 --standard DVB-S2 --sampler rrc --rrc-rej 15 --fastdrift --fastlock --ldpc-helper ldpc_tool --nhelpers 6 -v -d -d < /data/IQREC-08-18-20-10h58m44s85_20M-5s-1f.iq > test.ts
The IQ file link is https://we.tl/t-05cciHMBFp
And ldpc_tool output
decoder failed at converging to a code word in 25 trials
Runtime summary is as follow:
.rawiq : 115M/ 19M 0 writable !, 532512 unread ( 395 3467 395 395 3467 532512 )
.stdin : 19M/201M 311249598 writable , 181950423 unread ( 181950423 )
.cnr : 0/ 0 4 writable , 0 unread ( 0 )
.spectrum : 0/ 0 4 writable , 0 unread ( )
.freq : 8/ 4 3 writable , 0 unread ( 0 0 )
.SS : 8/ 4 3 writable , 0 unread ( 0 0 )
.MER : 8/ 4 3 writable , 0 unread ( 0 0 )
.cstln : 189k/ 95k 437307 writable , 997 unread ( 997 101 )
.PLS cstln : 96k/ 96k 435942 writable , 314 unread ( 314 )
.frame lock : 158/ 158 2 writable , 0 unread ( 0 )
.VBER : 0/ 0 4 writable , 0 unread ( )
.lock : 0/ 0 8 writable , 0 unread ( 0 )
.locktime : 0/ 0 156 writable , 0 unread ( 0 )
.TS packets : 0/ 0 156 writable , 0 unread ( 0 0 )
.Bits processed : 0/ 0 156 writable , 0 unread ( 0 )
.Bits corrected : 0/ 0 156 writable , 0 unread ( 0 )
.VBER : 0/ 0 4 writable , 0 unread ( 0 )
.packet counter : 0/ 0 156 writable , 0 unread ( 0 )
.PL slots : 94k/ 95k 336 writable !, 1104 unread ( 1104 )
.BB frames : 0/ 0 4 writable , 0 unread ( 0 )
.FEC frames : 1024/1028 0 writable !, 4 unread ( 4 )
Total buffer memory: 2015908 KiB
When I stopped to decode, it can be run to end normally.
Runtime summary is as follow:
.rawiq : 1207M/201M 7375 writable , 118463 unread ( 354 1378 354 354 1378 118463 )
.stdin : 201M/201M 311249598 writable , 0 unread ( 0 )
.cnr : 0/ 0 4 writable , 0 unread ( 0 )
.spectrum : 0/ 5 3 writable , 0 unread ( )
.freq : 92/ 46 3 writable , 0 unread ( 0 0 )
.SS : 92/ 46 3 writable , 0 unread ( 0 0 )
.MER : 92/ 46 3 writable , 0 unread ( 0 0 )
.cstln : 2M/ 1M 43928 writable , 136 unread ( 136 8 )
.PLS cstln : 645k/646k 416924 writable , 900 unread ( 900 )
.frame lock : 1906/1906 1 writable , 0 unread ( 0 )
.VBER : 0/ 0 4 writable , 0 unread ( )
.lock : 2/ 2 6 writable , 0 unread ( 0 )
.locktime : 10k/ 10k 87 writable , 0 unread ( 0 )
.TS packets : 21k/ 10k 87 writable , 0 unread ( 0 0 )
.Bits processed : 6939/6939 34 writable , 0 unread ( 0 )
.Bits corrected : 6939/6939 34 writable , 0 unread ( 0 )
.VBER : 1509/1509 3 writable , 0 unread ( 0 )
.packet counter : 343/ 343 125 writable , 0 unread ( 0 )
.PL slots : 1M/ 1M 738 writable , 0 unread ( 0 )
.BB frames : 1367/1367 3 writable , 0 unread ( 0 )
.FEC frames : 6939/6939 2 writable , 0 unread ( 0 )
Total buffer memory: 2015686 KiB
Please help me to look into this together. Thanks a lot.
Hi
I ran leaniiorx, then got following error.
% ./leaniiorx -f 2395e6 --bw 2000e3 -v
Setting RF bandwidth 2000 kHz
** IIO: in_voltage_sampling_frequency failed with Unknown error -2
I'm using PlutoSDR v0.27 with libiio 0.15 on openSUSE leap 15 x86-64 machine.
% iio_info -s
Library version: 0.15 (git tag: 6ecff5d)
Compiled with backends: local xml ip usb serial
Available contexts:
0: Local devices [local:]
1: 0456:b673 (Analog Devices Inc. PlutoSDR (ADALM-PLUTO)), serial=104400b83991000910001f00040c6539e3 [usb:3.8.5]
probably easyer to use soapysdr to involve the use of a Limesdr
I use my LimeSDR mainly with AngelSDR, gqrx has some back end bug with oscom/gnuRadio
static
(and even then you will get warnings because of the prototypes that are not used -Wunused-function
)leansdr::cstln_base::names
(work branch)Basically you can only include the headers in a main but not as part of another library or plugin.
Please consider making it a first class library with associated .cpp
Edit: also exit
is unacceptable in a library. Please consider using exceptions instead.
Edit2: I realized that the whole thing pertains to the work branch only so you may have already planned to correct this.
Hello,
Recently,I tried to compile and install leanDVB and finally finish the functional loop tests.
This week I used leanDVB to process a IQ file sampled from a DVB-S2 standard tx card.
But I failed. I think the IQ file format may cause the problem.
CMD :
leandvb --s16 -f 2500000 --sr 1000000 --gui --fd-info 2 --standard DVB-S2 --sampler rrc < IQREC-08-12-20-10h17m40s384.iq > test0812_1.ts
The parameters of the DVB-S2 signal are listed below.
CCM 1Msps 8PSK 3/5 with pilot ShortFrame
The payload is a transport stream.
The IQ file looks well in cooledit, which sample rate is 2.5Msps. (16bits LSB)
The format of IQ file is complex short. I think the parameter of the IQ file is --s16.
There is the IQ file link. https://we.tl/t-Ak52TAHKwx
Many thanks.
probably not your concern
kc7noa@install:/Downloads/leansdr/src/apps> make/Downloads/leansdr/src/apps> sudo make install
libiio not found. Will not build leaniio{rx,tx}.
g++ -O3 -I.. -DVERSION="leansdr-1.2.0-87-g94e30b5" -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DLEANSDR_EXTENSIONS leandvbtx.cc -o leandvbtx
g++ -O3 -I.. -DVERSION="leansdr-1.2.0-87-g94e30b5" -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DLEANSDR_EXTENSIONS -DGUI leandvb.cc -lX11 -o leandvb
g++ -O3 -I.. -DVERSION="leansdr-1.2.0-87-g94e30b5" -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DLEANSDR_EXTENSIONS leansdrscan.cc -o leansdrscan
g++ -O3 -I.. -DVERSION="leansdr-1.2.0-87-g94e30b5" -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DLEANSDR_EXTENSIONS leansdrserv.cc -o leansdrserv
g++ -O3 -I.. -DVERSION="leansdr-1.2.0-87-g94e30b5" -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DLEANSDR_EXTENSIONS leantsgen.cc -o leantsgen
g++ -O3 -I.. -DVERSION="leansdr-1.2.0-87-g94e30b5" -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DLEANSDR_EXTENSIONS leansdrcat.cc -o leansdrcat
g++ -O3 -I.. -DVERSION="leansdr-1.2.0-87-g94e30b5" -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DLEANSDR_EXTENSIONS leanchansim.cc -o leanchansim
g++ -O3 -I.. -DVERSION="leansdr-1.2.0-87-g94e30b5" -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DLEANSDR_EXTENSIONS leanmlmrx.cc -lfftw3f -lpthread -o leanmlmrx
kc7noa@install:
[sudo] password for root:
libiio not found. Will not build leaniio{rx,tx}.
make: *** No rule to make target 'install'. Stop.
kc7noa@install:~/Downloads/leansdr/src/apps>
I get errors when attempting to compile , , odd.
g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable -DGUI leandvb.cc -lX11 -o leandvb ||
g++ -O3 -I.. -Wall -Wno-sign-compare -Wno-array-bounds -Wno-unused-variable leandvb.cc -o leandvb
/tmp/ccaWZX5A.o:(.rodata._ZTVN7leansdr21viterbi_dec_interfaceIhhiiEE[_ZTVN7leansdr21viterbi_dec_interfaceIhhiiEE]+0x10): undefined reference to leansdr::viterbi_dec_interface<unsigned char, unsigned char, int, int>::update(int*, int*)' /tmp/ccaWZX5A.o:(.rodata._ZTVN7leansdr21viterbi_dec_interfaceIhhiiEE[_ZTVN7leansdr21viterbi_dec_interfaceIhhiiEE]+0x18): undefined reference to
leansdr::viterbi_dec_interface<unsigned char, unsigned char, int, int>::update(unsigned char, int, int*)'
collect2: error: ld returned 1 exit status
/tmp/ccU7EsXK.o:(.rodata._ZTVN7leansdr21viterbi_dec_interfaceIhhiiEE[_ZTVN7leansdr21viterbi_dec_interfaceIhhiiEE]+0x10): undefined reference to leansdr::viterbi_dec_interface<unsigned char, unsigned char, int, int>::update(int*, int*)' /tmp/ccU7EsXK.o:(.rodata._ZTVN7leansdr21viterbi_dec_interfaceIhhiiEE[_ZTVN7leansdr21viterbi_dec_interfaceIhhiiEE]+0x18): undefined reference to
leansdr::viterbi_dec_interface<unsigned char, unsigned char, int, int>::update(unsigned char, int, int*)'
collect2: error: ld returned 1 exit status
Makefile:14: recipe for target 'leandvb' failed
make: *** [leandvb] Error 1
tim@linux-8m91:~/src/leansdr/src/apps> gcc --version
gcc (SUSE Linux) 4.8.5
Hello,
I am trying to demodulate a DVBS .iq file (generated in GNUradio from a TS file source and recorded with a USRP). Once I launch leandvb, it exits before the file is finished and it is not able to correctly find the SYNC byte in the TS stream.
I attach the output in the terminal and the GUI.
./leandvb --cr 1/2 --f32 -f 1e6 -d --sr 500e3 --gui < /home/myRecording.iq deconv[0]=0x00000000000003ba 7 taps / 10 bits Output: '_': TS packet received without errors '.': error-corrected TS packet '!': TS packet with remaining errors Locked !!!!(ed)!!!!derandomizer: resynchronizing !!!!(19)!!!!(8f)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(14)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(08)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Unlocked !!!!(72)!!!!!!!!!!!!!!!!Locked !!!!!!!!!!!!!!!!!!!!!!!!(54)!!!!(82)(1f)!!!!derandomizer: resynchronizing !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(0f)(22)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(31)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(ec)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(0d)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(a0)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(9b)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(a2)!!!!!!!!!!!!!!!!!!!!!!!!(bd)!!!!!!!!!!!!!!!!!!!!!!!!(51)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(92)!!!!!!!!!!!!!!!!!!!!!!!! .rawiq : 85M/ 14M 10403 writable , 3037 unread ( 989 3037 989 989 3037 93 ) .stdin : 14M/ 14M 675 writable , 0 unread ( 0 ) .cnr : 0/ 0 4 writable , 0 unread ( ) .spectrum : 0/ 14 2 writable , 0 unread ( ) .freq : 71/ 71 2 writable , 0 unread ( 0 ) .SS : 71/ 71 2 writable , 0 unread ( 0 ) .MER : 71/ 71 2 writable , 0 unread ( 0 ) .cstln : 110k/111k 12489 writable , 823 unread ( 823 ) .PLS cstln : 0/ 0 16384 writable , 0 unread ( ) .frame lock : 0/ 0 4 writable , 0 unread ( ) .VBER : 0/ 0 4 writable , 0 unread ( ) .lock : 0/ 4 4 writable , 0 unread ( ) .locktime : 0/4071 141 writable , 0 unread ( ) .TS packets : 0/ 0 156 writable , 0 unread ( 0 0 ) .Bits processed : 1015/1015 77 writable , 0 unread ( 0 ) .Bits corrected : 1015/1015 77 writable , 0 unread ( 0 ) .VBER : 0/ 126 2 writable , 0 unread ( ) .packet counter : 0/ 0 156 writable , 0 unread ( 0 ) .PSK soft-symbols : 7M/ 7M 3674 writable , 70 unread ( 70 ) .bytes : 891k/891k 868 writable , 184 unread ( 184 ) .mpegbytes : 828k/830k 204 writable !, 2244 unread ( 2244 ) .RS-enc packets : 4060/4060 0 writable !, 0 unread ( 0 ) .rand TS packets : 4060/4060 0 writable !, 0 unread ( 0 ) Total buffer memory: 770 KiB
Thank you in advance!
Hello! With the news that we are closer to having a Ham-TV transmitter back on the ISS in the (hopefully) near future, it is time for everyone to get familiar with how to decode these signals again.
Is there a known-good I/Q file available online that contains valid video signals from this transmitter when it was active in the past?
Thanks!
-Scott, K4KDR
Hello all,
Today I've tried to take my first steps into leandvb
. I was able to run it (using the work
branch) to decode a DVB-S2 signal that uses VCM, specifically with two multiplexed MODCOD streams that are associated to two distinct MPEG TS PIDs. Despited success on reception, I noticed there is a substantial jump in CPU usage when the two MODCODs are active. If, in contrast, I disable one MODCOD and leave only one active the CPU usage drops quite substantially.
I haven't had a chance to look at the implementation yet, but I suppose this is related to frame locking and particularly the different lengths of the PLFRAMEs of each MODCOD.
So, before delving into this, I wanted to ask:
I'm interested in contributing with a solution in case you envision one.
Also, related to this, is it possible to run leandvb
in DVB-S2 mode with an option to filter the specific MODCOD of interest? I see that the --const
and --cr
options are not used in DVB-S2 mode, but wanted to double check. It would be interesting in case it was possible to benefit from the lower CPU usage simply by selecting/filtering a single MODCOD to be received (and ignoring all other MODCODs on a VCM stream). Nevertheless, I am aware that if the problem is frame sync, ignoring a MODCOD may not help much.
Many thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.