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:
-
Correct answers for prime and extension Galois fields, including prime
fields, GF(p), where p>2.
-
Correct handling of -Inf and negative values for extension Galois fields.
-
Enhanced help descriptions to better distinguish the purposes of the functions.
-
Improved input parameter checking.
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.