| Version 3.0 (R14) Communications Toolbox™ Software Release Notes Release Notes | ![]() |
This table summarizes what's new in Version 3.0 (R14):
| New Features and Changes | Version Compatibility Considerations | Fixed Bugs and Known Problems | Related Documentation at Web Site |
|---|---|---|---|
| Yes Details below | Yes—Details labeled as Compatibility Considerations, below. See also Summary. | Fixed bugs | No |
New features and changes introduced in this version are
Communications Toolbox has a graphical user interface (GUI) called BERTool that helps you analyze communication systems' bit error rate (BER) performance. To invoke the GUI, type
bertool
in the MATLAB Command Window.
The functions in the table below enable you to measure or visualize the bit error rate performance of a communication system.
| Function | Purpose |
|---|---|
| berawgn | Error probability for uncoded AWGN channels |
| bercoding | Error probability for coded AWGN channels |
| berconfint | BER and confidence interval of Monte Carlo simulation |
| berfading | Error probability for Rayleigh fading channels |
| berfit | Fit a curve to nonsmooth empirical BER data |
| bersync | Bit error rate for imperfect synchronization |
| distspec | Compute the distance spectrum of a convolutional code |
| semianalytic | Calculate bit error rate using the semianalytic technique |
The functions in the table below enable you to equalize a signal using a linear equalizer, a decision feedback equalizer, or a maximum-likelihood sequence estimation equalizer based on the Viterbi algorithm.
| Function | Purpose |
|---|---|
| cma | Construct a constant modulus algorithm (CMA) object |
| dfe | Construct a decision feedback equalizer object |
| equalize | Equalize a signal using an equalizer object |
| lineareq | Construct a linear equalizer object |
| lms | Construct a least mean square (LMS) adaptive algorithm object |
| mlseeq | Equalize a linearly modulated signal using the Viterbi algorithm |
| normlms | Construct a normalized least mean square (LMS) adaptive algorithm object |
| rls | Construct a recursive least squares (RLS) adaptive algorithm object |
| signlms | Construct a signed least mean square (LMS) adaptive algorithm object |
| varlms | Construct a variable step size least mean square (LMS) adaptive algorithm object |
The functions in the tables below enable you to model a Rayleigh fading channel, Rician fading channel, and binary symmetric channel.
| Function | Purpose |
|---|---|
| bsc | Model a binary symmetric channel |
| filter (for channel objects) | Filter signal with channel object |
| rayleighchan | Construct a Rayleigh fading channel object |
| reset | Reset channel object |
| ricianchan | Construct a Rician fading channel object |
The functions in the tables below enable you to perform block interleaving and convolutional interleaving, respectively.
Block Interleaving
| Function | Purpose |
|---|---|
| algdeintrlv | Restore ordering of symbols, using algebraically derived permutation table |
| algintrlv | Reorder symbols, using algebraically derived permutation table |
| deintrlv | Restore ordering of symbols |
| helscandeintrlv | Restore ordering of symbols in a helical pattern |
| helscanintrlv | Reorder symbols in a helical pattern |
| intrlv | Reorder sequence of symbols |
| matdeintrlv | Restore ordering of symbols by filling a matrix by columns and emptying it by rows |
| matintrlv | Reorder symbols by filling a matrix by rows and emptying it by columns |
| randdeintrlv | Restore ordering of symbols, using a random permutation |
| randintrlv | Reorder symbols, using a random permutation |
Convolutional Interleaving
| Function | Purpose |
|---|---|
| convdeintrlv | Restore ordering of symbols, using shift registers |
| convintrlv | Permute symbols, using shift registers |
| heldeintrlv | Restore ordering of symbols permuted using helintrlv |
| helintrlv | Permute symbols, using a helical array |
| muxdeintrlv | Restore ordering of symbols, using specified shift registers |
| muxintrlv | Permute symbols, using shift registers with specified delays |
The functions in the table below enable you to perform Huffman coding.
| Function | Purpose |
|---|---|
| huffmandeco | Huffman decoder |
| huffmandict | Generate Huffman code dictionary for a source with known probability model |
| huffmanenco | Huffman encoder |
The functions in the table below enable you to perform rectangular pulse shaping at a transmitter and matched filtering at the corresponding receiver.
| Function | Purpose |
|---|---|
| intdump | Integrate and dump |
| rectpulse | Rectangular pulse shaping |
These functions can be useful in conjunction with the modulation functions listed below.
The toolbox now includes the following utility functions, details of which are on the corresponding reference pages.
| Function | Purpose |
|---|---|
| noisebw | Equivalent noise bandwidth of a filter |
| qfunc | Q function |
| qfuncinv | Inverse Q function |
The functions in the tables below enable you to perform modulation and demodulation using analog and digital methods. Some of the functions support modulation types that Communications Toolbox did not previously support (DPSK and OQPSK). Other functions enhance and replace the older modulation and demodulation functions in Communications Toolbox. The new modulation and demodulation functions are designed to be easier to use than the older ones. Note, however, that the current set of modulation functions supports only analog passband and digital baseband modulation.
Analog Passband Modulation
| Function | Purpose |
|---|---|
| amdemod | Amplitude demodulation |
| ammod | Amplitude modulation |
| fmdemod | Frequency demodulation |
| fmmod | Frequency modulation |
| pmdemod | Phase demodulation |
| pmmod | Phase modulation |
| ssbdemod | Single sideband amplitude demodulation |
| ssbmod | Single sideband amplitude modulation |
Digital Baseband Modulation
| Function | Purpose |
|---|---|
| dpskdemod | Differential phase shift keying demodulation |
| dpskmod | Differential phase shift keying modulation |
| fskdemod | Frequency shift keying demodulation |
| fskmod | Frequency shift keying modulation |
| genqamdemod | General quadrature amplitude demodulation |
| genqammod | General quadrature amplitude modulation |
| modnorm | Scaling factor for normalizing modulation output |
| oqpskdemod | Offset quadrature phase shift keying demodulation |
| oqpskmod | Offset quadrature phase shift keying modulation |
| pamdemod | Pulse amplitude demodulation |
| pammod | Pulse amplitude modulation |
| pskdemod | Phase shift keying demodulation |
| pskmod | Phase shift keying modulation |
| qamdemod | Quadrature amplitude demodulation |
| qammod | Quadrature amplitude modulation |
The functions in the table below enable you to encode and decode BCH codes. These functions enhance and replace the older BCH coding functions in Communications Toolbox.
| Function | Purpose |
|---|---|
| bchdec | BCH decoder |
| bchenc | BCH encoder |
| bchgenpoly | Generator polynomial of BCH code |
When processing codes using these functions, you can control the primitive polynomial used to describe the Galois field containing the code symbols and the position of the parity symbols.
If your existing M-code performs modulation or demodulation, then you might want to update it to use the enhanced modulation or demodulation capabilities. Here are some important points to keep in mind:
The toolbox no longer supports digital passband modulation/demodulation. However, it supports digital baseband modulation/demodulation, which is usually preferable.
The toolbox no longer supports analog baseband modulation/demodulation. However, it supports analog passband modulation/demodulation.
The new suite of functions includes a different function for each supported modulation type, whereas the old suite of functions included a smaller number of functions that each supported many modulation types.
The new modulation/demodulation functions do not apply rectangular pulse shaping when modulating, and do not downsample when demodulating. Also, the new functions' syntax does not involve Fd, the sampling rate of the modulator input. To imitate the old functions' behavior, see the new rectpulse and intdump functions.
In most cases, the new functions use different kinds of input arguments to describe parameters of the modulation or demodulation scheme. The new sets of arguments are meant to be easier to use, but determining how to update code might not be obvious. To make the task easier, compare the documentation for the old and new functions and compare the functions' outputs for small or well-understood data sets.
If your existing M-code processes BCH codes, then you might want to update it to use the enhanced BCH capabilities. Here are some important points to keep in mind:
Use bchenc instead of bchenco and encode(...,'bch').
Use bchdec instead of bchdeco and decode(...,'bch').
Use bchgenpoly instead of bchpoly.
bchenc and bchdec use Galois arrays for the messages and codewords. To learn more about Galois arrays, see Representing Elements of Galois Fields in the Communications Toolbox User's Guide.
bchenc places (and bchdec expects to find) the parity symbols at the end of each word by default. To process codes in which the parity symbols are at the beginning of each word, use the string 'beginning' as the last input argument when you invoke bchenc and bchdec.
Converting Between Release 13 and Release 14 Representations of Code Data. To help you update your existing M-code that processes BCH codes, the example below illustrates how to encode data using the new bchenc function and the earlier encode and bchenco functions.
% Basic parameters for coding n = 15; k = 11; % Message length and codeword length w = 10; % Number of words to encode in this example % R13 binary vector format mydata_r13 = randint(w*k,1); % Long vector % R13 binary matrix format mydata_r13_mat = reshape(mydata_r13,k,w)'; % One message per row % R13 decimal format mydata_r13_dec = bi2de(mydata_r13_mat); % Convert to decimal. % Equivalent R14 Galois array format mydata_r14 = fliplr(gf(mydata_r13_mat)); % Encode the data using R13 methods. code_r13 = encode(mydata_r13,n,k,'bch'); code_r13_mat = encode(mydata_r13_mat,n,k,'bch'); code_r13_dec = encode(mydata_r13_dec,n,k,'bch/decimal'); code_r13_bchenco = bchenco(mydata_r13_mat,n,k); % Encode the data using R14 method. code_r14 = bchenc(mydata_r14,n,k); codeX = fliplr(double(code_r14.x)); % Retrieve from Galois array. % Check that all resulting codes are the same. % c1, c2, c3, and c4 should all be true. c1 = isequal(de2bi(code_r13_dec),code_r13_mat); c2 = isequal(reshape(code_r13,n,w)',code_r13_mat); c3 = isequal(code_r13_bchenco,code_r13_mat); c4 = isequal(code_r13_mat,codeX); % Compare R13 with R14.
The encode and decode functions no longer perform BCH encoding and decoding. Use the bchenc and bchdec functions instead.
The table below lists functions that are obsolete. Although they are included in Release 13 for backward compatibility, they might be removed in a future release. The second column lists functions that provide similar functionality. In some cases, the similar function requires different input arguments or produces different output arguments, compared to the original function.
| Obsolete Function | Similar Function in R14 |
|---|---|
| ademod | amdemod, fmdemod, pmdemod, ssbdemod |
| ademodce | Use passband demodulation instead: amdemod, fmdemod, pmdemod, ssbdemod |
| amod | ammod, fmmod, pmmod, ssbmod |
| amodce | Use passband modulation instead: ammod, fmmod, pmmod, ssbmod |
| apkconst | genqammod or pskmod for mapping; scatterplot for plotting |
| bchdeco | bchdec |
| bchenco | bchenc |
| bchpoly | bchgenpoly |
| ddemod | Use baseband demodulation instead: genqamdemod, pamdemod, pskdemod, qamdemod, fskdemod |
| ddemodce | genqamdemod, pamdemod, pskdemod, qamdemod, fskdemod |
| demodmap | genqamdemod, pamdemod, pskdemod, qamdemod |
| dmod | Use baseband modulation instead: genqammod, pammod, pskmod, qammod, fskmod |
| dmodce | genqammod, pammod, pskmod, qammod, fskmod |
| modmap | genqammod, pammod, pskmod, qammod for mapping; scatterplot for plotting |
| qaskdeco | qamdemod |
| qaskenco | qammod for mapping; scatterplot for plotting |
![]() | Version 3.0.1 (R14SP1) Communications Toolbox™ Software Release Notes | Version 2.1 (R13) Communications Toolbox™ Software Release Notes | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |