Software Component Characteristics This chapter addresses the structure and function of low-level software components. These include algorithms, modules (., Ada packages, C++ objects), and APIs. The perspective is bottom-up, with the emphasis on computational complexity. Low-level algorithms may be simple at first, but complexity can increase over time. The increases in complexity can occur with research advances. Measures taken to compensate for a performance problem in one area (., noisy voice channel) can increase complexity of an algorithm (., dithering the digital LO to spread homodyne artifacts over the voice band, improving voice SNR) | Software Radio Architecture Object-Oriented Approaches to Wireless Systems Engineering Joseph Mitola III Copyright 2000 John Wiley Sons Inc. ISBNs 0-471-38492-5 Hardback 0-471-21664-X Electronic 12 Software Component Characteristics This chapter addresses the structure and function of low-level software components. These include algorithms modules . Ada packages C objects and APIs. The perspective is bottom-up with the emphasis on computational complexity. Low-level algorithms may be simple at first but complexity can increase over time. The increases in complexity can occur with research advances. Measures taken to compensate for a performance problem in one area . noisy voice channel can increase complexity of an algorithm . dithering the digital LO to spread homodyne artifacts over the voice band improving voice SNR . Sometimes algorithms have to be restructured to integrate new advances. This chapter introduces low-level algorithms and complexity core aspects of software component tradeoffs. It also describes APIs useful in implementing the layers defined above. I. HARDWARE-SOFTWARE INTERFACES The SDR engineer must ensure that services are robust. That is services should be available in spite of the challenges of maintaining isochronism in a distributed multiprocessing environment. External effects of radio propagation noise and interference impede the delivery of such services. The SDR accesses multiple bands and modes simultaneously. The advanced implementations manage spectrum use on behalf of the user band and mode selection power levels error-control coding and waveform choice. In some cases the services include bridging across modes so that dissimilar legacy systems can intercommunicate. In other cases users may need special applications encapsulated as scripts or Java-applet like structures which may be defined via secure over-the-air downloads. As listed in Figure 12-1 these services demand that radio applications include shared resources and .