Communications Toolbox 2.0 Major Bug Fixes

VITERBI is slow and does not decode correctly

VITERBI has been replaced by a new function, VITDEC, which is much faster and decodes correctly.

DDEMOD and DDEMODCE do not produce correct symbol error rates

DDEMOD and DDEMODCE now produce the optimal symbol error rate in AWGN for PSK, ASK, QASK (QAM), FSK, and noncoherent FSK.

DMOD and DMODCE generate incorrect waveform for MSK and FSK

DMOD and DMODCE now generate the correct waveform for MSK and FSK.

GFADD, GFSUB, GFDIV, GFMUL, GFCONV and GFDECONV return incorrect answers

GFADD, GFSUB, GFDIV, GFMUL, GFCONV and GFDECONV have been improved in the following ways:

GFMINPOL returns incorrect answers when first input is -Inf or when p>2.  The function also sometimes crashes

GFMINPOL now returns the correct answers and does not crash.

GFPLUS and RSENCODE returns incorrect answers for negative inputs

GFPLUS now returns correct answers for negative inputs.  This fix also allows RSENCODE to return correct results.

GFLINEQ returns incorrect answers in prime Galois fields of order greater than 2

GFLINEQ now solves linear equations in prime Galois fields of order greater than 2.

GFPRIMDF produces "out of memory" messages for degrees higher than 24

GFPRIMDF now uses less memory and can find primitives of degrees greater than 24.  However, this calculation will take considerable time.

DECODE using the cyclic decoder option does not decode (23,12) Golay code correctly

The cyclic decoder now decodes the (23,12) Golay code correctly.

GFPRIMFD finds incorrect primitive polynomial

GFPRIMFD finds the correct primitive polynomial for the given Galois field.

GFTUPLE returns incorrect answers when m=1

GFTUPLE  now returns the correct answers when m=1.

GFPRIMCK, GFTRUNC, GFADD and GFFILTER causes segmentation violations

GFPRIMCK, GFTRUNC, GFADD and GFFILTER do not cause segmentation violations.

GFPRIMCK returns incorrect answers if p > 2 or inputs are large.

GFPRIMCK correctly determines if a polynomial is irreducible and/or primitive.

DECODE incorrectly decodes block codes

DECODE now correctly decodes block codes using either the [I P] or [P I] standard forms of the generator and parity-check matrices.

RCOSFLT does not correctly filter and upsample the input signal

RCOSFLT now applies the correct raised-cosine filter type and fully filters and upsamples the input signal.

EYESCAT is difficult to use and plots I and Q components together

EYESCAT has been replaced by new functions, EYEDIAGRAM and SCATTERPLOT, which are easier to use, plot I and Q components separately, and allow X-Y plots.

ADEMOD  ignores the phase offset parameter under the 'pm' option and has no sensitivity parameter under the 'fm' option

The phase offset now causes the correct phase offset in the demodulator.  New parameters were introduced to allow the sensitivity to be changed.

ADEMOD 'pm' option - sensitivity parameter is required and causes a dc offset

ADEMOD now has an optional parameter called 'VCOconst' that replaces sensitivity and does not cause a dc offset.

RANDINT hangs when the range is large

RANDINT no longer hangs for large numbers.

RANDBIT output is not random

RANDBIT has been replaced by a new function,  RANDERR, which generates random output and supports for seeding.