Etter, D M. Computing Environments for Digital Signal Processing The electrical Engineering Handbook Ed. Richard C. Dorf Boca raton crc Press llc. 2000
Etter, D.M. “Computing Environments for Digital Signal Processing” The Electrical Engineering Handbook Ed. Richard C. Dorf Boca Raton: CRC Press LLC, 2000
21 Computing environments for Digital Signal processing 21.1 MATLAB Environment 21.2 Example 1: Signal Analysis Delores m. etter 21.3 Example 2: Filter Design and Analysis University of Colorado 21.4 Example 3: Multirate Signal Processing Computing environments provided by many software tools and packages allow users to design, simulate, and implement digital signal processing(DSP) techniques with speed, accuracy, and confidence. with access to libraries of high-performance algorithms and to advanced visualization capabilities, we can design and analyze systems using the equations and notations that we use to think about signal processing problems; we do not have to translate the equations and techniques into a different notation and syntax. The graphics interface provides an integral part of this design environment, and is accessible from any point within our algorithms within this type of computing environment, we are more productive. But, even more important, we develop ter solutions because we have so many more tools for analyzing solutions, for experimenting with"what if questions, and for developing extensive simulations to test our solutions. To illustrate the power of these environments,we present a brief description of MATLAB, one of the most popular technical computing environments in both industry and academia, and then present three examples that use MATLaB 21.1 MATLAB Environment MATLAB is an integrated technical environment designed to provide accelerated DSP design capabilities. In addition to the basic software package that contains powerful functions for numeric computations, advanced graphics and visualization capabilities, a high-level programming language, and tools for designing graphical user interfaces( GUD), MATLAB also provides a number of application-specific toolboxes that contain special ized libraries of functions. The discussion and examples that follow in this article use capabilities from the Signal Processing Toolbox. Other toolboxes that are applicable to solving signal processing problems include the following: Control Systems, Frequency Domain System Identification, Fuzzy Logic, Higher-Order Spectral Analysis, Image Processing, LMI (Linear Matrix Inequality)Control, Model Predictive Control, u-Analysis and Synthesis, Neural Networks, Optimization, Partial Differential Equations, QFT(Quantitation Feedback Theory) Control, Robust Control, Signal Processing, Splines, Statistics, Symbolic Math, System Identification, and Wavelets An interactive environment for modeling, analyzing, and simulating a wide variety of dynamic systems is also provided by MATLAB through SIMULINK--a graphical user interface designed to construct block diagram c 2000 by CRC Press LLC
© 2000 by CRC Press LLC 21 Computing Environments for Digital Signal Processing 21.1 MATLAB Environment 21.2 Example 1: Signal Analysis 21.3 Example 2: Filter Design and Analysis 21.4 Example 3: Multirate Signal Processing Computing environments provided by many software tools and packages allow users to design, simulate, and implement digital signal processing (DSP) techniques with speed, accuracy, and confidence. With access to libraries of high-performance algorithms and to advanced visualization capabilities, we can design and analyze systems using the equations and notations that we use to think about signal processing problems; we do not have to translate the equations and techniques into a different notation and syntax. The graphics interface provides an integral part of this design environment, and is accessible from any point within our algorithms. Within this type of computing environment, we are more productive. But, even more important, we develop better solutions because we have so many more tools for analyzing solutions, for experimenting with “what if” questions, and for developing extensive simulations to test our solutions. To illustrate the power of these environments, we present a brief description of MATLAB, one of the most popular technical computing environments in both industry and academia, and then present three examples that use MATLAB. 21.1 MATLAB Environment MATLAB is an integrated technical environment designed to provide accelerated DSP design capabilities. In addition to the basic software package that contains powerful functions for numeric computations, advanced graphics and visualization capabilities, a high-level programming language, and tools for designing graphical user interfaces (GUI), MATLAB also provides a number of application-specific toolboxes that contain specialized libraries of functions. The discussion and examples that follow in this article use capabilities from the Signal Processing Toolbox. Other toolboxes that are applicable to solving signal processing problems include the following: Control Systems, Frequency Domain System Identification, Fuzzy Logic, Higher-Order Spectral Analysis, Image Processing, LMI (Linear Matrix Inequality) Control, Model Predictive Control, m-Analysis and Synthesis, Neural Networks, Optimization, Partial Differential Equations, QFT (Quantitation Feedback Theory) Control, Robust Control, Signal Processing, Splines, Statistics, Symbolic Math, System Identification, and Wavelets. An interactive environment for modeling, analyzing, and simulating a wide variety of dynamic systems is also provided by MATLAB through SIMULINK—a graphical user interface designed to construct block diagram Delores M. Etter University of Colorado
models using"drag-and-drop"operations. Simulations of the block diagrams can be used to test a number of what-if"questions. Special purpose block libraries are available for DSP algorithm development, and include a DSP Blockset, a Fixed-Point Blockset, and a Nonlinear Control Design Blockset In order to bridge the gap between interactive prototyping and embedded systems, MATLAB has developed a compiler to generate optimized C code from MATLAB code. Automatic C code generation eliminates manual coding and algorithm recoding, thus providing a hierarchical framework for designing, simulating, and pro totyping DSP solutions. 21.2 Example 1: Signal analys One of the most common DSP applications is the analysis of signals that have been collected from experiments or from a physical environment. These signals are typically stored in data files, and often need preprocessing steps applied to them before we are able to extract the desired information Preprocessing can include removing means or linear trends, filtering noise, removing anomalies, and interpolating for missing data. Once the data ly to analyze, we are usually interested in statistical information(mean, median, variance, autocorrelation, etc. )along with an estimate of the distribution of the values(uniform, Gaussian, etc. ) The frequency content of a signal is also important to determine; if the signal is non-stationary, the frequency content needs to be determined using short time windows. To illustrate the use of MATLAB in computing some of the steps mentioned above, we use a speech signal collected at 8 kHz. After loading the signal from a data file, we will remove any linear trend that might have been introduced in the collection process(this also removes any constant term). Figure 21.1 contains a plot of the signal which clearly shows the time-varying nature of the signal. Figure 21.2 contains a histogram of the distribution of the values, showing that the values are closer to a Laplacian or Gamma distribution than to a uniform or Gaussian distribution Figure 21.3 contains a spectogram which displays the frequency content of he signal computed using short overlapping time windows. The MATLAB code that generated these plots is shown in Fig. 21.4. This code illustrates some of the important characteristics of high-level computational tools. The fundamental data structure is a matrix, and all operations and functions are designed to work with matrices Hence, loops are rarely necessary, and thus the code is generally much shorter, more readable, and more self- documenting. Speech Signal FIGURE 211 Distribution of Speech Values 010.15 FIGURE 21.2 c 2000 by CRC Press LLC
© 2000 by CRC Press LLC models using “drag-and-drop” operations. Simulations of the block diagrams can be used to test a number of “what-if” questions. Special purpose block libraries are available for DSP algorithm development, and include a DSP Blockset, a Fixed-Point Blockset, and a Nonlinear Control Design Blockset. In order to bridge the gap between interactive prototyping and embedded systems, MATLAB has developed a compiler to generate optimized C code from MATLAB code. Automatic C code generation eliminates manual coding and algorithm recoding, thus providing a hierarchical framework for designing, simulating, and prototyping DSP solutions. 21.2 Example 1: Signal Analysis One of the most common DSP applications is the analysis of signals that have been collected from experiments or from a physical environment. These signals are typically stored in data files, and often need preprocessing steps applied to them before we are able to extract the desired information. Preprocessing can include removing means or linear trends, filtering noise, removing anomalies, and interpolating for missing data. Once the data is ready to analyze, we are usually interested in statistical information (mean, median, variance, autocorrelation, etc.) along with an estimate of the distribution of the values (uniform, Gaussian, etc.). The frequency content of a signal is also important to determine; if the signal is non-stationary, the frequency content needs to be determined using short time windows. To illustrate the use of MATLAB in computing some of the steps mentioned above, we use a speech signal collected at 8 kHz. After loading the signal from a data file, we will remove any linear trend that might have been introduced in the collection process (this also removes any constant term). Figure 21.1 contains a plot of the signal which clearly shows the time-varying nature of the signal. Figure 21.2 contains a histogram of the distribution of the values, showing that the values are closer to a Laplacian or Gamma distribution than to a uniform or Gaussian distribution. Figure 21.3 contains a spectogram which displays the frequency content of the signal computed using short overlapping time windows. The MATLAB code that generated these plots is shown in Fig. 21.4. This code illustrates some of the important characteristics of high-level computational tools. The fundamental data structure is a matrix, and all operations and functions are designed to work with matrices. Hence, loops are rarely necessary, and thus the code is generally much shorter, more readable, and more selfdocumenting. FIGURE 21.1 FIGURE 21.2
Speech Signal 2000 FIGURE 21.3 s These MATLAB statements read and process a speech file clear, clf 8 clear memory and figure window load speech. dat 8 load speech data file 8 specify sampling time detrend(speech); 8 remove mean and linear trend fram speech N B determine the mmber of speech points t=(0:N-1)*r; 8 specify time sigmal in seconds 8 plot speech signal ubplot(2,1,1), plot(t, s),title(' Speech Signal.) xlabel(Time, s'), gria, pause g determine and plot histogram of speech sigmal using 25 bins 各 clf subplot(2, 1,1), hist(s, 25), title(Distributian of Speech Values),grid, pause plot a spectogram of the signal using windows of 256 pts specgram(s, 256, 8000),title( Speech Signal),pause FIGURE 21.4 21.3 Example 2: Filter Design and analysis MATLAB gives us a number of different options for designing both IIR and FIR digital filters. We can design classical IIR filters(Butterworth, Chebyshev type L, Chebyshev type II, and elliptic) that are lowpass, highpass, andpass, or bandstop filters. We can also use other techniques, such as the Yule-Walker technique, to desig IIR filters with arbitrary passbands. Several techniques allow us to design FIR filters using windowed least squares techniques. The Parks-McClellan algorithm uses the Remez exchange algorithm to design filters with c 2000 by CRC Press LLC
© 2000 by CRC Press LLC 21.3 Example 2: Filter Design and Analysis MATLAB gives us a number of different options for designing both IIR and FIR digital filters. We can design classical IIR filters (Butterworth, Chebyshev type I, Chebyshev type II, and elliptic) that are lowpass, highpass, bandpass, or bandstop filters. We can also use other techniques, such as the Yule-Walker technique, to design IIR filters with arbitrary passbands. Several techniques allow us to design FIR filters using windowed least squares techniques. The Parks-McClellan algorithm uses the Remez exchange algorithm to design filters with FIGURE 21.3 FIGURE 21.4
Comparison of R and FIR Filters 100015002000250030003500 FIGURE 21.5 Group Delay· IIR Filter 50020002500300035004000 roup Delay· FIR Filter FIGURE 21.6 an optimal fit to an arbitrary desired response. Once a filter is designed, it can be easily translated to other forms, including transfer functions, impulse responses, and poles/zeros. Assume that we are going to analyze the dial tones from a telephone network that uses dual-tone multifre quency(DTMF)signaling. In this system, pairs of tones are used to signal each character on the telephone eypad. For example, the digit 1 is represented by tones at 697 Hz and 1209 Hz. All of the tones are between 697 Hz and 1633 Hz. Thus, before analyzing the signal to determine the two tones that it contains, we might want to filter out all signals outside of the band that contains all possible tones in order to increase the signal to-noise ratio. In this example, we design a bandpass filter with a passband between 500 Hz and 1800 Hz. Designs are compared using an elliptic IIR filter of order 8 and a causal FIR filter of order 70. Figure 21.5 ontains magnitude plots of the two filters, and clearly shows the characteristics of the filters. The elliptic filter has sharp transitions with ripple in the passband and in the stopband, while the FIR filter(which also uses a Hamming window)is flat in the passband and the stopband, but has wider transition bands. Figure 21.6 contains the group delays for the two filters. The FiR filter has a linear phase response, and thus the group delay is a fixed value of 35 samples; the IIR filter has a nonlinear phase, but has a relatively constant delay in the passband Figure 21.7 contains the corresponding impulse responses, illustrating the finite impulse response of the FIR filter and the infinite impulse response of the IIR filter. Figure 21.8 contains the pole/zero plot for the IIr solution. The code for performing the designs and generating all the plots is shown in Fig. 21.9. c 2000 by CRC Press LLC
© 2000 by CRC Press LLC an optimal fit to an arbitrary desired response. Once a filter is designed, it can be easily translated to other forms, including transfer functions, impulse responses, and poles/zeros. Assume that we are going to analyze the dial tones from a telephone network that uses dual-tone multifrequency (DTMF) signaling. In this system, pairs of tones are used to signal each character on the telephone keypad. For example, the digit 1 is represented by tones at 697 Hz and 1209 Hz. All of the tones are between 697 Hz and 1633 Hz. Thus, before analyzing the signal to determine the two tones that it contains, we might want to filter out all signals outside of the band that contains all possible tones in order to increase the signalto-noise ratio. In this example, we design a bandpass filter with a passband between 500 Hz and 1800 Hz. Designs are compared using an elliptic IIR filter of order 8 and a causal FIR filter of order 70. Figure 21.5 contains magnitude plots of the two filters, and clearly shows the characteristics of the filters. The elliptic filter has sharp transitions with ripple in the passband and in the stopband, while the FIR filter (which also uses a Hamming window) is flat in the passband and the stopband, but has wider transition bands. Figure 21.6 contains the group delays for the two filters. The FIR filter has a linear phase response, and thus the group delay is a fixed value of 35 samples; the IIR filter has a nonlinear phase, but has a relatively constant delay in the passband. Figure 21.7 contains the corresponding impulse responses, illustrating the finite impulse response of the FIR filter and the infinite impulse response of the IIR filter. Figure 21.8 contains the pole/zero plot for the IIR solution. The code for performing the designs and generating all the plots is shown in Fig. 21.9. FIGURE 21.5 FIGURE 21.6
impulse Response.IIR Filter 000200040.006 0.012 Impulse Response- FIR Filter FIGURE 21.7 Poles/Zeros for lIA Filter Real part FIGURE 21. 8 21.4 Example 3: Multirate Signal Processing Given a signal that has been collected or computed using a process that eliminates or minimizes aliasing from components above the Nyquist frequency (one-half the sampling frequency), we have a great deal of flexibility in modifying the sampling rate. For example, if the frequency content of the signal is much lower than the Nyquist frequency, then the sampling rate can be reduced without losing any of the signal content. This ecimation"process allows us to compress the signal into a form that requires less memory requirements. Ar interpolation"process can be used to interpolate new data points between points of the decimated signal such a way that the frequency content of the new signal is essentially the same as the original signal. The decimation process requires a reduction of data points by an integer factor, M, such as a factor of 3. The c 2000 by CRC Press LLC
© 2000 by CRC Press LLC 21.4 Example 3: Multirate Signal Processing Given a signal that has been collected or computed using a process that eliminates or minimizes aliasing from components above the Nyquist frequency (one-half the sampling frequency), we have a great deal of flexibility in modifying the sampling rate. For example, if the frequency content of the signal is much lower than the Nyquist frequency, then the sampling rate can be reduced without losing any of the signal content. This “decimation” process allows us to compress the signal into a form that requires less memory requirements. An “interpolation” process can be used to interpolate new data points between points of the decimated signal in such a way that the frequency content of the new signal is essentially the same as the original signal. The decimation process requires a reduction of data points by an integer factor, M, such as a factor of 3. The FIGURE 21.7 FIGURE 21.8
8 These MATLAB statements desigm ard analyze IIR and FIR filter clear, cl 8 clear memory and figure window i specify sapling frequency ban=[500/40001800/4000] s specify passband in normalized frec 8 compute passband ripple 8 capute stopband ripple [Bl, Al] ellip(4, Rp, Rs, band); 8 design elliptic passband filter B2 firl(70, bena) g design causal FIR filter n, f]= frege(B1, A1, 512, Fs) s compute frequency content of filters [H, E]= fretz(B2, 1, 512, Fs) mag H= abs(H); magH2= abs(H 2): 8 caput tude of filters [gal, f]=grpdelay(Bl, Al, 512, Fs): 8 caput delay of filters [gd2, f] grpdelay (B2, 1, 512, Fs) 6 plot filter magnitudes subplot(2,1, 1), plot(f, abs(H1),f, abs(H2),--), xlabel(Frequency,Hz title('Camparisan of IIR and FIR Filters), grid, pause 多 B plot group dela ibplot (2,1,1),plot(f, gd1),title(Group y IIR Filter), grid, subplot(2, 1,2),plot(f, gd2),title(' Group FIR Filter xlabel( Frequency Hz), grid, pause 8 capute and plot ipulse responses clf [h,t]=impz(B1,A1,100,Fs); h2,t]=impz(B2,1,100,Fs}; subplot(2, 1, 1), stem(t, h1),title('Irpulse Response IIR Filter), grid. ubplot(2, 1, 2), stem(t, h2),title("Ipulse Response- FIR Filter),grid, xlabel("Time, s'),pause 6 determine and plot poles and zeros of IIR filter zplane(B1, A1), title('poles/Zeros for IIR Filter'),pause FIGURE 21.9 interpolation process requires that an integral number of points, L-1, be interpolated between existing points, such as interpolation of 5 new points between existing pairs of points. The decimation process increases a sampling interval by M, and the interpolation process decreases a sampling interval by a factor of L MATLAB ntains functions for decimation and interpolation, as well as a function for a resampling of a signal using a non-integer factor of P/Q where P and Q are integers Consider a signal that is one sinusoid modulated by another sinusoid. The signal has been sampled at a frequency chosen to provide efficient storage of the data. However, when plotting the data for further analysis, we want to interpolate by a factor of 8 so that the signal looks smoother. Therefore, we use the MATLAB interpolation function Figure 21.10 contains plots of the original and interpolated time signals. Figure 21.11 contains frequency plots to confirm that the interpolation did not significantly affect the frequency content. Figure 21.12 contains the MATLAB code for this process c 2000 by CRC Press LLC
© 2000 by CRC Press LLC interpolation process requires that an integral number of points, L-1, be interpolated between existing points, such as interpolation of 5 new points between existing pairs of points. The decimation process increases a sampling interval by M, and the interpolation process decreases a sampling interval by a factor of L. MATLAB contains functions for decimation and interpolation, as well as a function for a resampling of a signal using a non-integer factor of P/Q where P and Q are integers. Consider a signal that is one sinusoid modulated by another sinusoid. The signal has been sampled at a frequency chosen to provide efficient storage of the data. However, when plotting the data for further analysis, we want to interpolate by a factor of 8 so that the signal looks smoother. Therefore, we use the MATLAB interpolation function. Figure 21.10 contains plots of the original and interpolated time signals. Figure 21.11 contains frequency plots to confirm that the interpolation did not significantly affect the frequency content. Figure 21.12 contains the MATLAB code for this process. FIGURE 21.9
Orginal Time Signal 010020030040.050.060070080.090.1 Interpolated Time Signal 00010.020.030 050.060070.080090.1 FIGURE 21.10 Frequency Content of Oniginal Signal Frequency Content of Interpolated Signal 04 FIGURE 21.11 Defining Terms using a mouse or track ball Graphical user interface(GUI): Interface using pull-down menus, push buttons, sliders, and other ng icons Drag and drop operation: Graphical operation for building diagrams by selecting, copying, and moving i nd-click icons Toolbox: Library of specialized functions. What if"question: Question that allows a user to determine the effect of parameter changes in a problem solution c 2000 by CRC Press LLC
© 2000 by CRC Press LLC Defining Terms Drag and drop operation: Graphical operation for building diagrams by selecting, copying, and moving icons using a mouse or track ball. Graphical user interface (GUI): Interface using pull-down menus, push buttons, sliders, and other pointand-click icons. Toolbox: Library of specialized functions. “What if ” question: Question that allows a user to determine the effect of parameter changes in a problem solution. FIGURE 21.10 FIGURE 21.11
8 These MTLAB statements interpolate a signal by a factor of 8 8 clear memory and figure window 8 specify numbers of points =0.004;2= e2;2 g specify time intervals k1=0:255;k2= 8 specify time index t=k1*;t2= i specify time signals x1 =3*cos(20*pi*t1).*cOs(200*pi*t1): s generate original signal x2 interp(xl, B) s interpolate by a factor of 8 i plot original and interpolated signals subplot(2,1,1),plo(t1(1:25),x1(1:25),gxia, itle('Original Time Sigmal) subplot(2,1,2),plot(t2(1:200),x2(1:200),t1(1:25),x1(1:25),*), grid, title('Interpolated Time Signal), xlabel("Time, s),pau g compute and plot frecuency content Ⅺ=ff(x1);x=f(x2); f1=k1/*1);f2=k2/(N2*2) subplot (2, 1, 1),plot(f1(1: 128), abs(X1 (1: 128))/N1), grid, title( Frequency Co of Original Sigmal subplot (2, 1, 2),plot 024),aX(1:1024))N2),gria title( Frequency Content of Interpolated signal' label(Frequency, Hz'), pause FIGURE 21.12 Related Topics 14.3 Design and Implementation of Digital Filters. 14.4 Signal Restoration. 15.1 Coding, Transmission, and Storage References Buck, Daniel, and Singer, Computer Explorations in Signals and Systems Using MATLAB, Englewood Cliffs, N J. Prentice-Hall, 1997 uris, McClellan, and Oppenheim, Computer-Based Exercises for Signal Processing, Englewood Cliffs, N.J.: Prentice-Hall, 1994 Etter, Engineering Problem Solving with MATLAB, 2nd ed, Englewood Cliffs, N J. Prentice-Hall,1 Etter, Introduction to MATLAB for Engineers and Scientists, Englewood Cliffs, N J: Prentice-Hall Garcia, Numerical Methods for Physics, Englewood Cliffs, N J: Prentice-Hall, 1994 Hanselman and Kuo, MATLAB Tools for Control System Analysis and Design, 2nd ed, Englewood Cliffs, N J Prentice-Hall, 1995 Jang, Sun, and Mizutani, Neuro-Fuzzy and Soft Computing: A Computational Approach to Learning and Machin Intelligence, Englewood Cliffs, N J. Prentice-Hall, 1997. Kamen and Heck, Fundamentals of Signals and Systems Using MATLAB, 2nd ed, Englewood Cliffs, N.J. Prentice Ha,1997. Marcus, Matrices and MATLAB: A Tutorial, Englewood Cliffs, N.J. Prentice-Hall, 1993. Polking, Ordinary Differential Equations Using MATLAB, Englewood Cliffs, N J Prentice-Hall, 1995 Van Loan, Introduction to Scientific Computing: A Matrix Vector Approach Using MATLAB, Englewood Cliffs, N. Prentice-Hall, 1997 c 2000 by CRC Press LLC
© 2000 by CRC Press LLC Related Topics 14.3 Design and Implementation of Digital Filters • 14.4 Signal Restoration • 15.1 Coding, Transmission, and Storage References Buck, Daniel, and Singer, Computer Explorations in Signals and Systems Using MATLAB, Englewood Cliffs, N.J.: Prentice-Hall, 1997. Burris, McClellan, and Oppenheim, Computer-Based Exercises for Signal Processing, Englewood Cliffs, N.J.: Prentice-Hall, 1994. Etter, Engineering Problem Solving with MATLAB, 2nd ed., Englewood Cliffs, N.J.: Prentice-Hall, 1997. Etter, Introduction to MATLAB for Engineers and Scientists, Englewood Cliffs, N.J.: Prentice-Hall, 1996. Garcia, Numerical Methods for Physics, Englewood Cliffs, N.J.: Prentice-Hall, 1994. Hanselman and Kuo, MATLAB Tools for Control System Analysis and Design, 2nd ed., Englewood Cliffs, N.J.: Prentice-Hall, 1995. Jang, Sun, and Mizutani, Neuro-Fuzzy and Soft Computing: A Computational Approach to Learning and Machine Intelligence, Englewood Cliffs, N.J.: Prentice-Hall, 1997. Kamen and Heck, Fundamentals of Signals and Systems Using MATLAB, 2nd ed., Englewood Cliffs, N.J.: PrenticeHall, 1997. Marcus, Matrices and MATLAB: A Tutorial, Englewood Cliffs, N.J.: Prentice-Hall, 1993. Polking, Ordinary Differential Equations Using MATLAB, Englewood Cliffs, N.J.: Prentice-Hall, 1995. Van Loan, Introduction to Scientific Computing: A Matrix Vector Approach Using MATLAB, Englewood Cliffs, N.J.: Prentice-Hall, 1997. FIGURE 21.12
Further information For further information on MATLAB, here are e-mail addresses, www sites, and other resources locations E-mail addresses news-notes@mathworks.com(MATLABNewsdNoteseditor) support@mathworks.com(technicalsupportforallproducts) info@mathworks.com(generalinforma Web sites: http://www.mathworks.com(theMathWorkshomepage) Ohttp://education.mathworks.com(educationalproductsandservices ther resources. ftp mathworks. com(FTP server) ft newsgroup c 2000 by CRC Press LLC
© 2000 by CRC Press LLC Further Information For further information on MATLAB, here are e-mail addresses, WWW sites, and other resources locations: E-mail addresses: news-notes@mathworks.com (MATLAB News & Notes editor) support@mathworks.com (technical support for all products) info@mathworks.com (general information) Web sites: http://www.mathworks.com (the MathWorks home page) http://education.mathworks.com (educational products and services) Other resources: ftp.mathworks.com (FTP server) comp.soft-sys.matlab (usenet newsgroup)