Skip to content

Releases: f4exb/dsdcc

Major fix of FSK demod

26 Aug 21:22
Compare
Choose a tag to compare

Major fix of FSK demod

This is a complete rewrite of the FSK demod present in the DSDSymbol class. The original algorithm was giving a lot of errors because symbol synchronization and min/max estimation were not implemented correctly. This results in a much improved and robust decoding process removing many clicks and noises that were polluting voice output and less corruption in decoded data.

The min/max estimation runs permanently with an optimized running min/max calculator over 24 symbols.

The symbol synchronization is obtained by squaring the discriminator input signal and passing it through a narrow second order pass band filter. The zero crossings with enough quality (slope) are used to maintain symbol framing.

The sync words of each protocol (DMR, D-Star, dPMR, ...) are searched after processes above have taken place and this does not interfere with them. When looking for a protocol sync word a 2-FSK is assumed. Except for the case of Yaesu System Fusion (YSF) the synchronization words only use the extreme symbols (mapped to -3/+3 deviation). In the case of YSF the low deviation symbols (-1/+1) are mapped to their high deviation counterparts.

Other changes to FSK demod

- Better isolation of the DSDSymbol class (the actual FSK demod) - Complete removal of pseudo optimizations (GFSK, C4FM) - Complete removal of QPSK. This is a FSK demod. If you want QPSK you must use a different implementation. - Following both changes above there is no "mode" any more - Method to set 2 or 4-FSK and polarity - Method to set symbol (Baud) rate: 2400, 4800 and 9600. The 9600 baud rate is not operational and will be fixed or removed in future versions - Expose symbol synchronization data for client visualization - Expose signal range and center for client visualization

Changes to dPMR decoder

- Fixed CCH frame count - Decode own and caller IDs also from CCH

Partial support of dPMR and NXDN

15 Aug 23:02
Compare
Choose a tag to compare

Although it has many bugs it should be able to detect most of the time if a signal is dPMR or NXDN in 2400 baud mode.

Better support of serial DV devices

08 May 23:45
Compare
Choose a tag to compare

Standalone upsampler for short type

Added a standalone uspsampler by 6 or 7 to convert short samples to 48k. This is a helper class for upsampling audio frames returned by a serial DV device.

Do not reset rate to none when sync is lost

The rate should be changed only on positive sync determination. This avoids useless rate resetting with the serial DV device.

Mbelib support optional

04 May 10:25
Compare
Choose a tag to compare

Mbelib support is now optional

DSDcc can now be used to extract the AMBE frames to be processed externally thus making it possible to compile without mbelib support and therefore the already mentioned possible copyright issues. However mbelib support is still an option but in addition to have mbelibinstalled in your system you have to specify -DUSE_MBELIB on the cmake command line to activate the mbelib support during compilation The actual compile directive used is DSD_USE_MBELIB.

When mbelib is not activated the executable dsdccx expects to decode the AMBE frame using a serial device supporting the serial packet protocol of a DVSI AMBE3000 chip. That is a device that exposes the serial packet interface of the AMBE3000 chip. This is for example a ThumbDV USB dongle. To support the serial communication with the AMBE3000 chip through any hardware you see fit you will have to compile and install SerialDV which is found in this very Github repository.

First release

28 Apr 11:35
Compare
Choose a tag to compare

This is a first release covering D-Star and DMR support.