TECHNICAL UPDATES
 
Products Updates & information
 

New communication link available from Tasking to MATLAB & Simulink

For systems engineers developing embedded systems who want to design, prototype and test specifications by executing automatically generated code on actual embedded hardware using on-target rapid prototyping, Link for TASKING allows users to quickly deploy and validate automatically generated code from Simulink on processors supported by TASKING (from Altium) such as Infineon and ARM. Unlike manual solutions, Link for TASKING lets systems engineers design and test detailed software specifications for exchange with software groups or suppliers.

For software engineers who want to implement and verify code generated from Simulink using TASKING tools, Link for TASKING makes it easy to deploy, verify and assess software using the Simulink and TASKING environments. Unlike hand coded solutions, Link for TASKING automates the manual tasks of integrating, building and testing production code for embedded systems.

Key features include:

Links MATLAB and Simulink to a TASKING environment through high-speed bidirectional links
Supports Infineon, STMicroelectronics, Renesas, ARM, Freescale and other microprocessors
Enables processor-in-the-loop (PIL) testing for object code verification
Supports automatic code generation, building and downloading to an instruction-set simulator or embedded hardware
Provides MATLAB APIs to analyze and debug code generated automatically or by hand
Includes customizable templates for configuring hardware variants, automating MISRA C-code checking and controlling the build process
 
   
  To learn more about Link for TASKING® 1.0 features:
http://www.mathworks.com/products/tasking/
   
   

Neural Network Toolbox 5 provides a comprehensive suite of advance features to help you design and manage your networks

The Neural Network Toolbox is a collection of GUIs and neural network functions that extends MATLAB's capabilities in designing, implementing, visualizing, and simulating neural networks.

With the latest Neural Network Toolbox Version 5.0, beginners can now take advantage of the new interactive wizard, "Neural Network Fitting Tool" to create a neural network. Users do not to have prior experience in developing neural network, as this wizard will walk users through the overall process of creating a neural network from fitting the user's data to training network.

 
Figure 1: New Wizard, Neural Network Fitting Tool
 
Advance users can also benefit from this version, with the addition of Dynamic Neural Networks. Now users have the flexibility of implementing dynamic networks such as Time-Delay Neural Network, Nonlinear Autoregressive Network (NARX), and Layer Recurrent Network (LRN) instead of static neural network.
 
For more information about Neural Network Toolbox please visit the following URL:
http://www.mathworks.com/products/neuralnet/
 
To learn more about Neural Network Toolbox through online demos, please visit the following URLs:
a. Introduction to the Neural Network Toolbox
   
 

This demo is suitable for beginners, as it shows the functionalities and capabilities of the Neural Network Toolbox in designing, simulating and implementing neural networks in MATLAB and Simulink.

To view the demo, click here.

   
b. Classification Using a Probabilistic Neural Network
   
 

This demo shows how Neural Network Toolbox can be used for classification. A probabilistic neural network is created to separate three input elements into their associated classes. Then this network will be used to classify a new element.

To view the demo, click here.

 
 
Technical Applications
 

Integrating MATLAB with Bioperl and BioJava allows users to capitalize on resources available in this shared-development community.

Bioinformaticists require numerous programming and scripting resources to research and process biological data. Many of these utilities are available online through open-source associations such as bioperl.org and biojava.org, while others exist as custom-developed scripts and applications.

Linking MATLAB to the Bioperl and BioJava utility libraries provides a clean and powerful front end to this important shared-development community and enables existing Perl and Java users to access MATLAB tools in the Bioinformatics, Distributed Computing, Image Processing, and Statistics areas.

The below example illustrates interoperability between MATLAB and Bioperl. Specifically, it shows how to pass arguments from MATLAB to Perl scripts and pull BLAST search data back to MATLAB.

PLEASE NOTE: Perl and the Bioperl modules must be installed to run the Perl scripts in this demonstration. Please see http://www.perl.com/ and http://bioperl.org/ for current release files and complete installation instructions.

Introduction

Gleevec(tm) (STI571 or imatinib mesylate) was the first approved drug to specifically turn off the signal of a known cancer-causing protein. Initially approved to treat chronic myelogenous leukemia (CML), it is also effective for treating gastrointestinal stromal tumors (GIST). To learn more, visit: http://www.cancer.gov/clinicaltrials/digestpage/gleevec

