A7B3ZZS 6. PŘEDNÁŠKA 7. řína 4 Číslicové IIR filtry vyšších řádu filtry se dvěma póly (filtry s více póly) řaení filtrů Aplikace banka filtrů (reonátorů) filtrační syntéy s časově prom. filtry formantové syntéy (samohlásky, nástroe) potlačení šumů
IIR filtr s edním pólem (pohyb pólu po reálné ose)
IIR filtr s edním pólem a ednou nulou (pohyb nuly a pólu po reálné ose)
Filtr se dvěma póly - reonátor
Filtr se dvěma póly y pásmová propust IIR [ n] x[ n] a y[ n ] a y[ n ] H( ) re re a a f f s a r cos a r
H( ) Filtr se dvěma póly pásmová propust IIR re re re re r
sin cos sin cos ) ( r r r re re re re H Filtr se dvěma póly pásmová propust IIR
cos sin cos sin cos ) ( r r r r r re re re re H Filtr se dvěma póly pásmová propust IIR
cos sin cos sin cos ) ( a a r r r r r re re re re H Filtr se dvěma póly pásmová propust IIR
cos sin cos sin cos ) ( a a r r r r r re re re re H r a f s f cos r a Filtr se dvěma póly pásmová propust IIR
Filtr se dvěma póly pásmová propust IIR cos sin cos sin cos ) ( a a a a r r r r r re re re re H r a f s f cos r a
8 r,975 Filtr se dvěma póly (tlumené oscilace) r 8,95 8 r,95
Filtr se dvěma póly - reonátor (netlumené oscilace) 8 r,5 8 r,5 8 r,75
Filtr se dvěma póly - reonátor (konstantní koeficient a ) a cos( / 6) a a cos( / 4) a a cos( /3) a
Filtr se dvěma póly - reonátor (konstantní koeficient a ) a cos( / 4) a,8 a cos( / 4) a a cos( / 4) a,
Pohyb pólů (konstantní úhel; růný poloměr)
Pohyb pólů po kružnici (růný úhel; konstantní poloměr)
Pohyb nul IIR filtru (po reálné ose)
IIR s více póly (pohyb vybraných pólů po ose)
IIR s více póly (pohyb vybraných pólů po kružnici)
Imaginary Part Imaginary Part Imaginary Part Imaginary Part Imaginary Part Imaginary Part Imaginary Part Imaginary Part Imaginary Part -rovina reonátorů - - Real Part - - Real Part - - Real Part - - Real Part - - Real Part - - Real Part - - Real Part - - Real Part - - Real Part
Amplitudové charakteristiky reonátorů.5.5.5 5 5 5.5.5.5 5 5 5.5.5.5
Analýa harmonických.5 -.5 5 4-5 5 5 3 35 4 45 5.9.8.7.6.5.4.3 3.5..5..5.3.35.4. Time..8.6.. 3 4 5 6 h h h3 h4 h5 h6 h7 h8 h9.4.
frekvence vitr F Filtrační syntéa větru 5.5 3 4 5 6 7 8 9 -.5 3 4 5 6 7 8 9 4 3 4 5 6 7 8 9 ---> cas [s]
Filtrační syntéa větru clear, fs = 8; % vorkovaci frekvence [H] doba = ; % doba trvani tonu [s] x=*rand(,fs*doba)-; % generovani bileho sumu nt=:/fs:doba-/fs; % casova osa % souradnice ridicich bodu sily vetru X=[.5.3.4.5.65.7.75.8.85.9.95 ]; Y=[...3.5.3.8.5.7.]; Fmin=; Fmax=9; y=(fmax-fmin)*y+fmin; % casovy prubeh interpolovane ridici frekvence fr=interp(x,y,nt/nt(end));
Filtrační syntéa větru % navrh reonatoru B = ; % sirka pasma reonatoru R = -B*pi/fs; % vypocet polomer polu a =-*R*cos(*pi*fr/fs); % vypocet koeficientu b=(-r)*sqrt(r*(r-4*cos(*pi*fr/fs)+)+); % norm.koeficient y=eros(,length(x)); for n=3:length(x) y(n)=b(n)*x(n)-a(n)*y(n-)-(r.^)*y(n-); end
frekvence vitr Filtrační syntéa vln 4 A B fr.5 5 5 5 5-4 6 8 4 6 4 x 4 4 6 8 4 6 8 ---> cas [s]
Filtrační syntéa vln % souradnice ridicich bodu X =[..5.35 ]; % casova osa Y_A=[.8.5.8.]; % amplituda Y_B=[ 3 4 6 4]; % sirka pasma Y_f=[8 8 ]; % reonancni frekvence % casovy prubeh interpolovane ridici amplitudy G=interp(X,Y_A,nT/nT(end)); % casovy prubeh interpolovane sirky pasma B=interp(X,Y_B,nT/nT(end)); % casovy prubeh interpolovane ridici reonancni f fr=interp(x,y_f,nt/nt(end));
Filtrační syntéa vln x=*rand(,fs*doba)-; for n=3:length(x) R(n) = -B(n)*pi/fs; % vypocet polomer polu a(n) =-*R(n)*cos(*pi*fr(n)/fs); % vypocet koeficientu b(n)=(-r(n))*sqrt(r(n)*(r(n)-4*cos(*pi*fr(n)/fs)+)+); % norm.koeficient y(n)=g(n)*(b(n)*x(n)-a(n)*y(n-)-(r(n).^)*y(n-)); end
Filtrační syntéa Aplikace s šumem reonátory a obálkami buben činel
Filtrační syntéa 8 řídící frekvence 6 4 3 4 5 6 7 8 9. déšť.5 -.5 -. 3 4 5 6 7 8 9
Filtrační syntéa hodiny Fr=35; B = 55; Fr=3; B = 75;
Frequency housle Filtrační syntéa -.5.5.5 -...3.4.5.6 5-5.5.5.5.8.6.4. % filtr (model housli) %%%%%%%%%%%%% F = [5, 5, 3, 4]; BW = [3,, 7, 5]; 3 4 5 6 7 Time x 4
Filtrační syntéa klarinet.5 -.5..4.6.8..4.6.8.8.6.4...4.6.8..4.6.8.5 -.5..4.6.8..4.6.8 % navrh reonatoru fr = 9; % reonancni frekvence B = ; % sirka pasma reonatoru
Syntéa stroů vlak letadlo
Syntéa materiálu dřevo kov sklo
Potlačení šumu v řeči bankou filtrů
Potlačení šumu v řeči bankou filtrů
Potlačení šumu v řeči bankou filtrů banka filtrů Dilci normovane propusti.9.8.7.6.5.4.3.. 4 6 8
Potlačení šumu v řeči bankou filtrů pracování signálů v i-tém pásmu
Potlačení šumu v řeči bankou filtrů
Potlačení šumu v řeči bankou filtrů
Potlačení šumu v řeči bankou filtrů
Potlačení šumu v řeči bankou filtrů
Potlačení šumu v řeči bankou filtrů III (generování rušení) %%%%%%%%%%%%%%%%%% GENEROVANI SUMU %%%%%%%%%%%%%%%%%%%% k_noise=.; sig=input(' = sinusove ruseni; = nahodny sum... ') if sig==, noise=k_noise*randn(length(xc),); end; if sig==, % rusivy signal 8H noise=sqrt()*k_noise*sin(*pi*(:length(xc)-)*8/8)'; end; x=xc+noise; 'cinitel odstupu signalu k sumu' snr=*log(sum(xc.^)/sum(noise.^))
Potlačení šumu v řeči bankou filtrů IV (banka filtrů) f_s=8; % vorkovaci frekvence [kh] P=8; % pocet propusti f_r=f_s/(*p)*(:p-); % vypocet reonancnich frekvenci R=.7; % polomer polu b=-*r*cos(*pi*f_r/f_s); % vypocet koeficientu reonatoru for i=:p % normovani charakteristik Ha(:,i)=(freq(,[ b(i) R.^],8)); Ham(i)=max(abs(Ha(:,i))); % vypocet normovacich koef. Han(:,i)=(freq(/Ham(i),[ b(i) R.^],8)); end; plot(abs(han)); axis tight title('dilci normovane propusti') % obraeni ampl. Dilci normovane frekvencnich propusti ch..9.8.7.6.5.4.3.. 4 6 8
Imaginary Part Imaginary Part Imaginary Part Imaginary Part Imaginary Part Imaginary Part Imaginary Part Imaginary Part Potlačení šumu v řeči bankou filtrů (banka filtrů) for k=:p % obraeni impulsnich charakteristik subplot(3,3,k), imp([ ],[ b(k) R.^]) end; % obraeni -roviny for k=:p subplot(3,3,k), plane([ ],[ b(k) R.^]) end;.5. pasmo 4 --> n 4. pasmo.5 4 --> n.5 7. pasmo.5. pasmo 4 --> n 5. pasmo.5 4 --> n 8. pasmo.5 3. pasmo 4 --> n 6. pasmo.5 -.5 4 --> n - - - Real Part - Real Part - - - Real Part - Real Part - - - Real Part - Real Part -.5 4 --> n - 4 --> n - - Real Part - - Real Part
Potlačení šumu v řeči bankou filtrů (stanovení meí v pásmech) %%%%%% FILTRACE A VYPOCET MEZE PRO OREZAVANI %%%%%% k_noise=.; k_int =.8; for i=:p noisef(:,i)=filter(/ham(i),[ b(i) R.^],noise(:)); % filtrace noisefa(:,i)=abs(noisef(:,i)); % usmerneni nff(:,i)=filter(,[ -k_int],noisefa(:,i)); % obalka me(i)=mean(abs(nff(:,i))); end; stem(me) % vypocet mei ve vsech pasmech.4 Mee pro oreavani v ednotlivych pasmech..8.6.4. 3 4 5 6 7 8 ---> poradi pasma
Potlačení šumu v řeči bankou filtrů (filtrace a roklad do pásem) %%%%%%%%%%%%% POTLACENI SUMU BANKOU FILTRU %%%%%%%%%%%%% %%% FILTRACE A ROZKLAD DO PASEM - VYPOCET OBALEK %%%%%%% for i=:p xf(:,i)=filter(/ham(i),[ b(i) R.^],x); % filtrace xfs(:,i)=sign(xf(:,i)+.); % namenko xfa(:,i)=abs(xf(:,i)); % usmerneni xfaf(:,i)=filter(,[ -k_int],xfa(:,i)); % obalka subplot(4,,i), plot(xfaf(:,i)); axis tight xfafe(:,i)=abs(xfaf(:,i)-me(i)); xr(:,i)=xfafe(:,i).*xfs(:,i); subplot(4,,i), plot(xf(5:,i)) subplot(4,,i), plot(xr(5:,i)); axis tight end; xs=sum(xr'); xfs % orinuti xf xfa xfaf xfafe xr
Potlačení šumu v řeči bankou filtrů 4 - -. pasmo 3 4 5 3. pasmo 3 4 5.5 5. pasmo.5.5.5 3 4 5 7. pasmo 3 4 5. pasmo - - -.5 3 4 5 4. pasmo 3 4 5.5 6. pasmo.5 -.5 3 4 5 8. pasmo 3 4 5 5 5. pasmo 3 4 5 6 3. pasmo 4.5.5.5 3 4 5 5. pasmo 3 4 5.5 7. pasmo.5 3 4 5 8 6 4 4.5. pasmo 3 4 5 4. pasmo 3 4 5.5 6. pasmo 3 3 4 5 8. pasmo 3 4 5 -. pasmo 3 4 5 4 3. pasmo - -4 3 4 5 5. pasmo - - 3 4 5 7. pasmo 3 4 5 - -. pasmo 3 4 5 4. pasmo - 3 4 5 6. pasmo 3 4 5 8. pasmo - 3 4 5
Potlačení šumu v řeči bankou filtrů xf xr x xs
Frequency ---> f Frequency ---> f Potlačení šumu v řeči bankou filtrů for i=:3 soundsc(x); pause(), soundsc(xs); pause();end; subplot(); specgram(x); subplot(); specgram(xs);.8.8 Spektrogram puvodniho signalu.6.4. 4 6 8 4 6 8 Time.8.6.4. 5 5 5 ---> n Spektrogram signalu s potlacenym sumem.8.6.4..6.4. 4 6 8 4 6 8 Time 5 5 5 ---> n