MATLAB: How to Design FIR Highpass Filter in which Stopband Ripples attenuate (width) as frequency is increased

dspfilter

Hi,I have to design following FIR filter where Stopband Ripples attenuate (width) as frequency is increased.
I am able to design FIR filter as following, Where you can see that all ripples have same width, which is not desired
Here is my Code for above given Plot.
clc;clear all; close all;
A=36;
N=30;
fs=48000;
fc=10000;
omega=2*fc/fs;
k=0:1:N;
beta=2.9087;
kaiser_win=kaiser(N+1,beta);
b_fir1 = fir1(N,omega,'high',kaiser_win);
f = linspace(0,10000,10000); %frequency vector
H_fir1 = freqz(b_fir1,1,f,fs);
plot(f,db(abs(H_fir1)))
grid
xlabel('frequency in Hz'), ylabel('amplitude in dB')
%axis([0 10000 -60 6])
title('Window method (FIR)')

Best Answer

  • Notice that in the first plot the x-axis (frequency) scale is logarithmic and in the lower plot, linear.
    Try this:
    semilogx(f,db(abs(H_fir1)))