bugfixes 12


Release 12 Major Bug Fixes Major Bug Fixes for Release 12 This document describes major bug fixes for the following: MATLAB 6.0 Communications Blockset 2.0 Optimization 2.1 Signal Processing Toolbox Communications Toolbox 2.0 Wavelet Toolbox Data Acquisition Toolbox Symbolic Toolbox 2.1.2 Bug Fixes 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. Stereo sound: recording both channels Recording a stereo .wav file now works correctly. Previously, the recorded sound was distorted (missing a channel) on playback. Bitmaps stretched evenly when printing Stretched bitmaps are now stretched evenly when printing. Previously, one column of the stretched image would occasionally print at double width. Resize figure window using original units during printing The printing code now calls each figure's ResizeFcn (if the figure has one) with the figure units unchanged. Previously, ResizeFcn was called after setting the figure units to paper units. Colormaps correct when printing two or more images The color postscript driver now preserves the colors of multiple images (or axes) printed on same page. Previously, some incorrect colors may have appeared in the output. Print to metafile at higher than screen resolution The -r (resolution) flag now allows you to specify any resolution when printing to a metafile. Previously, you could only print to metafiles at your screen resolution. IFFT2 uses correct scale factor for N-dimensional inputs IFFT2 now applies the correct scale factor in the case where the input has 3 or more dimensions and the user supplies the optional mrows and mcols input arguments. Previously, IFFT2's output was off by a constant scale factor in this case. GRIDDATA more robust GRIDDATA now uses DELAUNAYN to compute its triangles instead of DELAUNAY. This is more robust in many cases. Previously, GRIDDATA used to return NaNs when used on certain cases. DELAUNAY reverts to its MATLAB 5.2 behavior A MATLAB 5.2 bug in DELAUNAY was fixed for MATLAB 5.3 but this caused different results in some cases. In some cases, the warning "Degenerate case: collinear points. Possible incorrect triangulation." was issued. A modification to this bug fix returns the MATLAB 5.2 answer in MATLAB 6.0. INTERP1(X,Y,XI,'cubic') no longer calls 'spline' method on irregularly spaced data INTERP1(X,Y,XI,'cubic') now calls 'pchip' and returns cubic interpolation even when the data is not equally spaced. Previously, INTERP1 used to call 'spline' when the data was not equally spaced. The old behavior is still accessible through INTERP1(X,Y,XI,'v5cubic'). DBLQUAD no longer accepts a trace argument DBLQUAD used to accept a trace argument, ostensibly in order to pass it on to quad. This was simply a placeholder and had no effect on the function, so it was removed. ODE solvers produce output at all time points specified in TSPAN. SOLVER(ODEFUN,TSPAN,Y0) called with a vector TSPAN now evaluates the solution at all time points specified in TSPAN. Previously, due to rounding errors, the solution was not always evaluated at the last point of TSPAN. Figure property KeyPressFcn The figure property KeyPressFcn now generates an event for all keys pressed. Previously, modifier keys (such as Control and Esc) did not generate an event to execute the KeyPressFcn callback. 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: Eye and scatter diagrams Continuous-time voltage-controlled oscillator Passband modulators and demodulators CPM modulators and demodulators Multipath Rayleigh Fading Channel Rician Fading Channel 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 " \ ". QUADPROG and LINPROG: empty f vector assumes f=zeros(n,1). In calls such as     QUADPROG(H,f,A,b) or     LINPROG(f,A,b) if f = [], f is treated as if f = zeros(n,1). Previously, f = [] would sometimes cause poor solutions or incorrect messages about lack of convergence. QUADPROG iterates no more than 'MaxIter' iterations. QUADPROG will iterate no more than the value of 'MaxIter'. Previously, QUADPROG would iterate up to the value of 'MaxIter' + 1 iterations. LINPROG: option 'Display' set to 'off' suppresses all messages. Setting 'Display' to 'off' in the options passed to LINPROG now suppresses all messages. Previously, messages about exit conditions were sometimes printed. FSOLVE sets the EXITFLAG output argument correctly when 'Display' is 'off' . When 'Display' is set to 'off', the EXITFLAG output argument from FSOLVE is set correctly. Previously, the EXITFLAG would sometimes have the incorrect value. LSQLIN: memory usage reduced in medium-scale algorithm. LSQLIN with 'LargeScale' set to 'off' uses less memory by using an "economy-sized" QR factorization when possible. Previously, if the first argument was a large m-by-n matrix where m>>n, an out of memory message was generated. It is still possible to have a large enough matrix that the out of memory message is generated, but "large enough" is bigger than it was before. FMINUNC, LSQCURVEFIT, and LSQNONLIN line search algorithms no longer use " \ ". Line search algorithms for FMINUNC, LSQNONLIN, and LSQCURVEFIT avoid divide by zero messages. Previously, the algorithms used backslash (" \ ") in such a way that extraneous divide by zero warnings were sometimes printed to the screen.   lpc now returns the prediction error variance correctly The error variance is computed based on the correctly scaled auto-correlation sequence (the biased estimate). fircls correctly handles frequency steps bigger than 0.01 The fircls function no longer produces the warning "Empty matrix multiplication with unequal inner dimensions" when the frequency step is bigger than 0.01. Made remez more robust remez no longer generates the warning "Subscript indices must be integer values". Improved help for hilbert Help for hilbert now states that when the input is complex, only the real part is used. Also, hilbert generates a warning if the input is complex. AR spectral estimation methods calculate the one-sided PSD The power spectral estimation (PSD) functions pburg, pcov, pmcov, and pyulear now calculate the one-sided PSD. pmtm now computes one-sided and two-sided PSD The power spectral estimation (PSD) function pmtm now accepts an optional string to specify one-sided or two-sided PSD. Improved handling of input string flag to ss2sos ss2sos now correctly allows the direction flag string to be specified as either the 5th or 6th input argument. tf2latc correctly normalizes transfer function tf2latc now correctly normalizes the numerator and denominator when the leading coefficient of the denominator is not equal to one. 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: 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 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.       Number of colors used in the Continous Wavelet 1-D tool The maximum number of colors available is no longer set, but determined based on platform. Number of axes available to view The View Axes palette (formerly labeled, Zoom Axes) is now updated with the correct number of pushbuttons after preforming a 2-D analysis. Correct wavelet family in Cascade Algorithm demo The demo now uses the correct family to approximate the wavelet function. 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 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: slope = ai.Channel(1).NativeScaling; intercept = ai.Channel(1).NativeOffset; data = slope*nativeData(:,1) + intercept; Daqhwinfo 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. 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 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: Warning: Engine Block Size is small. Check SamplesPerTrigger. Starting may lock up the machine. 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 The UserData information is not returned from a .daq file. Putdata The BitsPerSample, InputRange, SensorRange and UnitsRange properties should not be modified after calling PUTDATA. A channel cannot be added after calling PUTDATA. Adaptors - Nidaq 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. The TriggerChannel for National Instruments 61110 and 61111 boards is always the first channel in the channel array. 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. 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. 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. 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. 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. 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 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. 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. 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. 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. The first channel in the TriggerChannel property will be used to trigger the object. 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. Channels must be added in increasing order and a channel array cannot contain repeated channels. 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. 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 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].

Wyszukiwarka

Podobne podstrony:
bugfixes
bugfixesp1

więcej podobnych podstron