Major Bug Fixes for Release 12

This document describes major bug fixes for the following:

MATLAB 6.0 Major Bug Fixes

Click on a problem listed below to read how it has been fixed in Release 12.

Stereo sound: recording both channels
Bitmaps stretched evenly when printing
Resize figure window using original units during printing
Colormaps correct when printing two or more images
Print to metafile at higher than screen resolution
IFFT2 uses correct scale factor for N-dimensional inputs
GRIDDATA more robust
DELAUNAY reverts to its MATLAB 5.2 behavior
INTERP1(X,Y,XI,'cubic') no longer calls 'spline' method on irregularly spaced data
DBLQUAD no longer accepts a trace argument
ODE solvers produce output at all time points specified in TSPAN.
Figure property KeyPressFcn.

Communications Blockset 2.0 Major Bug Fixes

Click on a problem listed below to read how it has been fixed in Release 12.

Some blocks do not support Real-Time Workshop code generation
Some blocks are not compatible with the Simulink Accelerator
The digital modulators produce continuous-time outputs and process datain continuous time
The M-FSK demodulators use incorrect correlation
The complex Rayleigh fading channels have incorrect characteristics
Probabilities of ones in output from the Binary Vector Noise Generatorare incorrect
Gaussian Noise Generator uses wrong sample time
PN Sequence Generator repeats its output
Eye and scatter plot blocks produce an error if you close the figure windowand run the simulation again
Scrambler and Descrambler give incorrect results for non-base-2 calculations
Scrambler and Descrambler ignore all elements other than the first in acalculation base vector
Scrambler and Descrambler negate the results when the initial states containnegative numbers
The AWGN Channel produces all-zero outputs when given continuous-time inputsin both of the Signal to noise ratio (Es/No and SNR) modes
Segmentation violation when blocks are given invalid or empty parameters


Some blocks do not support Real-Time Workshop code generation

You can now generate code with all blocks using Real-Time Workshop, except:

Some blocks are not compatible with the Simulink Accelerator

All blocks, except the analog passband modulators and demodulators, are now compatible with the Simulink Accelerator.

The digital modulators produce continuous-time outputs and process datain continuous time

All of the digital modulators and demodulators have been rewritten and they now process data in discrete time and produce discrete-time outputs.

The M-FSK demodulators use incorrect correlation

The M-FSK demodulators now do a complex correlation of the input.

The complex Rayleigh fading channels have incorrect characteristics

The noise produced by the Rayleigh fading channels did not match with what is specified in the mask dialog.  The two complex Rayleigh fading channels have now been replaced by the Multipath Rayleigh Fading Channel, which models real-world mobile communications effects.

Probabilities of ones in output from the Binary Vector Noise Generatorare incorrect

The probabilities of ones in the output of the Binary Vector Noise Generator now match what is specified in the mask.

Gaussian Noise Generator uses wrong sample time

The Gaussian Noise Generator now uses the correct sample time as what is specified in the mask.

PN Sequence Generator repeats its output

The PN Sequence Generator has been rewritten and now gives the correct results.

Eye and scatter plot blocks produce an error if you close the figure windowand run the simulation again

You can now run the simulation again after you close the figure window.

Scrambler and Descrambler give incorrect results for non-base-2 calculations

Scrambler and Descrambler now perform properly for any integer calculation base greater than 1.

Scrambler and Descrambler ignore all elements other than the first in acalculation base vector

Scrambler and Descrambler now accept only a scalar calculation base.

Scrambler and Descrambler negate the results when the initial states containnegative numbers

Scrambler and Descrambler now accept only nonnegative numbers as initial states.

The AWGN Channel produces all-zero outputs when given continuous-time inputsin both of the Signal to noise ratio (Es/No and SNR) modes

The AWGN Channel now does not accept continuous-time input for both of the Signal to noise ratio (Es/No and SNR) modes.

Segmentation violation when blocks are given invalid or empty parameters

All blocks now produce an error when given invalid or empty parameters.

Optimization 2.1 Major Bug Fixes

