An input signal is pre-distorted to reduce distortion resulting from subsequent signal amplification. Frequency-dependent pre-distortion is preferably implemented in combination with frequency-independent pre-distortion, where the frequency-dependent pre-distortion is generated by expanding the derivative of a product of a pre-distortion function and the input signal and then relaxing constraints on the pre-distortion function and/or on frequency-dependent filtering associated with the frequency-dependent pre-distortion. In one implementation, four different frequency-dependent pre-distortion signals are generated for the expansion using up to four different pre-distortion functions and up to four different frequency-dependent filters.