40
X31ZZS 7. PŘEDNÁŠKA 10. listopadu 2014 Jednoduché číslicové filtry Klouzavé průměry Úzkopásmové zádrže Diferenciátory Hřebenové filtry Karplusův – Strongův algoritmus Fázovací filtry Audio efekty založené na časovém zpoždění Schroederův algoritmus modelování dozvuku

X31ZZS 7. PŘEDNÁŠKA - cvut.cz

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

X31ZZS – 7. PŘEDNÁŠKA 10. listopadu 2014

• Jednoduché číslicové filtry

– Klouzavé průměry

– Úzkopásmové zádrže

– Diferenciátory

– Hřebenové filtry

– Karplusův – Strongův algoritmus

– Fázovací filtry

– Audio efekty založené na časovém zpoždění

– Schroederův algoritmus modelování dozvuku

Page 2: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Filtr klouzavých průměrů I

,...1,0,]1[]1[][1

][ nNnxnxnxN

ny

)1(

11111

1)(

11

2111

zz

z

Nz

zz

Nzz

NzH

N

N

N

NNN

Page 3: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Filtr klouzavých průměrů II

0 0.5 1

-55

-50

-45

-40

-35

-30

-25

-20

-15

-10

-5

0

--->

--->

|H

(exp(j*

))|

3-bodovy klouzavy prumer (MA filtr)

0 20 40 600

0.05

0.1

0.15

0.2

0.25

0.3

---> n [vzorky]

Impuls

ch.

-1 -0.5 0 0.5 1

-1.5

-1

-0.5

0

0.5

1

1.5

2

---> Re

--->

Im

0 0.5 1-60

-50

-40

-30

-20

-10

0

--->

--->

|H

(exp(j*

))|

20-bodovy klouzavy prumer (MA filtr)

0 20 40 600

0.005

0.01

0.015

0.02

0.025

0.03

0.035

0.04

0.045

0.05

---> n [vzorky]

Impuls

ch.

-1 -0.5 0 0.5 1

-1.5

-1

-0.5

0

0.5

1

1.5

19

---> Re

--->

Im

Page 4: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Filtr klouzavých průměrů III

0 0.5 1-60

-40

-20

0

---> w

--->

|H

(exp(j*w

))|

100-bodovy klouzavy prumer (MA filtr)

0 10 20 30 400

0.002

0.004

0.006

0.008

0.01Im

puls

ch.

---> n (vzorky)

-1 -0.5 0 0.5 1

-1

-0.5

0

0.5

1

---> Re

--->

Im 99

500 1000 1500 2000 2500 3000 3500 4000-1

0

1KLOUZAVE PRUMERY

original

500 1000 1500 2000 2500 3000 3500 4000

0.20.40.60.8 3-bodovy kl.prumer

500 1000 1500 2000 2500 3000 3500 4000

0.2

0.4

0.620-bodovy kl.prumer

500 1000 1500 2000 2500 3000 3500 4000

0.1

0.2

0.3100-bodovy kl.prumer

Page 5: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Filtr klouzavých průměrů IV

0 0.1 0.2 0.3 0.4 0.5 0.6

-0.5

0

0.5

1

0 0.1 0.2 0.3 0.4 0.5 0.6

-80

-60

-40

-20

0 0.1 0.2 0.3 0.4 0.5 0.60

0.2

0.4

0.6

E = 10*log10(filter(ones(1,512),1,x.^2)./512);

Z = [0;filter(ones(1,512),1,abs(diff(x>0)))./512];

Y = E>-30|E>-45&Z>2000;

Page 6: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Úzkopásmová zádrž IIR I

]2[]1[cos2]2[]1[cos2][][ 2

0

2

0 nxrnxrnxRnxRnxny

2

0

2

2

0

2

221

0

221

0

cos2

cos2

cos21

cos21)(

rzrz

RzRz

zrzr

zRzRzH

Page 7: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Úzkopásmová zádrž IIR II

0 0.5 1

-300

-250

-200

-150

-100

-50

0

--->

--->

|H

(exp(j*

))|

Priklad potlaceni frekvence (fr=fs/10)

0 20 40 60

-0.2

0

0.2

0.4

0.6

0.8

---> n [vzorky]

Impuls

ch.

-1 -0.5 0 0.5 1

-1.5

-1

-0.5

0

0.5

1

1.5

---> Re

--->

Im

0 0.5 1-6

-5

-4

-3

-2

-1

0

1

--->

--->

|H

(exp(j*

))|

Filtr pro potlaceni ss slozky

0 20 40 600

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

---> n [vzorky]

Impuls

ch.

-1 -0.5 0 0.5 1

-1.5

-1

-0.5

0

0.5

1

1.5

---> Re

--->

Im

Page 8: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Úzkopásmová zádrž IIR III

0 50 100 150 200 250 300 350 400 450 500-0.5

0

0.5

1EKG signal + rusivych 50 Hz

0 50 100 150 200 250 300 350 400 450 500-0.5

0

0.5

1EKG signal + potlacenych 50 Hz (notch filtr)

500 1000 1500 2000 2500 3000 3500 40000

0.5

1

1.5

2recovy signal se ss slozkou

500 1000 1500 2000 2500 3000 3500 4000-1

-0.5

0

0.5

1

potlaceni ss slozky

Page 9: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Potlačení 50 Hz v EKG signálu

f_s = 500;

f_r = 50;

R = 1;

r = 0.8;

b = [1 -2*R*cos(2*pi*f_r/f_s) R*R];

a = [1 -2*r*cos(2*pi*f_r/f_s) r*r];

load ecg;

signal=ecg; signal=signal/max(abs(signal));

subplot(211), plot(signal(1:500))

title('EKG signal + rusivych 50 Hz')

f_signal=filter(b,a,signal);

subplot(212), plot(f_signal(1:500))

title('EKG signal + potlacenych 50 Hz (notch filtr)')

%pacient je po infarktu

Page 10: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Diferenciátory

]1[][][ nxnxny

]2[][5,0][ nxnxny

4[2]3[]1[][21,0][ nxnxnxnxny

0 0.5 1-60

-40

-20

0

20

---> w

--->

|H

(exp(j*w

))|

2b. diferenciator

0 10 20 30 40-1

-0.5

0

0.5

1

Impuls

ch.

---> n (vzorky)

-1 -0.5 0 0.5 1

-1

-0.5

0

0.5

1

---> Re

--->

Im

0 0.5 1-50

-40

-30

-20

-10

0

---> w

--->

|H

(exp(j*w

))|

3b. diferenciator

0 10 20 30 40-0.5

0

0.5

Impuls

ch.

---> n (vzorky)

-1 -0.5 0 0.5 1

-1

-0.5

0

0.5

1

---> Re

--->

Im 2

0 0.5 1-60

-40

-20

0

---> w

--->

|H

(exp(j*w

))|

5b. diferenciator

0 10 20 30 40-0.2

-0.1

0

0.1

0.2

Impuls

ch.

---> n (vzorky)

-1 -0.5 0 0.5 1

-1

-0.5

0

0.5

1

---> Re

--->

Im 4

Page 11: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Diferenciátory

1000 2000 3000

0

0.5

1Detekce R spicek v EKG signalu

original

1000 2000 3000

0.02

0.04

0.06 2b. diferenciator

1000 2000 3000

0.02

0.043b. diferenciator

1000 2000 3000

0.01

0.02

0.035b. diferenciator

20 40 60

00.20.40.60.8

detail

20 40 60

0.02

0.04

0.06

20 40 60

0.02

0.04

20 40 60

0.01

0.02

0.03

po vyhlazeni

20 40 60

0.01

0.02

0.03

20 40 60

0.01

0.02

0.03

20 40 60

0.0050.01

0.0150.02

Page 12: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Hřebenový FIR filtr

D

DD

z

gzzgzH

1)(

][][][ Dnxgnxny

0 0.5 1-20

-15

-10

-5

0

5

---> w

--->

|H

(exp(j*w

))|

Hrebenovy FIR filtr 6.radu

+g

-g

0 10 20 30 400

0.2

0.4

0.6

0.8

1

Impuls

ch.

---> n (vzorky)

-1 -0.5 0 0.5 1

-1

-0.5

0

0.5

1

---> Re

--->

Im 6

0 0.5 1-20

-15

-10

-5

0

5

---> w--

-> |H

(exp(j*w

))|

Hrebenovy FIR filtr 7.radu

+g

-g

0 10 20 30 400

0.2

0.4

0.6

0.8

1

Impuls

ch.

---> n (vzorky)

-1 -0.5 0 0.5 1

-1

-0.5

0

0.5

1

---> Re

--->

Im 7

Page 13: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

FIR filtr se dvěma nulami

Page 14: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

FIR filtr se třemi nulami

Page 15: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

FIR filtry (klouzavý průměr a hřebenový filtr)

Page 16: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

FIR filtry

Page 17: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Hřebenový IIR filtr

gz

z

zgzH

D

D

D

1

1)(

0 0.5 1

-5

0

5

10

15

20

--->

--->

|H

(exp(j*

))|

Hrebenovy IIR filtr 6.radu

0 50 100 150 2000

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

---> n (vzorky)

Impuls

ch.

-1 -0.5 0 0.5 1

-1.5

-1

-0.5

0

0.5

1

1.5

6

---> Re

--->

Im

+g

-g

][][][ Dnygnxny

Page 18: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Číslicový fázovací filtr

gz

gzg

gz

gz

zg

zgzH

D

D

D

D

D

D

/11

1)(

0 50 100 150 200

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

---> n (vzorky)

Impuls

ch.

-1 -0.5 0 0.5 1

-1.5

-1

-0.5

0

0.5

1

1.5

---> Re

--->

Im0 0.5 1

-5

0

5

--->

--->

|H

(exp(j*

))|

allpass

0 0.5 1

-2

0

2

--->

--->

arg

(H(e

xp(j*

)))

][][][][ DnxnxgDnygny

Page 19: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Karplusův – Strongův alg.

0 0.5 1 1.5 2 2.5 3 3.5 4-4

-2

0

2

4

cas [s]

am

plit

uda

Time

Fre

quency

0 0.5 1 1.5 2 2.5 3 3.50

0.5

1

1.5

2

x 104

Page 20: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Karplusův – Strongův alg.

kytara

harfa

mandolína

klavír

bicí

Page 21: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Karplusův – Strongův alg. fs = 44.1e3; % [Hz]

doba= 4; % [s]

z = [ ];

g = 0.5;

f0 = [82.4 110 146.8 196 246.9 329.6]; % [Hz]

for k=1:length(f0)

x=zeros(1,doba*fs); % generovani budiciho signalu

D=round(fs/f0(k)) % modelujiciho drnknuti

x(1:D)=randn(1,D); % buzeni explozi bileho sumu

a=[1 zeros(1,D-1) -g -g]; b=[1];

y=filter(b,a,x);

z=[z y];

end;

Page 22: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Audio efekty založené na časovém

zpoždění (dozvuky a echa)

0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5

x 104

-0.2

0

0.2

original

0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5

x 104

-0.2

0

0.2

jednoduche echo

• K signálu přičítáme stejný signál, avšak

zpožděný a tlumený (jednoduché echo)

• Zpoždění vnímáme jako echo, je-li delší než 50 ms

• Malé zpoždění přináší oživení a rozjasnění zvuku

• Rychlost zvukové vlny je 350 m/s (331,4 + 0,6 T)

1000 2000 3000 4000 5000 6000 7000 8000

-2000

-1000

0

1000

2000

original

1000 2000 3000 4000 5000 6000 7000 8000

-2000

-1000

0

1000

2000

3-nasobne echo

Page 23: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

• Dozvuk 0,5 sekundy =>

zvuková vlna urazí 175

metrů

– Např. v koupelně o 3m

by se vlna odrazila

58x (pak by byla vlna

více či méně

absorbována)

Audio efekty založené na časovém zpoždění (dozvuky a echa)

Page 24: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

• Přímá vlna (bez odrazů)

– přímá cesta k posluchači

• První odrazy

– Odražené vlny příchází 0,01-0,1 s po přímé vlně

Audio efekty založené na časovém zpoždění (dozvuky a echa)

Page 25: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

• Dozvuk

– obsahuje tisíce pozdějších odrazů

Odrazy impulsního signálu (exponenciální tlumení)

Audio efekty založené na časovém zpoždění (dozvuky a echa)

• Stand.doba dozvuku

-pokles o 60 dB

• Typický koncertní sál má

dozvuk 1.5 - 3 sekundy

• Chrám sv. Víta až 8 s

Page 26: X31ZZS 7. PŘEDNÁŠKA - cvut.cz
Page 27: X31ZZS 7. PŘEDNÁŠKA - cvut.cz
Page 28: X31ZZS 7. PŘEDNÁŠKA - cvut.cz
Page 29: X31ZZS 7. PŘEDNÁŠKA - cvut.cz
Page 30: X31ZZS 7. PŘEDNÁŠKA - cvut.cz
Page 31: X31ZZS 7. PŘEDNÁŠKA - cvut.cz
Page 32: X31ZZS 7. PŘEDNÁŠKA - cvut.cz
Page 33: X31ZZS 7. PŘEDNÁŠKA - cvut.cz
Page 34: X31ZZS 7. PŘEDNÁŠKA - cvut.cz
Page 35: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Audio efekty založené na časovém

zpoždění (dozvuky a echa) , př.36

Zvukový efekt

Zpoždění

v sekundách

Filtrační

koeficient

pod mostem 0,400 0,30

v chrámu 0,250 0,30

elektronicky vytvářený umělý dozvuk 0,200 0,90

klasické echo 0,150 0,50

v podzemní chodbě 0,120 0,70

v koncertní sini 0,100 0,40

elektronický efekt 0,085 0,90

ve sprše 0,030 0,60

v malé místnosti 0,010 0,50

mikrofonní zpětná vazba 0,001 0,97

Page 36: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Schroedrův algoritmus

modelování dozvuku

• HF - hřebenové filtry: určují délku ozvěny

(délka zpoždění je 10 až 50 ms; zapojují se paralelně)

• AF - all-pass filtry: „zahuštují a rozprostírají“ ozvěny

(délka zpoždění je do 5 ms; zapojují se do kaskády)

• Realističtější modelování dozvuku

• Pracné nastavení parametrů modelu

Page 37: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Audio efekty založené na časovém

zpoždění (dozvuky a echa), př.36

E = [0.400 0.30

0.250 0.30

0.200 0.90

0.150 0.50

0.120 0.70

0.100 0.40

0.085 0.90

0.030 0.60

0.010 0.50

0.001 0.97];

for k=1:length(E)

zpozdeni = E(k,1);

g = E(k,2);

D = round(zpozdeni*f_s); % [vzorky]

a = [1 zeros(1,D-1) -g];

y = filter(1,a,x);

soundsc( y',f_s)

pause(3)

end;

Page 38: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Audio efekty založené na časovém

zpoždění (dozvuky a echa)

E = [0.400 0.30

0.250 0.30

0.200 0.90

0.150 0.50

0.120 0.70

0.100 0.40

0.085 0.90

0.030 0.60

0.010 0.50

0.001 0.97];

for k=1:length(E)

zpozdeni = E(k,1);

g = E(k,2);

D = round(zpozdeni*f_s); % [vzorky]

a = [1 zeros(1,D-1) -g];

y = filter(1,a,x);

soundsc(y',f_s)

pause(3)

end;

Page 39: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Číslicové filtry - obecně

)1(]1[][][ 110 Mnxbnxbnxbny M

1

0

11

0

1

1

1

10)(M

nM

nM

nM

n

n

n

M

Mz

zbzbzbzbbzH

M

m

m

L

l

l mnyalnxbny10

][][][

MMM

LLL

M

m

mMm

L

l

lLl

MM

LL

M

m

mm

L

l

ll

azaz

bzbzb

zb

zb

zaza

zbzbb

zb

zb

zH

1

1

110

0

01

1

110

0

0

1)(

Diferenční rovnice FIR

Přenosová funkce FIR filtru

Diferenční rovnice IIR

Přenosová funkce IIR filtru

Page 40: X31ZZS 7. PŘEDNÁŠKA - cvut.cz

Schéma IIR filtru-přímá struktura