%% B2M31CZS cvičení - Vlastnosti a návrh FIR  filtrů
%% Úkoly:
%% Manuální návrh FIR filtru metodou okna - dolní propust
% Popište a vysvětlete princip "metody okna" používané pro návrh FIR filtrů.
% Poté proveďte krok za krokem návrh DP (dolní propusti) s mezním kmitočtem f_c =\frac{f_s }{4}. Volte délku impulsní odezvy 31 (příp. 51, 81), tj. řád filtru M=30 (příp. 50, 80).
% Zobrazujte krok za krokem dílčí mezivýsledky:
% Vykreslete nekonečnou impulsní odezvu ideálního filtru {\mathrm{h}}_{\mathrm{id}} \left\lbrack \mathrm{n}\right\rbrack spočítanou metodou Fourierových řad v rozsahu n=-200:200
% Do stejného obrázku vykreslete zkrácenou impulsní odezvu \mathrm{h}\left\lbrack \mathrm{n}\right\rbrack
% Do dalšího obrázku vykreslete ideální frekvenční charakteristiku H_{\mathrm{id}} \left(e^{j\theta } \right) výše specifikovaného filtru pro N=1000 vzorků a výslednou amplitudovou frekvenční charakteristiku navrženého filtru se zkrácenou impulsní odezvou H\left(e^{j\theta } \right)(obě vždy v lineárním měřítku i v dB).
% Sledujte vliv váhování zkrácené impulsové odezvy Hammingovým a Blackmanovým oknem na výslednou amplitudovou frekvenční charakteristiku navrženého filtru.
% V případě volného času opakujte metodou vzorkování frekvenční charakteristiky (tj. pro numerický odhad nekonečné impulsové odezvy ideální dolní propusti).
%
%% Návrh FIR filtru metodou okna nástroji MATLABu (funkce fir1) - horní propust
% Navrhněte FIR HP s parametry f_c =\frac{f_s }{4}. V prvním kroku zvolte řád filtru M=30 a Hammingovo váhovací okno.

% Wc = ;
M = 30;

% Návrh FIR horní propusti s fc = fs/4
% help fir1


% Zobrazte:
% Frekvenční charakteristiky a impulzní odezvu navrženého filtru při volbě řádu M=30 (přes funkce freqz, impz).
% Srovnejte s frekvenčními charakteristikami IIR filtrů řádu M=6 (pro všechny 4 aproximace - zvlnění v propustném resp. nepropustném pásmu volte R_p =1\mathrm{dB}, R_s =50\mathrm{dB}).

% Frekvenční charakteristika a impulzní odezva filtru



% Srovnání frekvenční charakteristiky s IIR filtry
Miir = 6;
Rp = 1;
Rs = 50;
fs = 8000;

% Butterworth

% Chebyshev I.

% Chebyshev II.

% Elliptický

% Opakujte návrh FIR filtru pro různé řády a různá váhovací okna.
% Zobrazte do jednoho obrázku:
% Amplitudové frekvenční charakteristiky v dB pro navržené filtry řádu M=10,30,50,200 při implicitním použití Hammingova váhovacího okna
% Amplitudové frekvenční charakteristiky v dB pro navržené filtry řádu M=30 při použití odbélníkového, Hammingova a Blackmanova váhovacího okna

% Srovnání FIR filtru s různými řády
M = 10; % = 30, 50, 200


% Srovnání FIR filtru s různými váhovacími okny
% w = ;


%
%% Návrh pásmové propusti
% Navrhněte experimentálně pásmovou propust ve frekvenčním pásmu 300<f<3400 pro filtraci akustického signálu do telefonního pásma pro vzorkovací frekvence f_s =8\mathrm{kHz},16\mathrm{kHz},\;44\ldotp 1\mathrm{kHz}. Volte řád tak, abyste dosáhli potlačení v nepropustném pásmu minimálně 40 dB. Všimněte si jak se mění hodnota potřebného řádu pro různé vzorkovací kmitočty f_s =8,16,\mathrm{resp}\ldotp 44\ldotp 1\mathrm{kHz}\ldotp
% Zobrazte frekvenční charakteristiky navržených stabilních IIR a FIR filtrů pro jednotlivé vzorkovací kmitočty a srovnejte jejich řády

% Návrh pásmové propusti FIR/IIR
fc1 = 300;
fc2 = 3400;

fs = 8000; % nebo 16000, 44100 - záleží na vybraném signálu sig8, sig16 nebo sig44 dále
Rs = 40; % Minimální potlačení v nepropustném (stop) pásmu

% Wc = ;

% Návrh FIR



% Návrh IIR



% Pro navržené filtry realizujte filtraci pro řečové signály v souboru speech_8_16_44.mat (Binární formát v MATLABu, obsahuje 3 signály uložené v proměnných sig8, sig16 a sig44. Ověřte výsledek filtrace ve spektrogramu signálu.

load speech_8_16_44.mat % Obsahuje signály v proměnných sig8, sig16 a sig44

% Filtrace řečového signálu


% Spektrogram filtrovaný vs nefiltrovaný signál


% Vykreslete spektrogramy filtrovaného a nefiltrovaného signálu pro každý vzorkovací kmitočet.
% Na vhodně vybraném přiblížení zobrazených časových průběhů  sledujte vzájemný posun vstupního a výstupního signálu při filtraci IIR a FIR filtrem.

