On 9/14/14, 8:23 AM, Bob Camp wrote:
Hi
Remember that one model for FSK is a pair of AM signals that “just
happen” to represent an FSK waveform. With normal FSK if you tune to
one side, you will get a nice AM carrier and sidebands. With MSK it’s
a bit more complex since they to do some cute stuff to cut down the
bandwidth. It’s still got a pair of spikes in the spectrum at the
upper and lower shift frequencies.
For GMSK, it looks more like a flattop with no ears. Straight MFSK has
the ears.
Probably the best way to get a timing signal is to recover the
modulation and then “subtract” it from the original in software. That
would be crazy with a high speed signal. With something like this - a
pc plus sound card probably can do the job. More or less - “that
must have been a 1 = do this to the history buffer, that must have
been a zero = do that to the history buffer”. You would need to know
a bit about how they filter their data stream for it to work well.
The “proof” that you had it right would be a nice clean sine wave
communing out of the history buffer. Spit it out the audio output
port on the sound card and take a look …..
There's several ways to demodulate MSK/GMSK. One way is to use a
discriminator followed by an appropriate matched filter. Typically,
there's some sort of symbol timing tracking loop that depends on there
being transitions periodically to keep the loop going. A costas loop
might work for carrier tracking, if that's what you want to do. It would
have better SNR performance because it's coherent, while most
discriminator approaches are incoherent detection.
there's quite a few gnuradio demodulators out there, and that might be a
good way to get started. At least the source code will give you the
algorithm, if you don't want to bring in all the rest of gnuradio (which
can be somewhat of an ordeal).
The big paper everyone cites on timing recovery is from Mueller and
Mueller (actually, an umlaut u in the last name).
http://www.mathworks.com/help/comm/ref/muellermullertimingrecovery.html
describes the simulink block.
this might also be interesting:
The MSK-Type Signal Timing Recovery block recovers the symbol timing
phase of the input signal using a fourth-order nonlinearity method. This
block implements a general non-data-aided feedback method that is
independent of carrier phase recovery but requires prior compensation
for the carrier frequency offset. This block is suitable for systems
that use baseband minimum shift keying (MSK) modulation or Gaussian
minimum shift keying (GMSK) modulation.
http://www.mathworks.com/help/comm/ref/msktypesignaltimingrecovery.html
No I haven’t thought real hard about all the implications of doing
that, there might be a gotcha in there somewhere. I’m assuming that
they have a pretty predictable clock on their data. Beyond that I
don’t think there are any other weird assumptions. I’d probably do
the “de-fsk” by a phase modulation on the buffer. There might be a
practical bump in the road there.
You might look at the venerable G3RUH 9600 baud modem implementation,
which is a form of MSK. DPLL for symbol timing.
Bob
On Sep 14, 2014, at 10:20 AM, paul swed <paulsw...@gmail.com> wrote:
OK I am use to traditional fsk that typically had a far wide shift
then the baud. What you say would match what the tracor book says
and the system is designed for. I still do not see why if I offset
the LO to -150 hz I get a useful display to judge timing. I am
using the lissajous method. Regards Paul WB8TSL
On Sat, Sep 13, 2014 at 11:25 PM, Jim Lux <jim...@earthlink.net>
wrote:
On 9/13/14, 7:13 PM, paul swed wrote:
If NAA is transmitting 200 baud then I would expect the MSK
carrier to be
+/- 100 Hz. Not +/-50 Hz.
I'd expect the total shift to be half the baud rate: 100 Hz..
_______________________________________________ time-nuts mailing
list -- time-nuts@febo.com To unsubscribe, go to
https://www.febo.com/cgi-bin/ mailman/listinfo/time-nuts and
follow the instructions there.
_______________________________________________ time-nuts mailing
list -- time-nuts@febo.com To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow
the instructions there.
_______________________________________________ time-nuts mailing
list -- time-nuts@febo.com To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow
the instructions there.
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.