was not computationally feasible with my 3rd Gen i7 processor running and airspy at 10 MHz. Restructured the polyphase channelizer to use vector iteration structures that the JDK 9 JIT compiler can translate into SIMD instructions. Separated the IFFT processing from the filter process so that they can be executed on separate threads and this allows the processing to occur real time. P25 C4FM decoding at 25 kHz channel sample rate using an airspy 10MHz sample stream seems to be working nicely with ~25% CPU usage and ~300 to 500 MB memory usage. Incremental (parallel) channel decoding should have a minimal increase in CPU loading since all of the 12.5 kHz channels are available in the polyphase channelizer and the only additional workload is the decoding of the 25 kHz sample stream. There is still an issue with stopping channels and the channelizer keeps processing, and occasionally when starting traffic channels something deadlocks and causes out of memory.
sdrtrunk
A cross-platform java application for decoding, monitoring, recording and streaming trunked mobile and related radio protocols using Software Defined Radios (SDR).
Figure 1: sdrtrunk Version 0.3.0 Application Screenshot
End User Instructions:
If you simply want to download and run the program, please follow these instructions.
Install Java 8 (or newer)
Download the latest sdrtrunk release
All release versions of sdrtrunk are available from the releases tab.
(final) These versions have been tested and are the current release version.
(beta) These versions are currently being tested for bugs and functionality.
Run the application
Either double-click on the downloaded file (if supported on your operating system) or open a terminal/command window and change to the directory where you downloaded the release file and type:
java -jar downloaded-jar-filename
Note: replace downloaded-jar-filename with the actual name of the sdrtrunk release version that you downloaded
Optional - P25 Audio
If you're using sdrtrunk with a P25 trunked radio system, the JMBE wiki page contains instructions for downloading the JMBE audio library source code and compiling the JMBE library. Copy the resulting JMBE audio library jar file to the same folder containing the sdrtrunk application to use the library with sdrtrunk.
Developer Instructions:
If you're interested in modifying and/or compiling the source code, please follow these instructions to use gradle to compile the code.
Build the project
sdrtrunk uses gradle as the build system. You can build it with locally installed gradle or if you do not have/want to install gradle you can use preconfigured linux/windows wrapper.
Build with locally installed gradle 4.3.1
gradle clean buildSdr
Build with preconfigured wrapper for linux/windows
Linux
./gradlew clean buildSdr
Windows
gradle.bat clean buildSdr
This would add gradle, download all project dependencies and build JAR
Development
All dependencies/versions are controlled from build.gradle. To change the new release version tag of artifact - change property:
version = '0.3.2'
Run SDRTrunk
SDRTrunk is packed into single uber-jar file. There is need to have folders with dependencies and adding them with classpath. Just run with java.
Use Java8
java -jar build/libs/sdr-trunk-all-0.3.2.jar