Hi Sean, Any chance you can share your work?
On Tue, Sep 15, 2015 at 2:33 PM Nowlan, Sean <[email protected]> wrote: > Thanks, that did the trick. I got about 4e-5 BER and 1.1 % PER at 6dB > Es/N0 with my particular CPFSK parameters. > > > > *From:* Achilleas Anastasopoulos [mailto:[email protected]] > *Sent:* Saturday, September 12, 2015 1:21 PM > *To:* Nowlan, Sean <[email protected]> > *Cc:* [email protected] > > > *Subject:* Re: [Discuss-gnuradio] Demodulating CPFSK with Viterbi > algorithm using gr-trellis > > > > Sean, > > I guess there was a missing normalization of the pulse. > > Please add the line > > p=p/sum(p)*Q/2.0; > > just after the definition of the p pulse > > p = numpy.ones(L*Q) > > > In addition, make sure you increase the Q (samples per symbol) > considerably, ie make it 16 or more. The reason is that h=25/3 results in a > BIG bandwidth for this constellation so it has to be appropriately samples > in order to be represented accurately. > > > > let me know how it goes > > Achilleas > > > > > > > > On Thu, Sep 10, 2015 at 6:09 PM, Nowlan, Sean <[email protected]> > wrote: > > Thanks, Achilleas, Jan, Jeff for your responses. I think I understand the > format now, and I managed to build the gr-trellis documentation, which does > spell out answers for a lot of what I asked. > > > > I’ve abandoned making my own FSM since I can just use the CPM utilities in > gr-trellis. However, I’m getting unexpected BER and PER when running > gr-trellis/examples/python/test_cpm.py with my CPFSK parameters, h = 25/3 > and L=1. > > > > Diff of test_cpm.py with my simple modifications: > > https://gist.github.com/nowls/5b2bc2aada87dc197e3f > > > > $ python test_cpm.py > > Using Volk machine: avx_64_mmx_orc > > 100 16868 100 0.16868 1.0 > > 200 33852 200 0.16926 1.0 > > 300 50786 300 0.169286666667 1.0 > > 400 67667 400 0.1691675 1.0 > > […] > > > > As you can see, PER is 100% and BER is pretty bad for 10 dB SNR. The > construction of the phase response, q, looks correct to me. Any idea what > might be going wrong? > > > > Thanks, > > Sean > > > > *From:* [email protected] > [mailto:[email protected]] *On > Behalf Of *Achilleas Anastasopoulos > *Sent:* Thursday, September 10, 2015 1:28 PM > *To:* [email protected] > *Subject:* Re: [Discuss-gnuradio] Demodulating CPFSK with Viterbi > algorithm using gr-trellis > > > > Sean, > > I just wanted to add to the previous answer: > > Indeed gr-trellis (and the fsm class specifically) has a built in > constructor for generating the FSM corresponding to ANY CPM scheme. > > It only requires three parameters as explained in the comments > > in the file fsm.cc > > The constructed FSM is NOT based on Proakis decomposition, but on the more > elegant decomposition by: > "A decomposition approach to CPM", IEEE Trans. Info Theory, March 1988 > See also my own notes at > http://www.eecs.umich.edu/~anastas/docs/cpm.pdf > > for all the details. > > In this case for h=K/P, it does not matter whether K is even or odd, the > number of states is always = M^{L-1} * P (where M is the cardinality of the > input alphabet), > > so in your case you'll have a trellis with 3 states as the previous email > suggested. > > You may also find useful the python utility > > make_cpm_signals(K,P,M,L,q,frac) > > that can be found in gr-trellis/python > > that generates the signal space for you. > > (please see the above references for more info). > > Finally, you can take a look at the example "test_cpm.py" > > in the gr-trellis/examples/python > > and make appropriate changes for your CPFSK signal. > > > ------------------------ > > Now you can always drop all the above and design your FSM and signals from > scratch. You can create the FSM from a file (this is explained in the > gr-trellis documentaion--which is generated from > gr-trellis/doc/gr-trellis.xml). > > The ouput symbol mapping is defined EXACTLY as you suggested in your email: > > every line corresponds to the current state and every column to an input. > > The entry is a number from 0 to I-1 (where I is the input cardinality). > > How this index is translated to an actual signal IS NOT PART OF THE FSM > DEFINITION but part of the modulation definition as explained very > extensively in the gr-trellis documentation. > > > > let me know if you have any further questions, > > Achilleas > > > > > > > _______________________________________________ > Discuss-gnuradio mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > -- Very Respectfully, Dan CaJacob
_______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