Click on a problem listed below to read how it has been fixed in Release 12.

QUADPROG and LINPROG: empty f vector assumes f=zeros(n,1).
QUADPROG iterates no more than 'MaxIter' iterations.
LINPROG: option 'Display' set to 'off' suppresses all messages.
FSOLVE sets the EXITFLAG output argument correctly when 'Display' is 'off' .
LSQLIN: memory usage reduced in medium-scale algorithm.
FMINUNC, LSQCURVEFIT, and LSQNONLIN line search algorithms no longer use " \ ".

Signal Processing Toolbox

Click on a problem listed below to read how it has been fixed in Release 12.


xcorr computes cross-correlation correctly
lpc now returns the prediction error variance correctly
fircls correctly handles frequency steps bigger than 0.01
Made remez more robust
Improved help for hilbert
Fixed axis labeling in freqz
AR spectral estimation methods calculate the one-sided PSD
pmtm now computes one-sided and two-sided PSD
Improved handling of input string flag to ss2sos
tf2latc correctly normalizes transfer function

Communications Toolbox 2.0 Major Bug Fixes

Click on a problem listed below to read how it has been fixed in Release 12.

VITERBI is slow and does not decode correctly
DDEMOD and DDEMODCE do not produce correct symbol error rates
DMOD and DMODCE generate incorrect waveform for MSK and FSK
GFADD, GFSUB, GFDIV, GFMUL, GFCONV and GFDECONV return incorrect answers
GFMINPOL returns incorrect answers when first input is -Inf or when p>2. The function also sometimes crashes
GFPLUS and RSENCODE returns incorrect answers for negative inputs
GFLINEQ returns incorrect answers in prime Galois fields of order greaterthan 2
GFPRIMDF produces "out of memory" messages for degrees higher than 24
DECODE using the cyclic decoder option does not decode (23,12) Golay codecorrectly
GFPRIMFD finds incorrect primitive polynomial
GFTUPLE returns incorrect answers when m=1
GFPRIMCK, GFTRUNC, GFADD and GFFILTER causes segmentation violations
GFPRIMCK returns incorrect answers if p > 2 or inputs are large.
DECODE incorrectly decodes block codes
RCOSFLT does not correctly filter and upsample the input signal
EYESCAT is difficult to use and plots I and Q components together
ADEMOD  ignores the phase offset parameter under the 'pm' option andhas no sensitivity parameter under the 'fm' option
ADEMOD 'pm' option - sensitivity parameter is required and causes a dcoffset
RANDINT hangs when the range is large
RANDBIT output is not random

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 greaterthan 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 codecorrectly

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 andhas 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 dcoffset

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.
 
 
 

Wavelet Toolbox

Click on a problem listed below to read how it has been fixed in Release 12.

Histograms for a level 1 analysis
Number of colors used in the Continous Wavelet 1-D tool
Number of axes available to view
Correct wavelet family in Cascade Algorithm demo

Data Acquisition Toolbox

Click on a problem listed below to read how it has been fixed in Release 12.

New Channel Properties
Daqhwinfo
Properties
Data Logging
Putdata
Adaptors - Nidaq
Adaptors - Hpe1432

New Channel Properties

  1. Two read-only properties, NativeOffset and NativeScaling, have been added to analog input and analog output channels. These properties can be used to convert data in native format to doubles with the formula:

Daqhwinfo

  1. The ConversionExtraScaling and ConversionOffset fields have been removed from daqhwinfo('adaptor') where adpator is winsound, nidaq or hpe1432. The Channel properties NativeOffset and NativeScaling should be used to convert data in native format to doubles.
  2. If an older version of the comcat.dll is on your computer, DAQHWINFO with no input arguments will not work. However, DAQHWINFO with input arguments will work and the rest of the toolbox will work. For additional information, please refer to: http://www.mathworks.com/support/solutions/v5/23852.shtml

