1. A method for processing an input signal comprising: producing a weighted target vector from the input signal; processing the weighted target vector through an inverse weighting function to create a residual domain target vector; performing a first search process on the residual domain target vector to obtain an initial fixed codebook code-vector; performing a second search process over a subset of possible codebook code-vectors for a low weighted-domain error to produce a final fixed codebook code-vector, wherein the subset of possible codebook code-vectors is based on the initial fixed codebook code-vector; and generating a codeword representative of the final fixed codebook code-vector, where the codeword is for use by a decoder to generate an approximation of the input signal.