How can I find the transfer function of a lowpass filter using the Kaiser windowing method?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
From the code given, how can I find the transfer function and the order of the numerator and denominator? I am having trouble on how to implement kaiserord and kaiser into the code.
% design parameters
wp=2000*pi;
ws=3000*pi;
f0=8000;
w0=2*pi*f0;
A=45;
% cut-off frequency
wc=0.5*(wp+ws);
% normalized cut-off frequency
wc_n=wc/(0.5*w0);
% delta cut-off frequency
del_wc=ws-wp;
% delta normalized cut-off frequency
del_wc_n=del_wc/(0.5*w0);
% beta
if(A<=21)
beta=0;
elseif(21<A & A<50)
beta=0.5842*(A-21)^0.4+0.07886*(A-21);
elseif(A>=50)
beta=0.1102*(A-8.7);
end
% order
M=(A-7.95)/(2.285*pi*del_wc_n);
M=ceil(M);
% filter coefficients
b=fir1(M-1,wc_n,'low',kaiser(M,beta));
% magnitude
[H,f]=freqz(b,1,256,f0);
% magnitude spectrum
figure,plot(f,20*log10(abs(H)),'Color',line_color,'LineWidth',line_width),grid
xlabel('f [Hz]','FontSize',font_size), ylabel('20log_{10}(H(f)) [dB]','FontSize',font_size)
title('Magnitude Spectrum','FontSize',font_size)
set(gca,'FontSize',font_size)
set(gca,'XLim',[0 4000]), set(gca,'XTick',[0:500:4000],'FontSize',font_size)
set(gca,'YLim',[-120 20]), set(gca,'YTick',[-120:20:20],'FontSize',font_size)
0 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Digital Filter Design finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!