Hello dear community !
I'm
actually trying to develop an application with GRC that does CPFSK
mod/demod but I haven't got some satisfying results yet and I hope you
will be able to get me back in the right way.
The flowgraph
i've made (
https://www.dropbox.com/s/6vuyleerbwl3df2/UAT.png?dl=0) is based upon the many forums (Gnu radio, stack overflow etc )
i've visited during the last 3 weeks. The blocks i've integrated are
those who came back often in the discussions i've read and as far as
i've been able to understand the theory, I think they are really
necessary. You'll see that i'm using reed-solomon blocks, but i'm pretty
sure they are no problem cuz i've tested them and they work :).
Now,
I have many concerns and I will try to make them as clear as possible.
For your information, let me show you what are my parameters :
sample_rate : 6.25M
baud_rate : 1.041667M
sample_per_symbols : 6
fsk_deviation_hz : 312.5K
center_freq : 978 MHz
1st
concern : when I enable the rational resampler with Interpolation set
to : baud_rate and Decimation set to : sample_rate, GRC seems to not
execute the flowgraph at all as if the calculations were too big ?!
Since
sample_rate /
baud_rate =
sample_per_symbols,
I tried to put Interpolation to 1 and Decimation to 6, but GRC freezes
for about a minute after execution of the flowgraph. So, what should I
do to keep my parameters valid if I really need to use a rational
resampler block?
2nd concern : If you look at the other
picture I included (
https://www.dropbox.com/s/0lw4o0941kodj0o/20160607_144649.jpg?dl=0), it's the actual output of the CPFSK mod block that I
captured on an oscilloscope. From what I've understand about FSK is
that we should be seeing a change in frequency whether it's a binary '1'
or a binary '0' we're transmitting. From what we see, it looks a lot
more like an Amplitude Modulation or something like that. Do someone has
an explanation about that? Have you ever look at CPFSK with an
oscilloscope ? Have you seen the same thing ? In this application, the
fsk_deviation_hz shall be +312.5K for a '1' and -312.5K for a '0'. How
may I be sure to respect this specification by using the CPFSK block ?
3rd
concern : On every forum I've been, people have been using a "Frequency
Xlating FIR filter" on Rx side. What is it used for ? I don't
understand why we need to use this block. I must admit that Rx side is a
bit of mystery for me right now as I've been working with GRC for only
4-5 weeks up until now. The other aspect of this block that confuses me
is the filter taps we need to specify. I've specified a low pass filter
tap for this block, but i'm not sure what parameters do I need to put in
it and if I really need a "low-pass" tap?!