Research has identified several gene targets for Gleevec including: Proto-oncogene tyrosine-protein kinase ABL1 (NP_009297), Proto-oncogene tyrosine-protein kinase Kit (NP_000213), and Platelet-derived growth factor receptor alpha precursor (NP_006197).

target_ABL1 = 'NP_009297';
target_Kit = 'NP_000213';
target_PDGFRA = 'NP_006197';

Accessing Sequence Information

You can load the sequence information for these proteins from local GenPept text files using genpeptread.

ABL1_seq = getfield(genpeptread('ABL1_gp.txt'), 'Sequence');
Kit_seq = getfield(genpeptread('Kit_gp.txt'), 'Sequence');
PDGFRA_seq = getfield(genpeptread('PDGFRA_gp.txt'), 'Sequence');

Alternatively, you can obtain protein information directly from the online GenPept database maintained by the National Center for Biotechnology Information (NCBI).

ABL1_seq = getgenpept(target_ABL1, 'SequenceOnly', true);
Kit_seq = getgenpept(target_Kit, 'SequenceOnly', true);
PDGFRA_seq = getgenpept(target_PDGFRA, 'SequenceOnly', true);

Calling Perl Programs from MATLAB

From MATLAB, you can harness existing Bioperl modules to run a BLAST search on these sequences. MW_BLAST.pl is a Perl program based on the RemoteBlast Bioperl module. It reads sequences from FASTA files, so start by creating a FASTA file for each sequence.

fastawrite('ABL1.fa', 'Proto-oncogene tyrosine-protein kinase ABL1 (NP_009297)', ABL1_seq);
fastawrite('Kit.fa', 'Proto-oncogene tyrosine-protein kinase Kit (NP_000213)', Kit_seq);
fastawrite('PDGFRA.fa', 'PDGFRA alpha precursor (NP_006197)', PDGFRA_seq);

BLAST searches can take a long time to return results, and the Perl program MW_BLAST includes a repeating sleep state to await the report. Sample results have been included with this demo, but if you have an Internet connection and want to try running the BLAST search with the three sequences, uncomment the following command. MW_BLAST.pl saves the BLAST results in three files on your disk, ABL1.out, Kit.out and PDGFRA.out. The process can take 15 minutes or more.

% perl('MW_BLAST.pl', 'blastp', 'pdb', '1e-10', 'ABL1.fa', 'Kit.fa', 'PDGFRA.fa');

The next step is to parse the output reports, and find scores >= 100. You can then identify hits found by more than one protein for further research; possibly identifying new targets for drug therapy.

protein_list = perl('MW_parse.pl', 'ABL1.out', 'Kit.out', 'PDGFRA.out')

Protein Analysis Tools in the Bioinformatics Toolbox

MATLAB offers additional tools for protein analysis and further research with these proteins. For example, to access the sequences and run a full Smith-Waterman alignment on the tyrosine kinase domain of the human insulin receptor (pdb 1IRK) and the kinase domain of the human lymphocyte kinase (pdb 3LCK), load the sequence data:

IRK = pdbread('pdb1irk.ent');
LCK = pdbread('pdb3lck.ent');

Or bring the data in from the Internet:

IRK = getpdb('1IRK');
LCK = getpdb('3LCK');

Now perform a local alignment with the Smith-Waterman algorithm. MATLAB uses BLOSUM 50 as the default scoring matrix for AA strings with a gap penalty of 8. Of course, you can change any of these parameters.

[Score, Alignment] = swalign(IRK, LCK, 'showscore', true);

MATLAB and the Bioinformatics Toolbox offer additional tools for investigation of nucleotide and amino acid sequences. For example, pdbdistplot displays the distances between atoms and amino acids in a PDB structure, while ramachandran generates a plot of the torsion angle PHI and the torsion angle PSI of the protein sequence. The toolbox function proteinplot provides a graphical user interface (GUI) to easily import sequences and plot various properties such as hydrophobicity.

To view the example on using BioJava from within MATLAB, please visit http://www.mathworks.com/products/demos/bioinfo/biojavademo/biojavademo.html

For more information on the Bioinformatics Toolbox, please visit http://www.mathworks.com/products/bioinfo/index.html

 
 
Tips and Techniques
 

Maximize MATLAB code performance with M-Lint Code Analyzer
Do you program in MATLAB? How do you maximize the performance and maintainability of your codes? If you are a MATLAB programmer and would like to make your codes run faster and more efficiently, you might find M-Lint code analyzer very handy.

