0

Given is a signal from a NB-FM-Receiver Flow Diagram in GNU Radio Companion. This signal consists of a series of identifiers (ending with ZVEI1: 89E9EA) in the ZVEI1 standard and followed by a useful signal. The signal is branched off to multimon-ng through a FIFO-Pipe. mulimon-ng reads the signal and decodes the signal according to:

multimon-ng -a ZVEI1 -t raw myfifo.raw
multimon-ng 1.1.8
  (C) 1996/1997 by Tom Sailer HB9JNX/AE4WA
  (C) 2012-2019 by Elias Oenal
Available demodulators: POCSAG512 POCSAG1200 POCSAG2400 FLEX EAS UFSK1200 CLIPFSK FMSFSK AFSK1200 AFSK2400 AFSK2400_2 AFSK2400_3 HAPN4800 FSK9600 DTMF ZVEI1 ZVEI2 ZVEI3 DZVEI PZVEI EEA EIA CCIR MORSE_CW DUMPCSV X10 SCOPE
Enabled demodulators: ZVEI1
ZVEI1: 83702
ZVEI1: 89E9EA

which works fine. Now the decoded message should be read from multimon-ngs output and looped back into GNU Radio Companion to mute

  1. the identifiers
  2. selectively the signal that follows ZVEI1: 89E9EA according to the previous identifiers.

How can this be accomplished?

Philipp
  • 33
  • 3

1 Answers1

0

That would require your GNU Radio flow graph to "know" what transmission is that following the identifier. Your flow graph as shown can't really work, because your "muting" messages are asynchronous to the sample flow.

Therefore, you'd need a ZVEI1 decoder in GNU Radio.

Then, your multimon-ng is no longer necessary.

So, I'd recommend using GNU Radio to develop a simple ZVEI1 decoder! It's actually not that hard. You'd want to read the official GNU Radio tutorials, and then:

  • build a demodulator for the ZVEI signalling tones (PLL freq det, for example, or a filter bank)
  • write a block that detects the squelch sequence, and drops all data before it sees one, and then passes one one packet worth of samples
  • Downstream of that, the actual data decoder
  • and your dropping logic
··· -->rat. resampler
--> PLL freq det
--> squelch tone sequence detector
--> data decoder (tags packets with IDs)
--> selective pass-through /dropping

That's two or three blocks you'd have to write yourself – and seeing the sampling rates are super low, that could easily be done in Python (instead of C++, which you'd have to use when writing high-performance GNU Radio blocks).

Marcus Müller
  • 34,677
  • 4
  • 53
  • 94