Return-Path: X-Spam-DCC: paranoid 1102; Body=2 Fuz1=2 Fuz2=2 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on lipkowski.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_00,DNS_FROM_AHBL_RHSBL, FORGED_RCVD_HELO,RATWARE_GECKO_BUILD autolearn=no version=3.1.3 Received: from post.thorcom.com (post.thorcom.com [195.171.43.25]) by paranoid.lipkowski.org (8.13.7/8.13.7) with ESMTP id tBOM90KL009855 for ; Thu, 24 Dec 2015 23:09:01 +0100 Received: from majordom by post.thorcom.com with local (Exim 4.14) id 1aCE1I-0005gp-9G for rs_out_1@blacksheep.org; Thu, 24 Dec 2015 22:06:00 +0000 Received: from [195.171.43.32] (helo=relay1.thorcom.net) by post.thorcom.com with esmtp (Exim 4.14) id 1aCE1H-0005gg-WE for rsgb_lf_group@blacksheep.org; Thu, 24 Dec 2015 22:05:59 +0000 Received: from parrot.netcom.co.uk ([217.72.171.49]) by relay1.thorcom.net with esmtp (Exim 4.86) (envelope-from ) id 1aCE07-0004J3-Q5 for rsgb_lf_group@blacksheep.org; Thu, 24 Dec 2015 22:05:58 +0000 Received: from sb.abelian.org (i-194-106-52-83.freedom2surf.net [194.106.52.83]) by parrot.netcom.co.uk (Postfix) with ESMTP id 0127A3273A5 for ; Thu, 24 Dec 2015 21:55:04 +0000 (GMT) Received: from [127.0.0.1] (localhost [127.0.0.1]) by sb.abelian.org (Postfix) with ESMTP id E2E3B28A0053 for ; Thu, 24 Dec 2015 22:04:32 +0000 (UTC) Message-ID: <567C6BF0.1090705@abelian.org> Date: Thu, 24 Dec 2015 22:04:32 +0000 From: Paul Nicholson User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130106 Thunderbird/17.0.2 MIME-Version: 1.0 To: rsgb_lf_group@blacksheep.org X-Scan-Signature: b1e5ebccbad86c8ca1fd46d24f0285de Subject: LF: EbNaut Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SA-Exim-Scanned: Yes Sender: owner-rsgb_lf_group@blacksheep.org Precedence: bulk Reply-To: rsgb_lf_group@blacksheep.org X-Listname: rsgb_lf_group X-SA-Exim-Rcpt-To: rs_out_1@blacksheep.org X-SA-Exim-Scanned: No; SAEximRunCond expanded to false X-Scanned-By: MIMEDefang 2.56 on 10.1.3.10 Status: RO X-Status: X-Keywords: X-UID: 5967 While sitting here slowly consuming my own weight in mince pies, I've been busy with EbNaut and can report some progress. The repeated list decodings during the phase search often produce several decodes which have a valid outer code CRC. The decoder has to choose which of these to present as the final result of the run. In these tests, success or failure depends only on the computer making the right decision - there is no operator looking at the list output to spot the callsign. The policy used up to now by EbNaut is to keep the decode which has the lowest BER. That would seem to be an obvious and natural method of selecting the final decode of the run. But there are two other possible schemes: one would be to select the decode with lowest list ranking, and another would be to select the decode which has the overall maximum likelihood in the Viterbi layer. It turns out that the performance is different when all three methods are tested. In fact, 50 dollars of CPU time demonstrates that choosing the decode with lowest BER actually always has the worst overall success rate. For example, 4 character messages with 8K19A at Eb/N0 = -1.0dB produces a success rate of about 54% with an optimum list size of around 10000, when selecting the lowest BER solution. Switching to selecting the lowest rank produces a success rate of nearly 59% and this method no longer has the complication of an optimum list size: as you increase the list size, the success rate doesn't reach a peak and then start to fall. Instead it rises asymptotically. Selecting the overall maximum likelihood turns out to have the best success rate of the three methods, achieving 60% and also doesn't have an optimum list size. The reason for this that the BER arithmetic uses the hard decision Hamming distance but the decoder uses the soft decision Euclidean distance to construct the path metrics. The Euclidean distance gives the true maximum likelihood with Gaussian noise. Quite often a false detection with a less likely path metric actually has a lower Hamming distance than the correct decode. A 6% improvement of success rate might not sound much and represents about 0.1dB extra coding gain. But when experimenting this close to the limit there are no large gains to be had, only little increments. It's quite nice to find such a simple improvement and with hindsight it should have been fairly obvious. But I was led there by trying to calculate the optimum list size and however I tried, the calculation said there wasn't one. So that led me to reconsider the criteria which selects the final result of the phase search. I'm still looking at CRC lengths because there's a broad and shallow optimum emerging for each message length. So far it looks like a 5 character message prefers a CRC of about 22 bits and 12 characters has the best success rate with 16 bits. Getting the right CRC length could add another 0.1 dB of coding gain. I'm working on finding smarter ways to test instead of brute force trials and making some progress. So far I can evaluate a message length over a range of CRCs in about an hour with 160 cores and 560 Gbyte RAM, at a cost less than 2 dollars. -- Paul Nicholson --