1. A method comprising: receiving an input signal; producing a target vector from the input signal; constructing a plurality of inverse weighting functions based on the target vector; evaluating an error value associated with each of the plurality of inverse weighting functions to produce a fixed codebook code-vector; and generating a codeword representative of the fixed codebook code-vector, where the codeword is for use by a decoder to generate an approximation of the input signal.