Commit Graph

35 Commits

Author SHA1 Message Date
Andreas Eversberg
2c4d0ee687 SDR: Check if the required bandwidth can be handled by given sample rate 2017-10-22 19:23:09 +02:00
Andreas Eversberg
b32e0ab602 Implementation of RX level squelch (for A-Netz and B-Netz)
Use -S <dB> for setting RF level or use -S auto for auto level.

When squelch closes, audio is muted. If squelch is closed for some
seconds (depending on network), call is released. (RF loss condition)

The previous loss detection has been removed
2017-10-22 19:23:08 +02:00
Andreas Eversberg
e67c171035 SDR: Minor fixes in error condition handling 2017-10-22 19:23:05 +02:00
Andreas Eversberg
ba036de226 Add function to display measurements on screen
Use 'm' key to toggle display.
2017-10-12 19:46:30 +02:00
Andreas Eversberg
f469879ed0 SDR: Use filter to remove harmonics caused by downsampling/upsampling
This drastically increases the signal-noise-ratio and removes co-channel
interferences. It gains CPU usage, but only on SDR threads, not on the
main thread.
2017-09-24 15:59:24 +02:00
Andreas Eversberg
9205767f94 SDR: Display spectrum graph together with channel numbers and position 2017-09-02 15:41:11 +02:00
Andreas Eversberg
a52c89800c SDR: Split SDR config from main_mobile.c to sdr_config.c 2017-09-02 07:34:48 +02:00
Andreas Eversberg
05c516ca16 SDR: Fixed stack overflow by allocating memory instead of local buffers 2017-09-01 18:42:52 +02:00
Andreas Eversberg
743d147d16 SDR: Turn TX power off if requested by network
The power level is ramped smoothly within 1 ms up or down.

R2000, AMPS and C-Netz turn off power when voice channel is not i use.

C-Netz turns off power between OgK timeslots.
2017-09-01 18:42:46 +02:00
Andreas Eversberg
ea7cbb8675 SDR: Add option to enable TX timestamps on UHD devices (disabled by default) 2017-08-16 18:51:47 +02:00
Andreas Eversberg
42a87c1c2f SDR: Name SDR TX and RX threads 2017-08-16 18:51:46 +02:00
Andreas Eversberg
3afcac8342 SDR: Add option to swap RX and TX frequencies (for testing) 2017-08-10 17:42:54 +02:00
Andreas Eversberg
534411d660 New common FSK implementation, replaces all individual implementations 2017-08-09 17:27:13 +02:00
Andreas Eversberg
92ce6d4a42 SDR: Using threads for read and write when doing resampling 2017-08-08 12:53:02 +02:00
Andreas Eversberg
fda224c27f Fixing and improving SDR support (SoapySDR and UHD)
- Soapy SDR now works.
- Channels can be selected.
- Antennas can be listed and selected.
- Device args, tune args, stream args can be specified.
2017-07-15 12:45:19 +02:00
Andreas Eversberg
329463bb8c SDR: Add option to give channel number
Using SoapySDR server allows to run different networks on multi channel
SDR devices.
2017-06-10 13:08:25 +02:00
Andreas Eversberg
ca10048e5c Rename filter -> iir_filter (file name and instance name)
This is useful when using fir_filter in the future.
2017-05-15 21:46:32 +02:00
Andreas Eversberg
fbdb9ece01 SDR: Allow direct IQ TX and RX instead of fm modulating a list of channels
This is performed by reading and writing IQ data to "sample" pointer with
channel number set to 0.
2017-05-15 21:46:29 +02:00
Andreas Eversberg
65694f3b80 SDR: disable TX or RX by setting TX or RX frequency to 0
This way it is possible to use SDR simplex
2017-05-15 21:46:29 +02:00
Andreas Eversberg
9dda9e1efc SDR: Add option to set IF bandwidth. If not defined, sampling rate is used. 2017-05-15 21:46:27 +02:00
Andreas Eversberg
1445ca2fac SDR: Add option to send (previously recorded) IQ data instead of TX data 2017-05-15 21:46:26 +02:00
Andreas Eversberg
4201717f36 Rework on audio buffer management
Use function to get samples to be sent to fill audio buffers to a
level. This replaces the function that only shows how much data
is in the buffer.

This way the function itself can control how much data will be
sent.
2017-03-04 06:35:38 +01:00
Andreas Eversberg
2e1999b1ee Start streaming of sound/SDR just before main loop
This prevents buffer overflow during init/creation processes
2017-02-25 07:09:53 +01:00
Andreas Eversberg
438ce08add SoapySDR support
There is no time stamp handling. It is just TX'ing in advance and
synchronous to received RX rate.
2017-02-18 21:02:55 +01:00
Andreas Eversberg
290b365d67 SDR: Move FM modulation algorithms to a seperate file 2017-02-18 21:02:51 +01:00
Andreas Eversberg
47f74b38ce SDR transmits with full amplitude 2017-02-18 21:02:50 +01:00
Andreas Eversberg
6a3cfd608e Add ascii-art spectrum analyzer for SDR support 2017-02-18 21:02:49 +01:00
Andreas Eversberg
7e45f556ce Correcting all levels and move all remaining integer samples to sample_t
The leves are based on the standards of each mobile network. They
are adjusted to the specified frequency deviation now.
2017-02-18 21:01:13 +01:00
Andreas Eversberg
7ea3bc188d Move samples of int16_t format to sample_t, that is of type double
This prepares the correction of all levels
2017-02-18 21:01:08 +01:00
Andreas Eversberg
ac0da3f76e Filter improvement: LP and HP filters, added test function
The -3 dB level at cut-off frequency is now maintained for multiple
iterations.
2017-02-18 21:01:04 +01:00
Andreas Eversberg
19b396ab4d Wave recording and playback now uses multi channels 2017-02-18 21:00:59 +01:00
Andreas Eversberg
272ebeb0ae SDR: Minor fixes 2017-02-18 21:00:56 +01:00
Andreas Eversberg
d28467c125 SDR: Display IQ data as a plot using 'q' key 2017-02-18 21:00:53 +01:00
Andreas Eversberg
8b9277615d Neu structure for the paging process (B-Netz)
Paging tones are not created within sound_alsa.c
The audio API is now responsible to switch to paging channel.
In case of SDR, the sdr.c will switch frequency offset.
2017-02-18 21:00:50 +01:00
Andreas Eversberg
b30b61282c Generic SDR support 2017-02-18 21:00:48 +01:00