Design-flow discontinuities plague the development of complex signal-processing and communications technologies by causing disruptions and, thus, adding to cost. Shorter design cycles magnify the impact of these discontinuities. However, significant advances in modeling, simulation, and code-generation tools and methods will bring some much-needed relief to these headaches.
Use cases in algorithm design, system architecture, and hardware design help better illustrate these recent advances. For algorithm design, several hundred ready-to-use signal-processing and communications System objects are now available in Matlab, accelerating the development of complex algorithms. System architects can now model RF and baseband system components in a unified environment and perform true multi-frequency simulations. In hardware design, several new developments such as workflow advisor, critical path highlighting, distributed pipelining, back annotation, and resource utilization reports provide a framework for faster design iterations.
Algorithm Design For Streaming Systems
At the onset, many engineers will use floating-point arithmetic for the development of signal-processing and communications algorithms in Matlab. These algorithm developers can exploit the powerful signal-acquisition and analysis capabilities of Matlab as well as the built-in algorithm libraries of several toolboxes.
In some organizations, though, these algorithms are then rewritten in C code to refine them for implementation, conversion to fixed-point or integer arithmetic, or to integrate them with other design elements. Rewriting code is one example of a potentially costly and disruptive discontinuity in the design flow.
System objects, an important new addition to Matlab, enable engineers to design signal-processing system models for streaming applications directly in Matlab. Moreover, they can utilize several hundred new library components for signal processing, image and video processing, and communications.
A case in point is a basic communication system with transmitter, channel, and receiver components (Fig. 1). To model and simulate such a system, some engineers write many thousands of lines of C code and then look for ways to integrate the design with test equipment or analyze simulation results.
In contrast, Matlab code uses several available System objects from Signal Processing Blockset and Communications Blockset (see the code listing). To model the transmitter, an engineer can instantiate and call the Reed-Solomon Encoder, Convolutional Encoder, Block Interleaver, Rectangular QAM Modulator, and Orthogonal Space-Time Block Coder System objects from Communications Blockset in sequence.
In addition, unlike traditional functional programming styles, System objects in Matlab are object-oriented implementations of algorithms. They implicitly handle indexing, buffering, and state management, which makes the code much simpler to write, debug, and maintain. Thanks to the code structure, engineers can easily compare it with the original specification or block diagram. Algorithm designers can rapidly combine this code with their existing Matlab code and test the algorithms with live data acquired from measurement instruments.
Continue on next page