%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ZZS - 5.cvičení: Jednoduché číslicové filtry % R.Čmejla, 20.října 2014 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % skript vyžaduje soubory: emg.mat % jedna.wav % osum1.sig %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% % Příklad 1: Diferenciátor a integrátor - simulace % Generujte krátkou číslicovou posloupnost a ověřte chování diferenciátoru % a integrátoru % a) na diferenční rovnice popisujících uvedené filtry pomocí cyklu for, % b) pomocí funkce diff a cumsum, % c) pomocí funkcí filter % Řešení x=[0 0 0 0 5 5 5 5 8 8 8 8 3 3 3 3 5 5 5 5]; y_int(1)=x(1); for n=2:length(x) y_dif(n)=x(n)-x(n-1); y_int(n)=x(n)+y_int(n-1); end; subplot(231), plot(y_dif), hold on, plot(x,':r'), hold off legend('cyklus for'), xlabel('---> n') subplot(234), plot(y_int), hold on, plot(x,':r'), hold off legend('cyklus for'), xlabel('---> n') subplot(232), plot([0 diff(x)]), hold on, plot(x,':r'), hold off legend('diff'), xlabel('---> n') subplot(235), plot(cumsum(x)), hold on, plot(x,':r'), hold off legend('cumsum'), xlabel('---> n') subplot(233), plot(filter([1 -1],1,x)), hold on, plot(x,':r'), hold off legend('filter'), xlabel('---> n') subplot(236), plot(filter(1,[1 -1],x)), hold on, plot(x,':r'), hold off legend('filter'), xlabel('---> n') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Příklad 2: Diferenciátor a integrátor - chování % Generujte několik period číslicového sinusového, obdélníkového % a trojúhelníkového průběhu. % a) Zobrazte průběhy diferencí generovaných signálů % b) Zobrazte průběhy integrací generovaných signálů x1=sin(0:0.2:10-0.2); x2=square(0:0.2:10-0.2); x3=sawtooth(0:0.2:10-0.2,.5); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Příklad 3: Filtrace řečového signálu % a) Poslechněte si řečový signál na výstupu dolní propusti % b) Poslechněte si řečový signál na výstupu horní propusti % c) Porovnejte součet filtrovaných signálů s původním % d) Analyzujte použité filtry (frekvenční charakteristika, impulzová % charakteristika, rozložení nul a pólů) b_dp=[1 1]; a_dp=[1 -0.9]; % DP b_hp=[1 -1]; a_hp=[1 0.9]; % HP jedna=wavread('jedna.wav'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Příklad 4: Filtrace řečového signálu číslicovým filtrem s jedním pólem % Zopakujte úlohu z předcházejícího příkladu s jednoduchým číslicovým % filtrem, jehož pól má poloměr: % a) r = 0,9 % b) r = 0,95 % c) r = 0,99 % d) r = -0,9 % e) r = -0,95 % f) r = -0,99 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Příklad 5: Detektor obálky % Realizujte detektory obálek load osum1.sig xc=osum1./max(abs(osum1)); plot(xc,'k') xi=filter(1,[1 -0.99],abs(xc)); plot(xi,'k'), xi=filter(1,[1 -0.8],abs(xc)); plot(xi,'k'), xi=filter(1,[1 -0.3],abs(xc)); plot(xi,'k'), %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Příklad 6: Špičkový detektor % EMG.mat signál load emg.mat; xc=emg; %load osum1.sig %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Příklad 7: Aplikace s šumem a obálkami % efekty fs=44100; doba=2.5; t=0:1/fs:doba-1/fs; x=randn(1,doba*fs); X=[0 0.05 0.4 1]; Y=[1 0.05 0.25 0]; O=interp1(X,Y,t./t(end)); sig=x.*O; soundsc(sig,fs) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Příklad 8: Přelaďování filtru DÚ % Plynule (podle sinusovky) přelaďujte IIR filtr % 1.řádu (změnou koeficientu) % Na vstup filtru přiveďte bílý šum fs = 8000; % vzorkovaci frekvence [Hz] fm = .5; % frekvence ridici sinusovky doba = 6; % doba trvani tonu [s] nT = 0:1/fs:doba-1/fs; % casova osa x=rand(1,length(nT))-.5; % Zobrazte: % - řídící průběh % - výstupní průběh % - spektrogram výstupního průběhu %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Příklad 9: Aplikace s šumem a obálkami DÚ % % Realizujte jednoduchý buben na principu filtrační syntézy % Parametry filtru: b=1; a=[1 -0.7934]; % Generování bílého šumu pro buzení filtru: x=2*rand(1,fs*doba)-1; fs = 44100; % vzorkovaci frekvence [Hz] doba = .5; % doba trvani tonu [s] nT=0:1/fs:doba-1/fs; % casova osa % souřadnice řídících bodů obálky výstupního signálu X =[0 .15 1]; % casova osa Y =[1 .05 0]; % amplituda % Zobrazte: % - rozlozeni nul a polu % - amplitudovou frekvencni charakteristiku % - amplitudovou obálku % - výstupní průbeh %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Příklad 10: Aplikace s šumem a obálkami DEMO % padající tón %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Příklad 11: Aplikace s šumem a obálkami DEMO % parní stroj