CPFSK receiver architecture

Started by gct July 3, 2017
I'm evaluating receiver structures for the ETSI DMR spec, but not having
much luck finding any work in this area.  They use continuous phase
modulation, so I anticipate I'll have to use a viterbi demodulator to get
it done.  Unfortunately they choose h=.27, so I have at least 200 states,
times whatever number of symbol cycles their pulse shape is over (not
clear on this, three maybe?).  So I'm looking at 600*4 = 2400 matched
filters I have to evaluate per symbol to get branch metrics for the
viterbi, woof.  

If anyone can point me to revelant work I'd appreciate it, I'm really
looking for a receiver that's simpler than the optimum one while still
getting close in performance (some loss is unavoidable clearly).  If
anyone knows of one specifically for DMR that'd be great, as it's a little
weird.  

Lastly, perhaps someone can enlighten me on the difference between
"coherent" and "incoherent" receivers for CPM.  To me, coherent usually
means I know the carrier phase.  But, in CPFSK, if I knew the phase,
wouldn't I know everything I need to know?
---------------------------------------
Posted through http://www.DSPRelated.com
gct <24505@DSPRelated> wrote:

>I'm evaluating receiver structures for the ETSI DMR spec, but not having >much luck finding any work in this area. They use continuous phase >modulation, so I anticipate I'll have to use a viterbi demodulator to get >it done. Unfortunately they choose h=.27, so I have at least 200 states, >times whatever number of symbol cycles their pulse shape is over (not >clear on this, three maybe?). So I'm looking at 600*4 = 2400 matched >filters I have to evaluate per symbol to get branch metrics for the >viterbi, woof.
>If anyone can point me to revelant work I'd appreciate it
You probably do not need a maximum likelyhood demodulator. You probably just need a standard discriminator type FM demodulator. You need to look at your specs, perhaps do some simulations and determine whether you need something fancier, but I am guessing not, since such standards are aimed at cheaper implementations. h = 0.27 does not even sound like it is supposed to be coherent. Steve
On 04.07.2017 7:29, Steve Pope wrote:
> gct <24505@DSPRelated> wrote: > >> I'm evaluating receiver structures for the ETSI DMR spec, but not having >> much luck finding any work in this area. They use continuous phase >> modulation, so I anticipate I'll have to use a viterbi demodulator to get >> it done. Unfortunately they choose h=.27, so I have at least 200 states, >> times whatever number of symbol cycles their pulse shape is over (not >> clear on this, three maybe?). So I'm looking at 600*4 = 2400 matched >> filters I have to evaluate per symbol to get branch metrics for the >> viterbi, woof. > >> If anyone can point me to revelant work I'd appreciate it > > You probably do not need a maximum likelyhood demodulator. You > probably just need a standard discriminator type FM demodulator. > You need to look at your specs, perhaps do some simulations and determine > whether you need something fancier, but I am guessing not, since such > standards are aimed at cheaper implementations. > > h = 0.27 does not even sound like it is supposed to be coherent. > > Steve >
Gct, as for the relevant work, you've surely looked up the first link in Google Scholar for "etsi dmr cpfsk", haven't you? http://ieeexplore.ieee.org/abstract/document/5304247/ Gene
>gct <24505@DSPRelated> wrote: > >>I'm evaluating receiver structures for the ETSI DMR spec, but not
having
>>much luck finding any work in this area. They use continuous phase >>modulation, so I anticipate I'll have to use a viterbi demodulator to
get
>>it done. Unfortunately they choose h=.27, so I have at least 200
states,
>>times whatever number of symbol cycles their pulse shape is over (not >>clear on this, three maybe?). So I'm looking at 600*4 = 2400 matched >>filters I have to evaluate per symbol to get branch metrics for the >>viterbi, woof. > >>If anyone can point me to revelant work I'd appreciate it > >You probably do not need a maximum likelyhood demodulator. You >probably just need a standard discriminator type FM demodulator. >You need to look at your specs, perhaps do some simulations and determine
>whether you need something fancier, but I am guessing not, since such >standards are aimed at cheaper implementations. > >h = 0.27 does not even sound like it is supposed to be coherent. > >Steve
Yeah the modulation index throws me too, it'd be so easy to use .25 if they wanted to make things easy. So you'd probably just use an FM demod, apply RRC filter, then try to discriminate the frequency in the middle of the symbol? Any idea how that compares to the "ideal" receiver? --------------------------------------- Posted through http://www.DSPRelated.com
>On 04.07.2017 7:29, Steve Pope wrote: >> gct <24505@DSPRelated> wrote: >> >>> I'm evaluating receiver structures for the ETSI DMR spec, but not
having
>>> much luck finding any work in this area. They use continuous phase >>> modulation, so I anticipate I'll have to use a viterbi demodulator to >get >>> it done. Unfortunately they choose h=.27, so I have at least 200 >states, >>> times whatever number of symbol cycles their pulse shape is over (not >>> clear on this, three maybe?). So I'm looking at 600*4 = 2400 matched >>> filters I have to evaluate per symbol to get branch metrics for the >>> viterbi, woof. >> >>> If anyone can point me to revelant work I'd appreciate it >> >> You probably do not need a maximum likelyhood demodulator. You >> probably just need a standard discriminator type FM demodulator. >> You need to look at your specs, perhaps do some simulations and
determine
>> whether you need something fancier, but I am guessing not, since such >> standards are aimed at cheaper implementations. >> >> h = 0.27 does not even sound like it is supposed to be coherent. >> >> Steve >> > >Gct, as for the relevant work, you've surely looked up the first link in
>Google Scholar for "etsi dmr cpfsk", haven't you? > >http://ieeexplore.ieee.org/abstract/document/5304247/ > >Gene
I surely did look it up, but they're doing a non-coherent detection, which I was trying to avoid for performance reasons. You can see they're at least 1.7dB above the lower bound. --------------------------------------- Posted through http://www.DSPRelated.com
On 04.07.2017 22:46, gct wrote:

