TECHNICAL UPDATES
 
Products Updates
 

MATLAB Parallel & Distributed Computing
With the introduction of MATLAB parallel and distributed computing, users are now able to solve computationally and data intensive problem using MATLAB and Simulink in a multiprocessor computing environment.

To setup the computing environment, users will require to have Distributed Computing Toolbox and MATLAB Distributed Computing Engine.

The Distributed Computing Toolbox will provide the high-level constructs, such as parallel for loops, parallel algorithms, and MPI-based functions, as well as low-level constructs for job and task management. While the MATLAB Distributed Computing Engine will allow user to startup multiple MATLAB sessions (known as workers) on a computer cluster.


Figure 1: Developing distributed and parallel applications with Distributed Computing Toolbox and MATLAB Distributed Computing Engine

With the combination of these tools, users will have the options to solve their problems either as several independent units of work or as a single large computation by harnessing the multiple processors.

What can you do with Distributed Computing Toolbox?

  • Distributed and parallel execution of applications
  • Interactive and batch execution modes
  • Distributed arrays, parallel algorithms, and parallel for loops
  • Inter-worker communication support based on the MPI (MPICH2) standard
  • Ability to run four workers locally on a desktop
  • Integration with MATLAB Distributed Computing Engine for developing cluster-based applications that use any scheduler or any number of workers

For more information about Distributed Computing Toolbox, please visit the following URL:
http://www.mathworks.com/products/distribtb/index.html

To learn more about Distributed Computing Toolbox through the following online demo, please visit the following URL:
Parallel Programming in MATLAB


Rapid Deployment to Java Classes with MATLAB® Builder for Java™ 1.1:
MATLAB Builder for Java extends the MATLAB Compiler with tools for automatically generating Java™ classes from your MATLAB algorithms. You can run MATLAB based classes created using Builder for Java outside the MATLAB environment, for example incorporating algorithms into desktop and Web applications built using other Java-based technologies. It also lets you share algorithms with colleagues who can access them using standard interface.

Key Features

  • Converts MATLAB algorithms into Java classes via a graphical user interface or the command line.
  • Supports conversion between Java data types and MATLAB array data types using data conversion classes.
  • Enables royalty-free desktop and Web deployment of independent components.

For more information about MATLAB Builder for Java, please visit the following URL:
http://www.mathworks.com/products/javabuilder/

To learn more about MATLAB Builder for Java through online webinars, please visit the following URL:
http://www.mathworks.com/products/javabuilder/demos.html

 
 
Tips and Techniques
 

Managing File-Dependencies of Your MATLAB Programs
Have you ever run into situation where the MATLAB program that you share with friends or colleagues doesn't run, just because you have forgotten to include some of the required M-files? The Dependency Report functionality in MATLAB can help to address this problem by providing a check-list of all required child functions to be called by the main M-file.

To access Dependency Report, navigate to Current Directory browser in MATLAB Desktop and select Dependency Report from the Directory Reports icon.

Select Show child functions to see a list of all M-files (children) called by each M-File in the directory (parent). The report also indicates where each child function resides, for example, in a specified toolbox. If a child function's location is listed as unknown, it could be because the child function is not on the search path or in the current directory.

Select Show parent functions to list the M-files that call each M-file. The report limits the parent (calling) functions to those in the current directory. Select Show subfunctions to include subfunctions in the report. Subfunctions are listed directly after the main function and are highlighted in gray.

To learn more about Dependency Report, please visit the following URL:
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_env/f9-6232.html

 

Debugging MATLAB M-files from the MATLAB Command Prompt

What Debugging Tools Are Available at the MATLAB Command Prompt?
This section describes how to make use of functions to debug programs from the MATLAB command prompt. There are altogether seven topics and in the e-newsletter issue, we will look at the fourth topic. The rest of the topics will be covered in subsequent e-newsletter issues.

Topics
1. Setting, Clearing, and Querying Breakpoints
2. Moving from Workspace to Workspace
3. Executing Your Code Using the DBSTEP Function
4. Displaying Status Messages Periodically
5. Using the TRY/CATCH Block to Capture Errors
6. Using the ERROR Function with the LASTERR and RETHROW Functions
7. The WHICH Function

Topic 4: Displaying Status Messages Periodically
One of the simplest, yet sometimes most effective, debugging techniques is to display the results of certain key calculations or simply a string that indicates when a certain section of code has completed execution. The DISP function provides an easy way to do this.

For example, in the sample code above if you were to debug a MATLAB script, we'll first segment the codes into sections and which displays a message at the end of each step.

Hence, when we run the script, you receive the following messages in your command window:

These messages allow us to identify and pinpoint where the error occur. From the messages, it seems that the Beginning program and Step 1 has completed without any errors but Step 2 was not complete. Therefore, it is likely that there is a problem with the function or script in Step 2.

On careful inspection of the codes in Step 2, you'll notice that there is an error on line 14.

 
 
EVENTS & TRAINING
 

Learn and do more with MATLAB & Simulink

Join us for 'FPGA Implementation by System Level Design Tools' workshop

