I am using the C++ OP25 libs to capture and record the P25 transmissions from a trunked radio system (
https://github.com/robotastic/trunk-recorder ).
Transmission can either use 4-Level FSK or CPSK. I am getting great decodes from a system using CPSK but I am having a lot of trouble with a system using 4FSK.
Xlating + LPF to roughly capture the channel
ARB Resampler to get the system sample rate
Quad FM Demod
Multiply Const - to get the right levels, -3 to 3
FSK4 Demod - from OP25
FSK4 Slicer - from OP25
OP25 Decode
it then converts it to what is needed to record it as a Wav file
Are there some obvious blocks I should add in to help condition the input better? I think the incoming levels may not be constant. There also seems to be occasional interference. Is there a block that will discard values above a certain range? It would be great to throw-away samples above 3.5 or below -3.5.
Attached is a picture with what I think is an example of the interference.
Any tips would be greatly appreciated!!