%Návrh filtru IIR typu HP
clear all
[filename,pathname] = uigetfile( ...
{'*.wav', 'Zvukové soubory (*.wav)';
'*.wav', 'Wave (*.wav)';...
'*.*', 'Vsechny soubory (*.*)'},...
'Vyber soubor');
[pathstr,name,ext,versn] = fileparts(filename);  
[x,fvz]=wavread(fullfile(pathname,filename));

%propustne pasmo
fp = [1000];
%Nepropustne pasmo
fs = [100];
%Zvlneni v propustnem pasmu
rp = 3;
%minimalni utlum
rs = 40;
%Normovany mezni kmitocet wnbutt a nejnizsi mozny rad Nbutt
[Nbutt,wnbutt] = buttord ( fp/(fvz/2), fs/(fvz/2), rp, rs );
%koeficienty prenosove funkce
typ = 'high';
[bbutt, abutt] = butter( Nbutt, wnbutt, typ);

[H,f]=freqz(bbutt,abutt,1024,fvz);
subplot(2,1,1)
%nize řádek je rozdil oproti predchozi m -file; zobrazeni osy y v dB
semilogx(f,20*log10(abs(H)))


subplot(2,1,2)
semilogx(f,unwrap(angle(H))/pi)


subplot(2,1,1)
set(gca,'xlim',[20 fvz/2])
set(gca,'ylim',[-70 0])
xlabel('{\itf} (Hz) \rightarrow')
ylabel('Modul (dB) \rightarrow')
legend('{\it\bfH} ({\itf})')
title('\bfKmitočtová charakteristika systému','FontName','MS Sans Serif')
grid on

subplot(2,1,2)
set(gca,'xlim',[20 fvz/2])
xlabel('{\itf} (Hz) \rightarrow')
ylabel('Fáze (\pi rad) \rightarrow')
legend('{\it\bfH} ({\itf})')
title('\bfKmitočtová charakteristika systému','FontName','MS Sans Serif')
grid on

y = filter(bbutt,abutt,x);
y=y./max(y);

[save_file,save_path] = uiputfile('*.wav','Uložit jako',[name,'_HP']);
savefile = [ save_path,save_file];
wavwrite(y,fvz,savefile);
