The GMSK Modulator settings are as follows:
Input type: Bit
BT product: .3
Pulse Length: 4
Symbol prehistory: 1
Phase offset (rad): 0
Samples per symbol: 2
Output Data Type: Double
The GMSK Demodulator settigns are as follows:
Output type: Bit
BT product: .3
Pulse length: 4
Symbol Prehistory: 1
Phase offset (rad): 0
Samples per symbol: 2
Traceback length: 1
Output datatype: double
It seems like this should be pretty straight forward.
Take the GMSK modulator output, feed it into the GMSK
demodulator and, since I'm not adding any noise, I should
get out what I put in. This doesn't seem to be the case.
I get bits out, just not the right bits. I've searched
but cannot find a good explanation or example of how this
mod/demod is supposed to work. I'm still a little unclear
on what the 'traceback length' setting really does.
MATLAB's help is usually pretty good, but it seems to be
lacking a bit when it comes to some Simulink blocks,
including these. If someone could please point me in the
right direction, I'd greatly appreciate it.
Thanks,
-Bryan
-Bryan
I had two separate .mdl files. One took an input of bits
from the MATLAB workspace and fed it through a GMSK
modulator, storing the output onto the MATLAB workspace.
The second .mdl file then took an input from the MATLAB
workspace and ran it through a GMSK demodulator, writing
the output to the workspace. The trouble I was running
into had to do with data rates. I was having no trouble
running a GMSK mod/demod simulation in Simulink without
using the sim() function from MATLAB. The data rate
between the modulator and demodulator was twice that of
the input into the modulator and the output from the
demodulator. That's to be expected, since the sampling
rate was 2. I wanted the models to be dynamic, so I was
specifying 'FixedStep' in my sim() call via the simset()
function. However, the FixedStep size wasn't allowing the
demodulator work at twice the data rate as the modulator.
Every input/output was running at the same data rate
(FixedStep). I thought using a structure with times would
solve the issues, but it didn't. I'm still looking for a
fix, but have moved on to something else so this is on
hold for now.
If anyone has any tips they'd be greatly appreciated.
Otherwise, I'll post more later should I come across
anything else.
Thanks.