(snip)

> > I surely did look it up, but they're doing a non-coherent detection, which > I was trying to avoid for performance reasons. You can see they're at > least 1.7dB above the lower bound. > --------------------------------------- > Posted through http://www.DSPRelated.com >
Apologies if I sounded too harsh; I've read that article, too. Just some thoughts (not from actual experience). Coherent detection doesn't have to mean Viterbi decoder. What about M-algorithm? Perhaps you could do better than non-coherent detection without too much complexity. Best regards, Gene
>On 04.07.2017 22:46, gct wrote: > >(snip) > >> >> I surely did look it up, but they're doing a non-coherent detection, >which >> I was trying to avoid for performance reasons. You can see they're at >> least 1.7dB above the lower bound. >> --------------------------------------- >> Posted through http://www.DSPRelated.com >> > >Apologies if I sounded too harsh; I've read that article, too. > >Just some thoughts (not from actual experience). Coherent detection >doesn't have to mean Viterbi decoder. What about M-algorithm? Perhaps >you could do better than non-coherent detection without too much >complexity. > >Best regards, >Gene
No worries, I haven't heard of the M-algorithm, do you have any good references I could look at? --------------------------------------- Posted through http://www.DSPRelated.com
gct <24505@DSPRelated> wrote:

> spp wrote,
>>You probably do not need a maximum likelyhood demodulator. You >>probably just need a standard discriminator type FM demodulator. >>You need to look at your specs, perhaps do some simulations and determine
>>whether you need something fancier, but I am guessing not, since such >>standards are aimed at cheaper implementations.
>>h = 0.27 does not even sound like it is supposed to be coherent.
>Yeah the modulation index throws me too, it'd be so easy to use .25 if >they wanted to make things easy. So you'd probably just use an FM demod, >apply RRC filter, then try to discriminate the frequency in the middle of >the symbol? Any idea how that compares to the "ideal" receiver?
(Typically no RRC filter in such a system. Instead, use a DFE to subtract out the delay spread from the transmit filter and/or channel.) In AWGN, usually between 1 and 2 dB worse. It depends on the operating point, which depends on the amount of coding etc. If it is uncoded and you need to get a low BER like 1e-8 then the differences can be profound. But this is seldom the case in a real system. In multipath .. a bit hard to say. The degradation could be worse. Good luck- Steve
On 05.07.2017 2:53, gct wrote:
>> On 04.07.2017 22:46, gct wrote: >> >> (snip) >> >>> >>> I surely did look it up, but they're doing a non-coherent detection, >> which >>> I was trying to avoid for performance reasons. You can see they're at >>> least 1.7dB above the lower bound. >>> --------------------------------------- >>> Posted through http://www.DSPRelated.com >>> >> >> Apologies if I sounded too harsh; I've read that article, too. >> >> Just some thoughts (not from actual experience). Coherent detection >> doesn't have to mean Viterbi decoder. What about M-algorithm? Perhaps >> you could do better than non-coherent detection without too much >> complexity. >> >> Best regards, >> Gene > > No worries, I haven't heard of the M-algorithm, do you have any good > references I could look at? > --------------------------------------- > Posted through http://www.DSPRelated.com >
M algorithm is briefly reviewed in Todd Moon, "Error Correction Coding: Mathematical Methods and Algorithms". Its description is actually so short that I could just quote it here. For fun's sake, here's what the text says (pp. 521-522): ----------------------------------------- 12.8.6 A Variation on the Viterbi Algorithm: the M Algorithm For a trellis with a large number of states at each time instant, the Viterbi algorithm can be very complex. Furthermore, since there is only one correct path, most of the computations are expended in propagating paths that are not be used, but must be maintained to ensure the optimality of the decoding procedure. The M algorithm (see, e.g., [270]) is a suboptimal, breadth-first decoding algorithm whose complexity is parametric, allowing for more complexity in the decoding algorithm while decoding generally closer to the optimum. A list of M paths is maintained. At each time step, these M paths are extended to M*2^k paths (where k is the number of input bits), and the path metric along each of these paths is computed just as for the Viterbi algorithm. The path metrics are sorted, then the best M paths are retained in preparation for the next step. At the end of the decoding cycle, the path with the best metric is used as the decoded value. While the underlying graphical structure for the Viterbi algorithm is a trellis, in which paths merge together, the underlying graphical structure for the M algorithm is a tree: the merging of paths is not explicitly represented, but better paths are retained by virtue of the sorting operation. The M-algorithm is thus a cross between the stack algorithm (but using all paths of the same length) and the Viterbi algorithm. If M is equal to the number of states, the M algorithm is nearly equivalent to the Viterbi algorithm. However, it is possible for M to be significantly less than the number of states with only modest loss of performance. Another variation is the T-algorithm. It starts just like the M algorithm. However, instead of retaining only the best M paths, in the T algorithm all paths which are within a threshold T of the best path at that stage are retained. ----------------------------------------- [270]: G. Pottie and D. Taylor, "A Comparison of Reduced Complexity Decoding Algorithms for Trellis Codes," IEEE Journal on Selected Areas in Communications, vol. 7, no. 9, pp. 1369-1380, 1989. ----------------------------------------- If you follow the link, it would say something along the lines that M-algorithm is global, while Viterbi algorithm is local. Which makes some sense to me. Best regards, Gene
>gct <24505@DSPRelated> wrote: > >> spp wrote, > >>>You probably do not need a maximum likelyhood demodulator. You >>>probably just need a standard discriminator type FM demodulator. >>>You need to look at your specs, perhaps do some simulations and
determine
> >>>whether you need something fancier, but I am guessing not, since such >>>standards are aimed at cheaper implementations. > >>>h = 0.27 does not even sound like it is supposed to be coherent. > >>Yeah the modulation index throws me too, it'd be so easy to use .25 if >>they wanted to make things easy. So you'd probably just use an FM
demod,
>>apply RRC filter, then try to discriminate the frequency in the middle
of
>>the symbol? Any idea how that compares to the "ideal" receiver? > >(Typically no RRC filter in such a system. Instead, use a DFE to >subtract out the delay spread from the transmit filter and/or channel.) > >In AWGN, usually between 1 and 2 dB worse. It depends on the operating >point, which depends on the amount of coding etc. If it is uncoded >and you need to get a low BER like 1e-8 then the differences can >be profound. But this is seldom the case in a real system. > >In multipath .. a bit hard to say. The degradation could be worse. > >Good luck- >Steve
Curious why no RRC filter, wouldn't it make sense to apply it then use the DFE to remove any extra ISI? Thanks for the help! --------------------------------------- Posted through http://www.DSPRelated.com