Thanks Marcus! I will try putting in a low pass in first after the Quad demod. That BPF / Polyphase Channelizer approach sounds pretty cool too!
I have attached a GRC file that I use for debugging and a link the raw dump from a File Sink. The sample rate at the sink is 96k/s, the system channel rate is 48k/s, with 10 samples per symbol. The FSK Level has to be set to about 0.66.
I am sure that some of the problem is that I don’t have a great signal coming in, but if there is any additional processing I could do to improve the reception that would be great.
|
debug.grc
Description: Binary data
Wav file
Raw capture from a file sink
Hi Luke, you don't happen to have a waterfall plot or a raw IQ recording?
Quadrature demodulation isn't the most resilient to noise. So, a
low-pass filter that makes sure that events that are sufficiently
shorter than a symbol after the Quadrature demodulator would sound
wise. Then again, I don't know the OP25 infrastructure overly
well, so chances are the FSK4 demod already contains one. An alternative to your Quad FM demod would be a
four-bandpasses-based decider. An easy way to build one is to
either use four individual BPFs, or use one set of filter taps in
the Polyphase Channelizer (which divides your f_sample_in stream
into four f_sample_in/4 -rate streams with channel centers). Just
use a filter that would select the "zeroth" carrier. The magic of
polyphase math will add three f_sample_in/4-shifted versions (you
might need to use Rotator or similar to put the zeroth subcarrier
at f=0). I have a "playing with channelizers" flow graph [1].
Advantage of the polyphase channelizer is that it uses very little
more ressources than a single bandpass filter would – basically,
you get the three additional filters for the cost of a short FFT.
Yay! Cheers, Marcus
[1] https://gist.github.com/babffaa88f54a7fba9b52fc09bda0462
On 01/11/2017 04:44 PM, Luke Berndt
wrote:
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!!
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
|
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio