1
$\begingroup$

I've got a set of measured data (amplitude and phase responses) of a filter. And I want to normalize its gain to be unit (equal to 1) for further processing. I know that we can convert to time-domain coefficients and normalize by dividing to its sum of all coefficients.

The question is could we normalize the gain using frequency-domain results (amplitude)? Because converting to time-domain introduces more computational complexity (employ iFFT) which I don't want.

Thank you very much.

BRs,

$\endgroup$

2 Answers 2

1
$\begingroup$

Yes, assuming you want unity gain at max amplitude, just normalize your magnitude coefficients $A[k]$ with regards to the value at maximum magnitude:

$$A_{unityGain}[k] = \frac{A[k]}{\max(A[k])}$$

In matlab:

A_unityGain = A / max(A); % A is the array of magnitude coefficients.

Note: Are you sure you're going to implement this filter in the frequency domain? The reason I'm saying this is if you wanted to implement the filter in the time domain, I don't see why getting the filter coefficients through an inverse Fourier Transform and normalizing them adds any complexity. If you're processing real-time data, you just need to do it once offline.

$\endgroup$
1
  • $\begingroup$ Thanks for your reply. Yes, I definitely want to normalize in frequency domain. $\endgroup$
    – user190055
    Aug 18 at 7:48
1
$\begingroup$

normalize by dividing to its sum of all coefficients.

This will adjust the gain at DC ($\omega = 0$) to unity. That's ok for a lowpass filter but it's less useful for other filter types. Example: for a high pass filter the sum of the impulse response is zero and you do NOT want to divide by that.

So proper definition of "normalization" and "gain of 1" within your specific context is important.

In the frequency domain, you can pick whatever frequency you want to normalize at and divide by the magnitude of that. Could be DC, could be Nyquist, could be the max, could be 1kHz, etc. It really depends on the purpose of the normalization.

$\endgroup$
1
  • $\begingroup$ Thanks for your comment. $\endgroup$
    – user190055
    Aug 18 at 7:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.