Equivalent noise bandwidth for FIR filter
5 views (last 30 days)
Show older comments
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?
0 Comments
Answers (1)
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;
0 Comments
See Also
Categories
Find more on Filter Design in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!