Firmware Filter Bank Variable Layout for Faster Sample Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional filter banks waste significant processor resources on updating numerous input variables for each filter, leading to increased filtration time and reduced performance due to the need to update (M+N) variables for each sample, where M and N represent the order of the filter equations.

Innovation Solution

The filter bank stores variables in a specific order, with input and output samples of the same filter stored separately and sorted by time index, allowing only the necessary variables to be updated, reducing the number of updates required and optimizing processor usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If variables are updated for each filter sequentially using conventional methods, then filter bank functionality is achieved, but processor resources are wasted and filtration time increases

Engineering Contradiction:
Improvefiltration speedVSAvoidtime for updating variables
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent combines the variable update operations across all K filters into a single unified update process. Instead of updating variables for each filter separately (K×(M+N) updates), the invention updates all filter variables simultaneously in one operation, reducing the total update time and processor overhead while maintaining the same filtration functionality.

Inventive Principle:
Principle #5Merging (Combining)

2Adaptability or versatility

If the number of filters K is increased to handle higher frequency bandwidth, then signal processing capability is improved, but the time required to update input variables increases proportionally

Engineering Contradiction:
Improvefrequency bandwidth handlingVSAvoidvariable update time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The invention merges the variable update operations for all K filters into a single simultaneous update process. This allows the system to handle higher frequency bandwidths with more filters without proportionally increasing the variable update time, as all filters share a common update mechanism rather than requiring separate updates.

Inventive Principle:
Principle #5Merging (Combining)

3Manufacturing precision

If filter equation orders M and N are increased to improve filtration quality, then filtering precision is enhanced, but the number of variables to update increases

Engineering Contradiction:
Improvefiltration qualityVSAvoidnumber of variables
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent merges all variable updates across K filters with orders M and N into a single unified update operation. Although higher filter orders increase the number of variables per filter, the simultaneous update approach ensures that the total update time does not increase proportionally with the number of variables, maintaining efficient processing despite increased filtration precision requirements.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7908307B2Filter bank and method for improving efficiency thereof
Publication Date: 2011.03.15 VIA TECH INC
  • US7908307B2 patent drawing
  • US7908307B2 patent drawing
  • US7908307B2 patent drawing

AI summary

The invention provides a method for improving efficiency of a filter bank. The filter bank includes multiple filters implemented by a firmware program. Each of the filters has a corresponding filter equation with a plurality of variables including a plurality of input samples and output samples of the corresponding filter. The variables of the filters are first stored in a specific order, wherein the variables of the same filter are stored together and the input samples and the output samples are stored separately and sorted according to a time index thereof. A starting pointer is then pointed to a first variable of a first filter of the filters. A plurality of current output samples of the filters is then generated according to the filter equations, the variables stored in the specific order, and a plurality of current input samples of the filters. The variables of the filter equations are then updated with the current input samples and the current output samples according to the specific order. Finally, the starting pointer is moved to a next variable of the first variable along a variable update direction for identifying the variables corresponding to a plurality of next samples of the filters.