What is M-Lint?
M-Lint code analyzer is a tool available in MATLAB that can help you to verify the integrity of your codes and learn about potential improvements. It can be accessed either automatically from MATLAB Editor/Debugger interface, or run M-Lint report from existing M-File or a directory of M-Files.

How M-Lint works?
To use the M-Lint in MATLAB Editor/Debugger, perform the following steps:

  1. Ensure the M-Lint messaging is enabled: Select File -> Preferences -> Editor/Debugger -> Language, and for Language, select M, and then select the Enable M-Lint messages check box. To follow these instructions, be sure the associated preference Underline warnings and errors is selected.

  2.  
  3. Open an M-File in the Editor/Debugger, the example below illustrate a simple script on image processing:


     
  4. The M-Lint message indicator at the top right edge of the window conveys the M-Lint message reported for the file:
    • Red means syntax errors were detected.
    • Orange means warnings or opportunities for improvement were detected, but no errors were detected.
    • Green means no errors, warnings, or opportunities for improvement were detected.
     
  5. Click on the M-Lint message indicator to go to next code fragment containing the M-Lint message. To view the M-Lint message, move the pointer anywhere within the underlined fragment, as illustrated:



    Make changes to your code as needed. The M-Lint indicator and underlining automatically update to reflect the changes you make, even if you do not save the file.

  6.  
  7. Alternatively, you can use the M-Lint message bar to view the messages and go directly to the associated code fragments. Each marker represents a line that has associated M-Lint messages. A red marker means there is an error at that line, while an orange marker means there are warnings or suggested improvements, but no errors at that line.


     
  8. After making changes to address all M-Lint messages, the M-Lint message indicator becomes green; which means there are no further errors, warnings, or opportunities for improvement were detected. Your MATLAB codes are now optimized in terms of performance and maintainability.

For detail information on M-Lint Code Analyzer functionality in MATLAB, please kindly refer to the URL below:
http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_env/edit_d29.html#83378

 
 
 EVENTS & TRAINING
 

MATLAB Training by Experts

Accelerate your learning with MATLAB and attend Activemedia's training conducted by experts. MATLAB professional training series include:

Comprehensive MATLAB
3 Days
Advanced MATLAB Programming Techniques
1 Day
Comprehensive SIMULINK
3 Days
Advanced SIMULINK Techniques for Effective System Modeling
1 Day
1 Day
SIMULINK S-Functions for System Algorithm Modeling
1 Day
Object Oriented Programming using MATLAB
1 Day
Applying Image Processing Techniques with MATLAB and SIMULINK
2 Days
Applying Communication Design with SIMULINK
2 Days
Applying Control Design with MATLAB & SIMULINK
2 Days
Applying Signal Processing with MATLAB & SIMULINK
2 Days
Applying Neural Network with MATLAB
2 Days
Applying Finite State Machine Modeling with STATEFLOW
1 Day
Data Analysis & Statistics with MATLAB
2 Days

Featured training: Data Analysis and Statistics using MATLAB

Engineers and scientists often have significant quantities of data to analyze. To reduce the time needed to analyze and understand this data, they need the ability to explore and visualize the data quickly, as well as the flexibility to develop custom routines for their particular application.

Conducted by Statistics and MATLAB veteran, Dr Zhang Jin-Ting, this 2-day hands-on workshop provides engineers, researchers, financial analysts, and statisticians an in-depth knowledge in using MATLAB and the Statistics Toolbox for data analysis. Topics include data file input and output, handling large and incommensurate data sets, computing descriptive statistics, statistical plotting and visualization, fitting distributions to data, bivariate and multivariate regression, random number generators, simulation, and basic inferential methods.

The workshop is packed with examples and exercises that cover a cross-section of application areas in science, engineering, and finance.

 
 
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
 

User Stories

BAE Systems Achieves 80% Reduction in Software-Defined Radio Development Time with Model-Based Design

To develop a military standard SDR waveform for satellite communications
Use Simulink and Xilinx System Generator to rapidly design, debug, and automatically generate code for an SDR signal processing chain
• Project development time reduced by 80%.
• Problems found and eliminated faster.
• Clocking and interfacing simplified.
 

The U.S. military is expected to spend more than $1 billion on software-defined radio (SDR) technology over the next few years to ensure better communication and interoperability among troops. To meet the demand, defense contractors are exploring improved design approaches for rapidly developing multimode, multiband, and multifunctional wireless devices that can be reconfigured with software updates.

