1. A digital filter comprising: a plurality of programmable filter elements; programmable interconnection logic coupled to the plurality of programmable filter elements for selectively combining, scaling, and accumulating output values received from the plurality of programmable filter elements and providing accumulated values as inputs to the plurality of programmable filter elements; and a filter controller coupled to the plurality of programmable filter elements and the programmable interconnection logic for controlling the plurality of programmable filter elements and the programmable interconnection logic, the filter controller comprising: an instruction memory for storing a control program; and at least one instruction decoder coupled to the instruction memory for programming the plurality of programmable filter elements and the programmable interconnection logic based on the control program.