Properties

  1. When the SamplesPerTrigger property is set to a small number and the TriggerRepeat property is set to a large number, and the analog input object is started, your machine may lock up. This will generally occur when SampleRate/SamplesPerTrigger is greater than 1000 and the TriggerRepeat property is greater than 1000. If the analog input object's properties follow the characteristics described above, you will receive the following warning message: As a workaround, the SamplesPerTrigger property should be set to the number of samples you would like to acquire and TriggerRepeat should be set to 0.

Data Logging

  1. The UserData information is not returned from a .daq file.

Putdata

  1. The BitsPerSample, InputRange, SensorRange and UnitsRange properties should not be modified after calling PUTDATA.
  2. A channel cannot be added after calling PUTDATA.

Adaptors - Nidaq

  1. When running at a sampling rate of 5000 or higher and with a TransferMode value of Interrupt, there may be a considerable decline in system performance.
  2. The TriggerChannel for National Instruments 61110 and 61111 boards is always the first channel in the channel array.
  3. It is recommended that the SampleRate property is the last property set with SETVERIFY before starting since the SampleRate value is dependent upon the number of channels and the ChannelSkew property value.
  4. When using the 1200 series hardware, channels must be added in reverse order. If invalid channels are given, the data acquisition engine will create the number of requested channels with valid hardware ids. The hardware ids used can be determined from the object's display or from the channel's HwChannel property value.
  5. Only one digital I/O object should be pointing to the same hardware. To perform separate tasks on the hardware lines, all the necessary lines should be added to the same object and separate line groups should be created to perform the separate tasks.
  6. All channels contained within an analog input object must have all unipolar InputRange property values or all bipolar InputRange property values. A channel array cannot contain channels with a unipolar InputRange and channels with a bipolar InputRange.
  7. When using mux boards with National Instruments, the channels must be added in a specific order. For additional information, please refer to the online help for addmuxchannel.
  8. The PCI-1200 does not work properly with sample rates below 30-40 Hz if the TransferMode is set to SingleDMA. If the TransferMode value is Interrupt, the PCI-1200 works properly.

Adaptors - Hpe1432

  1. For the HP E1432A and HP E1433A boards with the Arbitrary Source Output option, if an analog input object is created and started, the source will also be started. Due to this behavior of the hardware, a TriggerType of Manual should not be used for the HP E1432A and HP E1433A hardware with the Arbitrary Source Output option.
  2. For analog output objects, it is recommended that the SampleRate or Span property is the last property set with SETVERIFY before starting since the SampleRate and Span values are dependent upon the number of channels contained in the analog output object.
  3. The first time an analog input or analog output object is connected to the HP hardware, a list of available HP hardware is determined and all the hardware is initialized. Due to an HP limitation, this list is not updated during a MATLAB session. Therefore, if you install a new board or remove an existing board while MATLAB is running, MATLAB will not see the new configuration and the old configuration will still be used. To have MATLAB see the new configuration, you must restart MATLAB.
  4. Due to an HP limitation, the minimum SampleRate on the HP E1433A is 20Hz and the minimum Span on the HP E1433A is 7.8125.
  5. The first channel in the TriggerChannel property will be used to trigger the object.
  6. The HP E1434A channels 1 and 2 and channels 3 and 4 share a 56000 DSP. Therefore, certain operational aspects will be coupled between the channels in each pair. For example, both channels in each pair will have the same RampRate.
  7. Channels must be added in increasing order and a channel array cannot contain repeated channels.
  8. All hardware is initialized the first time an HP object is created. When all HP objects are deleted from the data acquisition engine, all the hardware is closed.
  9. It is recommended that if an object is created which spans multiple boards, that the object is created with the logical addresses listed in the same order in which they were found. The DAQHWINFO command with no input arguments will list the InstalledBoardIds in the order in which the logical addresses were found.

Symbolic Toolbox 2.1.2 Bug Fixes

Click on a problem listed below to read how it has been fixed in Release 12.

Improved handling of control-c
SYM is more robust
EQ produces a logical array
SYMVAR produces a column-shaped output

Improved handling of control-c

Pressing cntrl-c to stop execution during a symbolic computation no longer causes a segmentation violation.