Long at the forefront of SDR technology, BAE Systems has traditionally used a design flow that relied on hand-coding FPGAs in VHDL. Recently, however, BAE Systems saw an opportunity to evaluate this approach against Model-Based Design using MathWorks and Xilinx tools. Running two SDR waveform development efforts in parallel, they found that Simulink and Xilinx System Generator dramatically reduced development time.


Custom board used in the traditional design workflow.

"Using Simulink, we completed all simulation and debugging in the model, where it is easier and faster to do, before automatically generating code with Xilinx System Generator," explains Dr. David Haessig, senior member of technical staff at BAE Systems. "As a result, we demonstrated more than a 10-to-1 reduction in the time to develop the signal processing chain of a software-defined radio. This really illustrates the potential for improving development production in SDR applications."

Challenge

BAE Systems was tasked with developing a military standard (MIL-STD-188-165A) satellite communications waveform for implementation in a command, control, communications, computers, intelligence, surveillance, and reconnaissance (C4ISR) radio. At the same time, BAE Systems sought to evaluate a new design flow for reducing development time.

The company would run two simultaneous development efforts-one using a traditional design flow and the other using tools for Model-Based Design. To ensure a fair comparison, each effort would use an equivalent set of cores. Running the two projects in parallel would enable BAE Systems to directly evaluate its existing approach with Model-Based Design on a real-world project.

"It took 645 hours for an engineer with years of VHDL coding experience to hand code a fully functional SDR waveform using our traditional design flow. A second engineer with limited experience completed the same project using Simulink and Xilinx System Generator in fewer than 46 hours."

Dr. David Haessig,
BAE Systems

Solution

Working with Xilinx, BAE Systems applied Model-Based Design using Simulink and Xilinx System Generator to design and deploy an MIL-STD-188 SDR waveform ten times faster than with their hand-coding approach.


Concurrent with that effort, Robert Regis, a BAE Systems engineer with more than 15 years of VHDL and software experience, led a separate project using a traditional design flow. In this project, Regis hand-coded VHDL based on requirements and specifications developed during a distinct systems engineering phase.

On the project involving Model-Based Design, Andrew Comba, a system engineer at BAE Systems, first developed a model of the SDR transmitter and receiver in Simulink. He accelerated model development by incorporating blocks from the Communications Blockset, including a scrambler, differential encoder, Reed Solomon encoder, matrix interleaver, convolutional encoder, and quadrature amplitude modulation (QAM) modulator.

Comba handed the Simulink model off to Xilinx engineer Sean Gallagher with a copy of the waveform specifications. Gallagher, who started the project with no significant communications systems experience, prepared the model for automatic code generation using Xilinx System Generator by substituting Xilinx blocks for standard Simulink blocks.

After simulating and verifying the updated model using data visualization scopes and bit-error rate meters, Gallagher used Xilinx System Generator and Xilinx ISE to automatically generate VHDL code for the SDR and deploy it to an FPGA for testing.

"Because the design was fully simulated and verified using the model, when downloaded to the FPGA, the SDR implementation worked immediately," notes Haessig.

Based on the success of this project's initial effort, BAE Systems has begun a joint effort with The MathWorks, Virginia Tech, Xilinx, and Zeligsoft to improve waveform portability. This group is developing an interface that enables code generated by Real-Time Workshop or System Generator to be directly incorporated into Software Communications Architecture (SCA) radios.

Results

  • Project development time reduced by 80%. "Using Simulink and Xilinx System Generator we designed and developed the signal processing chain of the SDR and achieved a 10-to-1 reduction in development time," says Haessig. "Overall project time, including hardware integration and lab testing, was reduced by more than 4-to-1."

  •  
  • Problems found and eliminated faster. "With Model-Based Design, the Simulink model is directly connected to the resulting code. This forces the developer to capture all the required waveform details in the model," notes Haessig. "As a result, bugs are discovered and removed early in the design flow at the modeling stage not later at the VHDL behavioral test stage, which can be difficult and time consuming."

  •  
  • Clocking and interfacing simplified. The traditional design flow required engineers to generate all clock timing by hand and to carefully examine the specifications and interface requirements for each component in the waveform. Haessig notes, "With Simulink and Xilinx System Generator, all the necessary clocking signals are generated automatically, and components are easily connected, without studying the spec sheet for details concerning control, timing, and other option

Products Used

Communications Blockset
Real-Time Workshop®
Signal Processing Blockset
Simulink®

» Learn more about BAE Systems