Equivalent noise bandwidth for FIR filter

5 views (last 30 days)
I would like to compute the equivalent noise bandwidth for an FIR filter. I cannot seem to get the noisebw function to work. The following is my code.
% Equiripple FIR Lowpass filter designed using the FIRPM function.
% All frequency values are in Hz. Fs = 48000; % Sampling Frequency
Fpass = 9600; % Passband Frequency Fstop = 12000; % Stopband Frequency Dpass = 0.057501127785; % Passband Ripple Dstop = 0.0001; % Stopband Attenuation dens = 16; % Density Factor
% Calculate the order from the parameters using FIRPMORD. [N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);
% Calculate the coefficients using the FIRPM function. b = firpm(N, Fo, Ao, W, {dens}); den = (1:N)*1.0; bw = noisebw(b,1,N,Fs); Hd = dfilt.dffir(b);
Can you show me how to do this?

Answers (1)

James Shima
James Shima on 9 Mar 2017
If you go through the entire derivation, you can also compute the noise-equivalent BW of a FIR filter using the following formula:
For FIR filter coeffs h[n], n=0..N-1
fN = Fs * sum(h[n]^2)/(sum(h[n])^2 (two-sided)
Matlab code: fN = Fs*sum(h.^2)/sum(h)^2;

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!