SYM is more robust

SYM is now more robust at parsing its inputs. In earlier releases, there were cases where SYM would create invalid matrices that would produce error messages when these matrices were used.

EQ produces a logical array

EQ, the overloaded function used when checking for equality with ==, now returns a logical array. In earlier releases a non-logical array was returned.

SYMVAR produces a column-shaped output

SYMVAR now always produces a column cell array. In earlier releases, a row was sometimes produced.


Major Bug Fixes From Recent Releases

This document describes major bug fixes for the following:

MATLAB 5.3.1 Major Bug Fixes

Click on a problem listed below to read how it has been fixed in a previous release.

Invisible figures cause focus changes to be slow (UNIX only)
Invalid movies caused a segmentation violation
getframe sometimes fails to capture uicontrols (UNIX only)
getframe fails with truecolor using less than 24 bits (UNIX only)
Memory leaked when converting arrays from MATLAB to Java
Using CAT with cell or struct arrays may result in a crash
MATLAB may crash while reading a corrupt MAT-file
Incorrect results when doing complex division in array initialization
Displaying structures with long field names can cause an assertion
Colon indexing with sparse cell arrys can cause an assertion
Error occurs when using GUIDE Control Panel
Old P-files may cause crash when displaying cell arrays or structures
MATLAB may crash on HP systems with HP's Y2K patch (HP700 only)
MATLAB may fail to start when running on IRIX 6.5 (SGI/SGI64 only)

Invisible figures cause focus changes to be slow (UNIX only)

Creating invisible figure windows caused Matlab to thrash the X server during focus changes. This his been fixed.

Invalid movies caused a segmentation violation

Previously, calling the movie command with a movie array in which one or more elements were unitialized caused a segmentation violation. This now causes an error.

getframe sometimes fails to capture uicontrols (UNIX only)

The getframe function now always captures uicontrols.

getframe fails with truecolor using less than 24 bits (UNIX only)

The getframe function now supports truecolor XWindows visuals using fewer than 24 bits.

Memory leaked when converting arrays from MATLAB to Java

Extensive use of the MATLAB/Java interface could result in exhaustion of system memory. This memory leak has been plugged.

Using CAT with cell or struct arrays may result in a crash

Certain usages of CAT with cell or struct arrays or empty arrays can result in a segmentation violation. This regression from MATLAB 5.2 has been corrected.

MATLAB may crash while reading a corrupt MAT-file

It is possible to encounter a segmentation violation when reading a corrupted MAT-file due to misplaced error check. This problem has been corrected.

Incorrect results when doing complex division in array initialization

A constant expression involving division by an imaginary number (e.g. 3/i) produced random results when used in forming an array.

Displaying structures with long field names can cause an assertion

Displaying structures with long field names can cause an "Attempt to free previously freed memory" assertion due to a flow-of-control error. This problem has been corrected.

Colon indexing with sparse cell arrys can cause an assertion

An expression of the form b{1} = sparse(eye(4)); b{1}(1,1) would cause an "Attempt to free previously freed memory" assertion. This problem has been fixed.

Error occurs when using GUIDE Control Panel

Opening the GUIDE Control Panel on Microsoft Windows with no open Figure windows can cause an error under certain circumstances. This problem has been corrected.

Old P-files may cause crash when displaying cell arrays or structures

Cell array or structure expressions that display their results (i.e., are not terminated with a semicolon) may result in a crash when run in MATLAB 5.3 if they were saved in a P-file with MATLAB 5.2 or earlier.

MATLAB may crash on HP systems with HP's Y2K patch (HP700 only)

A symbol name conflict between one of our third party libraries and one of HP's system libraries can cause MATLAB to crash when creating new files. This issue has been resolved via an updated library.

MATLAB may fail to start when running on IRIX 6.5 (SGI/SGI64 only)

IRIX 6.5 no longer ships with certain math libraries that MATLAB depends on. The missing libraries are now provided as part of the MATLAB distribution in $matlab/sys/os/sgi[64].