Fixed-Point vs. Floating-Point Digital Signal Processing
Innovation Begins With Digital Signal Processing
Digital signal processors (DSPs) are essential for real-time processing of real-world digitized data, performing the high-speed numeric calculations necessary to enable a broad range of applications – from basic consumer electronics to sophisticated industrial instrumentation. Software programmable for maximum flexibility and supported by easy-to-use, low-cost development tools, DSPs enable designers to build innovative features and differentiating value into their products, and get these products to market quickly and cost-effectively.
There are many considerations that system developers weigh when selecting digital signal processors for their applications. Among the key factors to consider are the computational capabilities required for the application, processor and system costs, performance attributes, and ease of development. Balancing these factors together, designers can identify the DSP that is best suited for an application.
Fixed Point vs Floating Point
Digital signal processing can be separated into two categories - fixed point and floating point. These designations refer to the format used to store and manipulate numeric representations of data. Fixed-point DSPs are designed to represent and manipulate integers – positive and negative whole numbers – via a minimum of 16 bits, yielding up to 65,536 possible bit patterns (216). Floating-point DSPs represent and manipulate rational numbers via a minimum of 32 bits in a manner similar to scientific notation, where a number is represented with a mantissa and an exponent (e.g., A x 2B, where 'A' is the mantissa and ‘B’ is the exponent), yielding up to 4,294,967,296 possible bit patterns (232).
The term ‘fixed point’ refers to the corresponding manner in which numbers are represented, with a fixed number of digits after, and sometimes before, the decimal point. With floating-point representation, the placement of the decimal point can ‘float’ relative to the significant digits of the number. For example, a fixed-point representation with a uniform decimal point placement convention can represent the numbers 123.45, 1234.56, 12345.67, etc, whereas a floating-point representation could in addition represent 1.234567, 123456.7, 0.00001234567, 1234567000000000, etc. As such, floating point can support a much wider range of values than fixed point, with the ability to represent very small numbers and very large numbers.
With fixed-point notation, the gaps between adjacent numbers always equal a value of one, whereas in floating-point notation, gaps between adjacent numbers are not uniformly spaced – the gap between any two numbers is approximately ten million times smaller than the value of the numbers (ANSI/IEEE Std. 754 standard format), with large gaps between large numbers and small gaps between small numbers.
Dynamic Range and Precision
The exponentiation inherent in floating-point computation assures a much larger dynamic range – the largest and smallest numbers that can be represented - which is especially important when processing extremely large data sets or data sets where the range may be unpredictable. As such, floating-point processors are ideally suited for computationally intensive applications.
It is also important to consider fixed and floating-point formats in the context of precision – the size of the gaps between numbers. Every time a DSP generates a new number via a mathematical calculation, that number must be rounded to the nearest value that can be stored via the format in use. Rounding and/or truncating numbers during signal processing naturally yields quantization error or ‘noise’ - the deviation between actual analog values and quantized digital values. Since the gaps between adjacent numbers can be much larger with fixed-point processing when compared to floating-point processing, round-off error can be much more pronounced. As such, floating-point processing yields much greater precision than fixed-point processing, distinguishing floating-point processors as the ideal DSP when computational accuracy is a critical requirement.
Key Considerations – Costs, Ease Of Development, And Performance
Dynamic range and precision considerations typically define the criteria used by designers to determine whether fixed-point or floating-point processors are ideally suited for an application – where computational demands are high, floating point is favored. But there are many other important interrelated factors to consider when choosing between the two formats.
Processor cost: A designer’s ability to lower bill of materials (BOM) costs for a product has a direct impact on competitive pricing, market penetration and profitability. Fixed-point DSPs are used in a greater number of high volume applications than floating-point DSPs, and therefore are typically less expensive that floating-point DSPs due to the scale of manufacturing. System- on-a-chip (SOC) variables, including on-board memory, integrated application-specific peripherals, and connectivity options can also affect the cost - and functionality - of both fixed-point and floating-point processors.
Ease of development: The easier it is for a designer to develop a product, the more likely it is that the product can be brought to market ahead of the competition. It is generally easier to develop algorithms for floating-point DSPs, as fixed point-algorithms require greater manipulation to compensate for quantization noise. As such, designers typically choose floating-point DSPs when implementing complex algorithms. Here again, SOC variables can shorten product development cycles, as can the ecosystem of associated product development tools and third-party support software.
Performance: The speed with which a DSP executes operations in an application is a critical consideration. Designers should implement the DSP format that will process algorithms with the greatest efficiency. While it is possible to program fixed-point code for a floating-point processor and vice versa, significant performance limitations may arise. Performance efficiency can also impact power efficiency. For example, in a case where a floating-point processor is implemented to execute fixed-point tasks, the power draw might be greater than what it would be if a fixed-point processor had been implemented, which can impact power source and cooling requirements, as well as associated BOM costs.
In summary, floating-point DSPs are optimized for specialized, computationally intensive applications, whereas fixed-point DSPs are optimized for high-volume, general purpose applications. Development costs can be higher for fixed point, owing to the relative difficulty of algorithm implementation, but the cost of the final product will often be reduced. Product costs for applications that leverage floating-point DSPs can be higher, owing to processor cost and lower manufacturing volumes, but designers will realize ease-of-development benefits and greater overall system precision. Ultimately, the data set requirements associated with the target application will dictate the need for fixed-point or floating-point processing.
Analog Devices – Leading The Industry in DSP Innovation
Delivering exceptional performance and value, and complemented by a rich ecosystem of development tools, applications and third-party support, Analog Devices’ digital signal processors are the processors of choice for a wide range of innovative applications.
ADI Blackfin® Fixed-Point Digital Signal Processors
Analog Devices’ 16/32-bit fixed-point Blackfin digital signal processors are designed specifically to meet the computational demands and power constraints of today's embedded audio, video and communications applications. Blackfin processors deliver breakthrough performance and power efficiency with a RISC programming model, combining advanced signal processing functionality with the ease-of-use attributes found in general-purpose microcontrollers. This combination of processing attributes enables Blackfin processors to perform equally well in both signal processing and control processing applications - in many cases eliminating the requirement for separate heterogeneous processors. This capability greatly simplifies both the hardware and software design implementation tasks.
ADI Sharc® Floating-Point Digital Signal Processors
Analog Devices' 32-bit floating-point SHARC digital signal processors are based on a Super Harvard architecture that balances exceptional core and memory performance with outstanding I/O throughput capabilities. This Super Harvard architecture extends the original concepts of separate program and data memory busses by adding an I/O processor with its associated dedicated busses. In addition to satisfying the demands of the most computationally intensive, real-time signal-processing applications, SHARC processors integrate large memory arrays and application-specific peripherals designed to simplify product development and reduce time to market.
For more information about ADI’s full portfolio of digital signal processors, software development tools and support, visit www.analog.com/processors.