Commit Graph

46 Commits

Author SHA1 Message Date
Andreas Eversberg
ed31a26eba Restructure: Move sample from common code to 'libsample' 2017-12-03 08:45:48 +01:00
Andreas Eversberg
b605da1aff Restructure: Move timer from common code to 'libtimer' 2017-11-13 20:00:52 +01:00
Andreas Eversberg
ee3fbeb03b Split call control from built-in call console by using MNCC layer 2017-11-05 16:58:31 +01: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
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
76a3484c5c C-Netz: Make demodulation algorithm (slope or leve) slectable via option
By default (auto), the algorithm is selected, depending on sound card
or SDR usage. For testing and debugging purpose, the algorithm can be
forced.
2017-05-19 19:11:59 +02:00
Andreas Eversberg
c086e66b7c minor cleanups 2017-05-17 20:14:37 +02:00
Andreas Eversberg
ef7ff26793 C-Netz: SDR now uses zero-crossing to detect level changes.
This does not work with analog radio, but with SDR it works.
The quality should be better and the process is faster.
2017-05-17 20:06:46 +02:00
Andreas Eversberg
9d87b5bf0f C-Netz: Improved transmission of speech
The speech is now correctly ramped up and down during pause bits.
2017-05-17 20:06:44 +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
8e0d7d2513 samplerate.c: Allow transcoding to lower sample rate other than 8000 Hz 2017-03-04 16:52:20 +01:00
Andreas Eversberg
17b6124122 C-Netz: Remove useless -V option 2017-02-18 21:02:54 +01:00
Andreas Eversberg
4de1e0188d C-Netz: Add low pass filter to eliminate high frequency noise
This improves the FSK decoding quite allot, especially with SDR.
2017-02-18 21:02:52 +01:00
Andreas Eversberg
5f1d7bc970 C-Netz: Improve clock speed measurements.
Sound card's clock measurements only requires a few minutes to get sub-ppm
accuracy results.
2017-02-18 21:02:46 +01:00
Andreas Eversberg
faa3dfb7d4 C-Netz: Make average to clock measurements for a quicker result 2017-02-18 21:01:19 +01:00
Andreas Eversberg
8cb0187133 C-Netz: Remove the obviously useless noise function for unused timeslots 2017-02-18 21:01:17 +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
bd7ccc5fa0 Add global DC-Filter and remove all individual DC-Filters 2017-02-18 21:01:12 +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
538a959128 Indexing tables by casting index to unsigned integer only 2017-02-18 21:01:06 +01:00
Andreas Eversberg
c5cf88ce57 Prepare for SDR: Add bandwidth and deviation info to sender instance 2017-02-18 21:00:47 +01:00
Andreas Eversberg
9ff8c3bb25 Rework on audio interface
Sound instance is now called audio instance and uses funcation pointers.
This gives a clean interface to be exchanged with other technologies,
linke SDR.
2017-02-18 21:00:45 +01:00
Andreas Eversberg
d54d3ac265 prepare audio handling for multi carrier SDR 2017-01-07 06:28:24 +01:00
Andreas Eversberg
2d0bc92cde C-Netz: Make demodulation buffer size dynamic 2017-01-07 06:26:50 +01:00
Andreas Eversberg
a37dfe38ab C-Netz: Fixed double free bug 2017-01-07 06:26:49 +01:00
Andreas Eversberg
7585f9c22d Add function to change dsp state, more debug with channel info 2016-12-09 16:34:33 +01:00
Andreas Eversberg
e34d74aa23 C-Netz: Simplifying TX signal clock sync between two channels 2016-11-30 18:09:38 +01:00
Andreas Eversberg
f911717aa4 C-Netz: Minor coding style changes, no changes to process 2016-11-22 19:09:05 +01:00
Andreas Eversberg
8864db8269 C-Netz: Adjusting compandor response level 2016-10-23 08:45:24 +02:00
Andreas Eversberg
8ef966aa21 C-Netz: Reset FSK decoder when switching channel mode
This prevents corrupt frames, as well as clear pending frames that
were received during the old mode, but may not be received during
the new mode.
2016-10-07 08:00:34 +02:00
Andreas Eversberg
eac595bd17 C-Netz: Don't access transaction after destroying it 2016-10-07 08:00:10 +02:00
Andreas Eversberg
0cec2f28be Add check if fromat at PDEBUG() is consistent (like printf)
The bugs it found are fixed too.
2016-10-07 07:52:17 +02:00
Andreas Eversberg
17930af920 C-Netz: callref is moved completely to transaction object 2016-10-02 09:06:04 +02:00
Andreas Eversberg
8d7c7f4425 callref: Move callref from 'sender' to individual implementation of a, b, c-netz
Cellular networks use transaction instances, so callref is now member of
transaction object.
2016-10-02 09:06:03 +02:00
Andreas Eversberg
e484814c0a C-Netz: Add hack to increase voice deviation for some newer phone 2016-08-03 12:40:56 +02:00
Andreas Eversberg
eb85afa49c C-Netz: Use cosine-square ramp for better signal generation 2016-08-02 07:39:02 +02:00
Andreas Eversberg
f729b32745 C-Netz: Fixed multi-transceiver mode and show channel in various logs 2016-07-31 18:48:19 +02:00
Andreas Eversberg
2ee51022f4 Rename 'compander' to 'compandor' 2016-06-20 19:37:56 +02:00
Andreas Eversberg
c933250685 Add dsp mode change fuction to A and B Netz, fixed NMT 2016-06-12 16:11:20 +02:00
Andreas Eversberg
7aa2445b47 Move amplitude (level) debugging to debug.c 2016-05-15 20:37:06 +02:00
Andreas Eversberg
46fa72894e C-Netz: Calibration/fix processing of tone levels on TX and RX side
FSK and compander levels are adjusted.

Eliminate offsets between subsequent speech chunks. This is done by
high-pass filter. An offset is not passed to the filter.

Do correct audio processing chain:
 time compress -> compressor -> scrambler / pre-emphasis -> TX
 RX -> de-scrambler / de-emphasis -> expander -> time expand
2016-05-13 09:37:03 +02:00
Andreas Eversberg
5a9c9c7401 C-Netz: Send 5280 Hz test tone on idle speech channel 2016-05-13 09:37:03 +02:00
Andreas Eversberg
e2a9c2c6a5 Automatic FSK polarity selection on TX side
This is done by simulating two cells with different polarities.
On first message from mobile station, the cell with the correct
polarity is used, the other is disabled.

On RX side the polarity is not selected, since FSK decoder detects
polarity for every frame.
2016-05-13 09:37:01 +02:00
Andreas Eversberg
7434e21dc2 Multi transceiver support
This can be multiple transceivers on multiple sound cards.

Two transceivers can be bundled on one sound device as well, using both channels.
2016-05-08 15:48:13 +02:00
Andreas Eversberg
11302272ce C-Netz: Minor fix on clock speed indication 2016-05-08 15:46:34 +02:00
Andreas Eversberg
16acdbf59d Implementation of C-Netz (German mobile telephone system) 2016-04-24 15:19:00 +02:00