Attend this free training event to learn how you can work faster and more efficient with the latest tools by The Mathworks and Xilinx. The workshop will challenge yourself with the latest design tools and development boards. Limited FREE Seats, REGISTER NOW

Workshop Highlights:
This half day hands-on workshop is designed to provide system level designers, DSP designers, and FPGA/ASIC designers a basic understanding on how to develop algorithms and circuits for FPGA devices using Simulink and the Xilinx design tools- System Generator. The class will also show how to implement the design to Spartan-3 board during the hands-on lab session. The workshop is suitable for designers who have no knowledge of HDL such as Verilog or VHDL but would like to perform design and implementation of FPGA design. To view more details, please visit http://www.activemedia.com.my/form-event.htm

In-house or customized training is also available on request, please contact Activemedia at 6742-8173 for details. Other relevant training courses provided by Activemedia include:

- Comprehensive MATLAB
- Comprehensive SIMULINK
- Applying Signal Processing with MATLAB
- Applying Image Processing Techniques with MATLAB and SIMULINK
- Applying Neural Network with MATLAB

 
 
Visit www.activemedia.com.sg or Contact us at:
Singapore:
(65) 6742 8173
enquiry@activemedia.com.sg
Malaysia:
(60) 3 7880 8522
enquiry@activemedia.com.my
Thailand:
(66) 2 612 9390-1
info@activemedia.in.th
 
 
Customer Applications
 

Texas Instruments Streamlines Research and Development with Simulink and DSP Tools

To shorten product cycles by accelerating the flow of real-time DSP algorithms from product design
Use an integrated set of DSP software design tools from The MathWorks that allows algorithm developers, systems engineers, and software engineers to use a common high-level model to coordinate their work
• Accelerated design.
• Efficient time allocation.
• Reduced overhead.
 

Challenge

With a new focus on specialty chip sets for DSP customers, R&D engineers at TI faced the market pressures and competition that are now a way of life throughout the semiconductor industry. To reduce these pressures, TI addressed one of the biggest hurdles in the development process-the gap between R&D and product development.


A DSP chip from Texas Instruments.
 

"We see the future of advanced DSP design in development tools like those from The MathWorks."

Dr. Randy Cole
Texas Instruments
DSP Solutions Research and Development Center
 

Solution

TI decided that rapid prototyping environments, consisting of high-level software tools and real-time development hardware, would be essential if they were to accelerate deployment of new technologies for their expanding line of increasingly sophisticated DSP products.

Engineers at TI now incorporate MATLAB, Simulink, the Signal Processing Blockset, and the Signal Processing Toolbox into their algorithm design process. This new approach enables them to streamline the verification and delivery of application-specific algorithms to product development teams.

"Using DSP Workshop helps tie the two sides of the process together in a way that lets every engineer see the whole project from concept to testing to coding," says Dr. Randy Cole, branch manager at TI DSP Solutions R&D Center.

Dr. Cole's team is using MATLAB, Simulink, the Signal Processing Blockset, and Real-Time Workshop-along with TI development tools-in a rapid-prototyping approach based on interactive block-diagram simulation and automatic code generation. With these tools, DSP engineers can refine implementation details directly in the system model and produce real-time software prototypes without traditional programming.

By using MathWorks tools to design real-time algorithms and generate code for use on target DSP platforms, TI expects to dramatically shorten development cycles. "The MathWorks DSP Workshop is a promising tool suite for rapid DSP prototyping," states Alec Robinson, Digital Audio Branch, DSP Solutions R&D Center. "It demonstrates a significant potential benefit to R&D engineers, who are developing sophisticated applications for advanced TI DSP product lines."

TI engineers used MathWorks tools to create a real-time audio application. The software runs on a PC/C32 card from Blue Wave Systems. It feeds real-time stereo sound inputs through a series of sophisticated audio processing algorithms and delivers stereo output to a set of loudspeakers for real-time subjective listening tests. They developed and tested algorithm concepts in MATLAB and converted them seamlessly into a block-diagram model of the real-time implementation in Simulink and the Signal Processing Blockset.

The graphical, self-documenting algorithm design in Simulink becomes an executable specification for product designers. Using the Simulink model as a reference, software designers can work concurrently on implementation details and constraints, such as processor speed and precision.

Dr. Cole's team used Real-Time Workshop to generate C code to run in their real-time environment, as well as TI software that supplied host-DSP communication and stream I/O support for their specific card's A/D and D/A devices. The C code generated by Real-Time Workshop provides a solid basis for the optimized software ultimately embedded in the product.

 

Results

  • Accelerated design. Using MathWorks tools, TI engineers created a real-time audio application in just one day. Traditional design methods would have taken weeks of DSP programming-particularly if iterations were required.
     
  • Efficient time allocation. MathWorks tools helped R&D engineers create and evaluate their own real-time prototypes, enabling TI to shorten DSP software engineering time on product implementation and optimization.
     
  • Reduced overhead. Because the entire DSP engineering team can use the same interactive MathWorks products to create, refine, and verify algorithms, they can better understand algorithm behavior and performance much earlier, reducing implementation errors from misinterpretation.

Products Used

MATLAB®
Real-Time Workshop®
Signal Processing Blockset
Signal Processing Toolbox
Simulink®