ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ Fakulta elektrotechnická Katedra radioelektroniky
Simulace nelineárního zvukového efektu Bakalářská práce
1
Vedoucí práce: Ing. František Rund, Ph.D. Student: František Divecký leden 2016
2
České vysoké učení technické v Praze Fakulta elektrotechnická katedra radioelektroniky
ZADÁNÍ BAKALÁŘSKÉ PRÁCE Student: František Divecký Studijní program: Komunikace, multimédia a elektronika Obor: Multimediální technika Název tématu: Simulace nelineárního zvukového efektu
Pokyny pro vypracování: Seznamte se s problematikou popisu nelineárních soustav. Vybranou metodu aplikujte na popis zvoleného nelineárního zařízení a vytvořte (např. v prostředí Matlab) simulaci tohoto zařízení. Parametry simulovaného zařízení ověřte porovnáním s naměřenými hodnotami i poslechovým testem. Seznam odborné literatury: [1] Zölzer, U.: DAFX - Digital Audio Effects. John Wiley & Sons., 2011. 602 s. ISBN 948-0470-66599-2 [2] Novak, A., Simon L., Lotton P.: "Analysis, synthesis, and classification of nonlinear systems using synchronized swept-sine method for audio effects", EURASIP Journal on Advances in Signal Processing. Vol. 2010(0), pp. 4.
Vedoucí: Ing. František Rund, Ph.D. Platnost zadání: do konce letního semestru 2015/2016
L.S. doc. Mgr. Petr Páta, Ph.D. vedoucí katedry
prof. Ing. Pavel Ripka, CSc. děkan V Praze dne 10. 2. 2015
Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o dodržování etických principů při přípravě vysokoškolských závěrečných prací.
4
Děkuji panu Ing. Františku Rundovi, Ph.D. za vedení práce a mnoho věcných připomínek. Děkuji svým rodičům za morální podporu v průběhu práce.
5
Abstrakt Tato práce se zabývá možnostmi modelování kytarových distortion a overdrive efektů. V první části budou představeny metody simulace Volterra series, modifikované Volterra series, Hammersteinův model a whitebox modelování. V druhé části budou realizovány Hammersteinův a whitebox model podomácku vyrobené kopie efektu Tube Screamer TS-9 v prostředí Matlab a výsledky porovnány s naměřeným signálem z reálného efektu.
Abstract This paper describes possible ways to model guitar distortion and overdrive effects. In first section are introduced methods of measurement and modelling of non-linear systems: Volterra series, modified Voterra series, Hammerstein model and whitebox. Second section contains outline of Matlab implementation of Hammerstein and whitebox models of home-made Tube Screamer TS-9 copy and results are compared to measured signal of real effect.
6
Obsah 1 Úvod....................................................................................................8 2 Blackbox modelování nelineárních systémů...................................9 2.1 Volterra series....................................................................................................................9 2.2 Modified Volterra series.....................................................................................................9 2.3 Hammerstienův model, Wiennerův model......................................................................10
3 Metoda identifikace Sweptsine.......................................................11 4 Whitebox modelování......................................................................16 4.1 Popis konkrétního whitebox modelu...............................................................................16
5 Realizace modelů v prostředí Matlab............................................21 6 Měření..............................................................................................22 7 Závěr.................................................................................................25 Seznam použité literatury:................................................................26 Seznam přiložených souborů.............................................................27
7
1 Úvod Lineární systémy jsou takové, které se dají popsat kombinací sčítání, násobení konstantou a derivacemi (pro systémy spojité v čase) nebo zpožděními (pro systémy diskrétní v čase). U lineárních systémů platí, že pokud na vstup přivedeme harmonický signál, na výstupu bude opět harmonický signál se stejnou frekvencí, ale může mít jinou amplitudu a fázi. V lineárních systémech také platí princip superpozice: výstup systému na součet vstupních signálů je roven součtu výstupů na jednotlivé vstupy. Nelineární systémy jsou takové, které tyto podmínky nesplňují. Pokud na vstup nelineárního systému přivedeme harmonický signál, spektrum výstupního signálu bude obsahovat kromě základní frekvence stejné, jako měl vstupní signál, také harmonické složky, jejichž frekvence je celočíselným násobkem frekvence základní. V dalším textu budu nadále rozlišovat statické a dynamické nelinearity, tak jak byly zavedeny v [6]: statické nelinearity nazývám takové, kde vstupně-výstupní vztah je funkcí pouze okamžité hodnoty vstupu, dynamické označím takové, kde je vstupně-výstupní vztah funkcí i předchozích hodnot vstupu nebo výstupu a paměťové a nelineární vlivy jsou navzájem provázané. Tato práce se zaměřuje na kytarové overdrive a distortion efekty, kde hlavní příčinou nelinearity systému je kompresní charakter přenosu: Velké vstupní signály jsou zesilovány méně než slabé signály. Přístup k modelování nelineárních systému se dá rozdělit na dvě základní kategorie: „blackbox“ a „whitebox“. Zatímco „whitebox“ využívá znalosti fyzikálních zákonů a vnitřní struktury systému, „blackbox“ popisuje systém pouze z pohledu vstupů a výstupů.
8
2 Blackbox modelování nelineárních systémů 2.1 Volterra series Popisuje vstupně-výstupní vztah rovnicí: b
N
b
n
y (t)=h0+∑ ∫ ⋯∫ h n (τ 1, … , τn ) ∏ x (t−τ j ) dt j n=1 a
(1)
j
a
kde y(t) je výstup, x(t) je vstup a hn je n-tý kernel. Volterra series dokáže popsat širokou škálu systémů a z definice popisuje dynamické nelinearity velmi dobře. Je však obtížné identifikovat kernely hn pro vyšší n a tudíž je vhodné pouze pro systémy se slabou nelinearitou. Slabou nelinearitou jsou myšleny takové systémy, které produkují harmonické frekvence, kterým s roustoucím řádem rychle klesá amplituda [5]. Tedy takové, které jsou navrhovány jako lineární a nelinearita je nežádoucím jevem. Tato práce se však zabývá distortion a overdrive efekty, kde nelinearita je samou podstatou daného efektu a dosahuje vysokých řádů (typicky 15. i vyšší harmonické složky jsou silnější než -40 dB od základní složky).
2.2 Modified Volterra series Metoda modelování navržená Mirri et al. [6]. Dokáže modelovat silnější nelinearity než klasické Volterra series za předpokladu krátké doby paměti systému. Od klasických Volterra series se liší tím, že místo s hodnotou vstupního signálu x(t) pracuje s dvojrozměrným výchylkovým signálem e(t, τ) = x(t) – x(t-τ). N
b
b
n
y (t)= z 0 (t)+∑ ∫ ⋯∫ g n (x (t) , τ 1, … , τ n) ∏ e(t , τ j ) dt j n=1 a
(2)
j
a
kde z0 je vliv statických nelinearit. To má za následek jiné chyby při použití nízkého počtu kernelů gn. Modifikované Volterra series tak lépe popisují nelinearity pro větší rozsah hodnot vstupního signálu x(t), ale nižší rozsah hodnot výchylkového signálu e(t, τ). Navrhovaná metoda měření [6] má to omezení, že vyžaduje vstup se stejnosměrnou výchylkou, takže pro systémy, které na začátku stejnosměrnou složku odfiltrují (oddělovacím kondenzátorem), nelze použít.
9
2.3 Hammerstienův model, Wiennerův model Hammesteinův model je využitý v [3]. Jedná se o několik paralelních větví, kde v každé větvi je nejdříve blok se statickou nelinearitou a poté čistě lineární filtr. Výstup celého modelu pak tvoří součet signálů na výstupech všech větví. Wiennerův model má podobnou strukturu s tím rozdílem, že lineární filtr předchází bloku s nelinearitou. Kombinací těchto modelů vzniká Hammerstien – Wiennerův model, kde v každé větvi je postupně lineární filtr, blok s nelinearitou a další lineární filtr. Možnosti tohoto modelu jsou závislé na volbě nelineárních bloků. Pro popis obecných systémů se dá použít například polynomiální Hammersteinův model, kde nelineární blok v n-té větvi je xn. Počet větví pak určuje nejvyšší harmonickou frekvenci, kterou lze modelovat.
10
3 Metoda identifikace Sweptsine Jedna z metod vychází z práce A. Fariny [1], [2] a A. Nováka a kol. [3], [4], kdy na vstup systému je přiveden sinusový signál s rostoucí okamžitou frekvencí. Na výstup je pak aplikována konvoluce s inverzním filtrem, což je signál, který by po konvoluci se vstupním signálem vytvoří diracův impuls. Inverzní filtr má podobu vstupního signálu převráceného v čase. Po konvoluci výstupního signálu s inverzním filtrem vznikne posloupnost impulzních odezev, každá příslušící jedné z harmonických složek. Z těchto impulzních odezev lze pak pomocí Fourierovy transformace získat frekvenční odezvu pro každou harmonickou složku. Po přivedení signálu s lineárně rostoucí frekvencí na vstup nelineárního systému můžeme pozorovat vznik vyšších harmonických složek, které jsou celočíselným násobkem vstupního signálu. Na spektrogramu s lineární frekvenční osou jsou vidět jako rovné čáry se strmějším růstem. Po konvoluci s inverzním filtrem se základní složka signálu posune do jednoho časového okamžiku a vytvoří impulzní odezvu. Vliv vyšších harmonických složek se za předpokladu krátké odezvy zobrazí před impulzní odezvou základní složky a lze tak získat frekvenční závislost bez vlivu vyšších harmonických složek. Pokud je na vstupu signál s exponenciálně rostoucí frekvencí, pak pokud výstup zobrazíme na spektrogramu s logaritmickou frekvenční osou, tak můžeme vidět několik rovnoběžných rovných čar odpovídajících jednotlivým složkám signálu. Díky tomu, že pro jakoukoli frekvenci je časový interval mezi odezvami jednotlivých složek konstantní (pro dané složky), se všechny složky signálu po konvoluci srovnají do impulzní odezvy. Jednotlivé impulzní odezvy pak lze použitím vhodného okna oddělit od sebe. 3.1 Definice vstupního signálu a inverzního filtru Okamžitá frekvence je definována jako derivace vnitřní funkce f(t) pro signál: x (t)=sin( f (t))
(1)
Aby bylo možno oddělit jednotlivé příspěvky vyšších harmonických složek, je potřeba, aby frekvence rostla exponenciálně s časem:
f (t)=2 π f 1 L e 11
(
t – 1) L
(2)
kde L je parametr odvozený z požadované počáteční a konečné frekvence (f1, f2) a doby trvání měřicího signálu T:
L=
T f ln 2 f1
(3)
( )
Abychom se vyhnuli problémům vzniklým kvůli nesynchronizaci fáze pro jednotlivé harmonické složky, je třeba dodržet podmínku: f 1 . L ∈Z
(4)
použitím rovnic (3), (4) můžeme nadefinovat:
L=
1 Round f1
( ( )) T̂ f 1
(5)
f2 log f1
kde Round je zaokrouhlení na nejbližší celé číslo a T̂ značí přibližnou dobu trvání signálu. Inverzní filtr je v podstatě vstupní signál obrácený v čase. Jelikož výše definovaný vstupní signál nemá „bílé“ spektrum, je třeba inverzní filtr kompenzovat vhodnou amplitudovou obálkou. −t
1 ( ) z (t )= e L x (t) L
(6)
3.2 Oddělení jednotivých impulzních odezev Po konvoluci odezvy systému na vstupní signál začíná impulzní odezva pro základní složku v čase rovném délce vstupního signálu (a inverzního filtru). Dále potřebujeme zjistit pozice impulzních odezev vyšších harmonických složek. Ty odpovídají časovému zpoždění Δtn, pro které je okamžitá frekvence vstupního signálu N-krát vyšší než frekvence v daném časovém okamžiku:
12
N.
d d f (t)= f (t+Δ t n ) dt dt
(7)
vyřešením získáme následující vztah: ln (N ) f ln 2 f1
Δ t n =T
(8)
( )
Impulzní odezva N-té harmonické složky se nachází Δtn před odezvou základní složky. 3.3 Aplikace na Hammerstienův model systému K modelování systému lze použít zobecněný polynomiální Hammerstienův model. Tento model se sestává z N paralelních větví, kde na každou větev je přiveden vstupní signál. V n-té větvi je signál nejdřív umocněn na n-tou mocninu a pak je na něj aplikován lineární filtr Gn. Součet příspěvků všech větví pak dává výstup. Pro odvození lineárních filtrů Gn v každé větvi modelu použijeme frekvenční odezvy jednotlivých složek Hm , které získáme Fourierovou transformací impulzních odezev jednotivých složek. Vyjdeme z rovnic pro mocniny sinu:
2 sin ( x)= n 2 n
n −1 2
(
∑ (−1)
n −1 −k ) 2
( nk)sin((n −2 k ) x )
k=0
()
pro n lichá
(9)
n
−1 2 n n ( 1 2 n sin ( x)= n n + n ∑ (−1) 2 2 2 k =0 2
−k)
(nk) cos((n −2 k ) x)
pro n sudá
(10)
Označíme-li FTp výsledek Fourierovy transformace můžeme z rovnic (9), (10) získat
2 FT p {sin ( x)}= n 2 n
n −1 2
(
∑ (−1) k =0
()
n −1 −k) 2
(nk) FT {sin((n −2 k ) x )} p
pro n lichá
(11)
n
−1 2 n n ( 1 2 n FT p {sin ( x)}= n n + j n ∑ (−1) 2 2 2 k =0 2
( nk) FT {sin((n −2 k ) x )}
−k)
p
13
pro n sudá
(12)
Tyto rovnice ve frekvenční doméně lze zapsat v maticovém tvaru:
( )(
)
FT p {sin( x)} FT p {sin( x)} 2 FT p {sin ( x )} =Α FT p {sin( 2 x)} +Β FT p {sin( 3 x )} FT p {sin 3 ( x )} ⋮ ⋮
(13)
kde prvky matice A jsou definovány takto:
2 n+
(−1) Α n ,m = n−1 2
1−m 2
( ) n
n−
m 2
pro n ⩾m ∧(n+m) sudé ; 0 jinak
(14)
Matice B označuje konstantní příspěvky sudých mocnin a projeví se pouze na stejnosměrné složce výstupu. Každou odezvu m-té harmonické složky Hm můžeme vyjádřit jako součet příspěvků ode všech n-tých mocnin signálu váhovaných lineárními filtry Gn
k dané
harmonické frekvenci. N
H m ( f 0 )=∑ An , m G n ( f 0 )
(15)
n=1
Závislost požadovaných filtrů Gn na frekvenčních odezvách lze vyjádřit
( ) ( ) G1 ( f 0 ) H 1 ( f 0) T −1 G2 ( f 0 ) =(Α ) H 2 ( f 0 ) G3 ( f 0 ) H 3 ( f 0) ⋮ ⋮
(16)
Z takto získaných frekvenčních odezev Gn pak zpětnou Fourierovou transformací získáme impulzní odezvy každého lineárního filtru, které použijeme jako FIR filtr.
14
3.4 Výhody a nevýhody metody sweptsine Hlavní výhodou je jednoduché měření systému, protože stačí pouze jednou přivést na vstup daný signál a zaznamenat odezvu signálu. Po zpracování naměřeného signálu pak můžeme daný systém modelovat. K nevýhodám patří výpočetní náročnost, pokud je k dostatečně přesnému popisu potřeba model vyššího řádu.
15
4 Whitebox modelování V této práci se zaměřuji na simulaci kytarových overdrive a distortion efektů, kde silná nelinearita je žádanou vlastností. Nejčastějším zdrojem nelinearity je diodový omezovač (dvě parelelně zapojené diody s opačnou polaritou), který mění zesílení v závislosti na hodnotě signálu. Znalost vnitřní struktury se dá použít k vytvoření lepších modelů [7][8]. Jednoduchý model obsahuje statickou nelinearitu bez paměťových vlivů a následně čistě lineární blok modelující vlivy paměti. [8] Pro některé systémy tento jednoduchý popis nestačí, v takovém případě se dá využít řešení obyčejných diferenciálních rovnic. Pro modelování kytarových efektů v reálném čase se používá zpětného Eulerova pravidla [7] nebo lichoběžníkového pravidla. Další možností je modelování pomocí DK-metody [9]. 4.1 Popis konkrétního whitebox modelu Konkrétní model vždy záleží na použitém efektu, v mém případě jde o podomácku vyrobenou kopii efektu Tube Screamer TS-9. Obr. 1 ukazuje schéma daného efektu. Ze schématu můžeme vidět hlavní dvě části, které budou ovlivňovat výsledný zvuk, a to jsou operační zesilovače a zapojení jejich zpětných vazeb. Podle označení potenciometrů, které ovládají parametry daných částí obvodů, budu nadále označovat tyto bloky jako „drive“ a „tone“.
Obr. 1: schéma zkoumaného efektu
16
4.1.1 Blok drive Blok drive je operační zesilovač zapojen jako neinvertující zesilovač. Pro ideální operační zesilovač platí, že na pinu 2 a 3 je shodné napětí, pokud je zavedena zpětná vazba. Toto napětí vyvolá proud I1 přes kondenzátor a rezistor, které spolu tvoří horní propust. Za předpokladu nekonečného vstupního odporu operačního zesilovače se pak tento proud rozdělí mezi paralelně zapojený mastavitelný odpor, kapacitu a diody. Napětí UD, které vznikne na těchto součástkách, se pak přičte ke vstupnímu napětí, a tím získáme výstupní napětí této části efektu. V obvodu zpětné vazby jsou zapojené paralelně dvě diody s opačnou polaritou. Jedna z diod bude v závěrné polarizaci a bude jí procházet minimální proud. Při vyšších hodnotách proudu diodou v propustném směru se snižuje přírůstek napětí. Nastavitelný odpor paralelně s diodami pak upravuje průběh přenosové funcke. Čím vyšší odpor, tím strmější je přenos okolo nulových hodnot. Kapacitor pak omezuje napětí vyvolané proudem na vyšších frekvencích a tak funguje jako dolní propust. Prvním krokem k simulaci je výpočet proudu I1. Ten lze vyjádřit přenosovou funkcí: I1 U input
=
s.C 1 s . R1 .C 1+1
(17)
Pak je třeba zjistit, jaké napětí mezi piny 1 a 2 tento proud vyvolá. Nejpřesnější možností je spočítat diferenciální rovnici závislosti napětí mezi piny 1 a 2 UD na proudu I1. I1 lze vyjádřit jako součet proudů procházejících jednotlivými součástkami I 1= I R+I C +I D
(18)
Kde IR je proud procházejicí proměnným odporem RD:
I R=
UD RD
(19)
IC je proud procházející kapacitou:
I C =C
dU D dt
(20)
a ID je proud procházející dvojicí diod. Tento vztah odvodíme ze Shockleyho rovnice pro proud 17
diodou
I =I S .(e
U UT
– 1) , kde IS je závěrný proud a UT je tepelné napětí. Pokud zapojíme dvě
identické diody paralelně s opačnou polaritou, vychází nám vztah
I =I S .(e
U UT
–e
−U UT
) , což
lze vyjádřit také jako I =I S . sinh(
U ) UT
(21)
kde sinh je hyperbolický sinus. Po dosazení vychází výsledná rovnice
I 1=
UD U dU D +I S . sinh ( D )+C RD UT dt
(22)
což je obyčejná nelineární diferenciální rovnice prvního řádu. Pro řešení ji upravíme do tvaru
C
dU D UD UD =I 1− −I S . sinh( ) dt RD UT
(23)
Tato možnost je však výpočetně velmi náročná, zvláště u signálů s vysokou frekvencí. Druhá možnost je zanedbání vlivu kapacity a použití statické nelinearity. Pro toto řešení je třeba zjistit inverzní funkci k funkci
I 1=
UD U +I S . sinh( D ) RD UT
(24)
Inverzní funkce existuje, protože oba členy součtu jsou ryze rostoucí spojité funkce, výsledná funkce tedy musí být také ryze rostoucí spojitá funkce a tedy lze invertovat. Inverzní funkce ale nejde symbolicky vyjádřit, proto jsem se rozhodl vytvořit vyhledávací tabulku podle závislosti proudu na napětí s krokem 1 mV v očekávaném rozsahu hodnot a tuto tabulku pak použít k vyhledání odpovídajících napětí v závislosti na proudu. Pro získání hodnot neuvedených ve vyhledavací tabulce jsem použil lineární interpolaci. Zanedbání kapacity má za následek mírné zvýšení příspěvků vyšších frekvencí v řádu jednotek decibel, jak je vidět na obr.2.
18
Obr. 2: Porovnání spekter: použití vyhledávací tabulky – modrá, výpočet diferenciálních rovnic – červená, pro čitelnost posunuta doprava
4.1.2 Blok tone Blok tone s druhým operačním zesilovačem pak upravuje frekvenční charakteristiku signálu. Tento obvod lze také analyzovat podle pravidel pro ideální operační zesilovač. Výsledný přenos vychází: R2 U out C 1 .C 2 = (25) U1 s .( R P. (R 1+R2 )) R1 . R2+ R2 . R3+ R1 . R3 R1 . R 2 2 s .(R P . R1 . R2 +R1 . R2 . R 3)+ + + C1 C1 C 1 .C 2 s.( R P . R2+ R2 . R3+T . R2 . R 4)+
kde T je poloha potenciometru a RP je subtituce zavedená takto: R P=T.(1−T ). RT
(26)
Konkrétní hodnoty použítých součástek jsou: R1 = 1kΩ, R2 = 10kΩ, R3 = 220Ω, R4 = 1kΩ, RT = 20kΩ, C1 = C2 = 0,22 μF. Jedná se o dolní propust s proměnnou charakteristikou podle polohy potenciometru, viz Obr. 3.
19
Obr. 3: frekvenční charakteristika tone obvodu pro různé polohy potenciometru: minimum – plná čára, maximum – přerušovaná čára
4.1.3 Další části V obvodu jsou také vstupní a výstupní oddělovače realizované jako emitorové sledovače pro impedanční přizpůsobení. Tyto části obvodu by na výsledný zvuk neměly mít výrazný vliv, protože to jsou v podstatě zesilovače se ziskem blížícím se jedné. Poslední částí, která ovlivňuje výsledný zvuk, je potenciometr „level“, který nastavuje výstupní hlasitost. Funguje jako napěťový dělič, takže veškerý jeho vliv je pouze násobení skalární hodnotou závislé na poloze potenciometru.
20
5 Realizace modelů v prostředí Matlab Pro testování metod jsem použil podomácku vyrobenou kopii efektu Tube Screamer TS-9. Nastavení efektu jsem zvolil minimálni drive a tone, abych omezil příliš vysoké harmonické frekvence, které by mohly způsobit problémy s aliasingem. Level jsem nastavil na maximum. Pro měření jsem použil osobní počítač se zvukovou kartou s maximální vzorkovací frekvencí 96kHz. 5.1 Realizace Hammersteinova modelu pomocí Sweptsine Nejdříve jsem změřil odezvu daného systému na měřící signál definovaný v sekci 3.1 s poměrně širokým rozsahem frekvencí 10Hz – 12 kHz abych odhadnul správné parametry modelu. Pohledem na spektrogram jsem zjistil rozsah frekvencí, kde nedochází k aliasingu a přibližný počet 21 harmonických frekvencí. Pro další měření jsem zvolil rozsah 10 – 6000 Hz. V prostředí Matlab jsem vytvořil polynomiální Hammersteinův model. Řád modelu jsem zvolil 21 podle počtu harmonických frekvencí. Parametry modelu jsem získal pomocí metody sweptsine. Skript pro identifikaci parametrů vychází z ukázkového skriptu A. Nováka [10]. Po identifikaci a získání koeficientů FIR filtrů jednotlivých větví Hammersteinova modelu jsem postupně umocňoval vstup, aplikoval odpovídající filtr a přičítal k výslednému signálu 5.2 Realizace whitebox modelu Vstupní signál je převzorkován na čtyřnásobnou vzorkovací frekvenci, abych zabránil aliasingu. Na to jsem použil funkci resample. První krok výpočtu je získání proudu I1. Nejdříve jsem tedy definoval přenosovou fuknci (17) ve spojitém čase a poté ji pomocí funkce c2d převedl do diskrétního času. Pro převod jsem zvolil metodu MMPZ (modified matched pole zero). Poté se zavolání funkce filter získá průběh proudu I1 v čase v závislosti na vstupním napětí. Další krok je použití tabulkové nelinearity. Nejprve je třeba nadefinovat tabulku. To se provede vytvořením dvou stejně dlouhých vektorů, jeden pro napětí, druhý pro proud, kde dvojice prvků se stejným indexem odpovídá jednomu bodu funkce. Funkce byla navzorkována rovnoměrně po 1mV v rozsahu -2 až 2 V, odpovídající proud dopočítán podle rovnice (24). Tyto vektory pak byly použity jako argumenty funkce interp1, spolu s průběhem proudu I1 v čase. Výsledkem je průběh napětí na výstupu drive bloku, které je rovno napětí na vstupu následujícího tone bloku. Tone blok je realizován opět definováním přenosové funkce (25) ve spojitém čase, převodem do diskrétního času pomocí funkce c2d a metody MMPZ a použitím funkce filter. Na konci je signál převzorkován na původní vzorkovací frekvenci. 21
6 Měření Pro otestování jsem na vstup reálného efektu i modelů přivedl sinusový signál o frekvenci 440Hz a stejné amplitudě, jako měl měřicí signál. Na obr. 4 je porovnání časových průběhů a spekter výstupních signálů. U Hammersteinova modelu je vidět dobrá shoda v časové oblasti, ve frekvenční modeluje podle očekávání pouze konečný počet harmonických složek podle řádu modelu. Whitebox model se sice liší v časové oblasti, ale ve frekvenční oblasti je vidět podobná amplitudová charakteristika. Největším rozdílem oproti signálu z reálného efektu je absence sudých harmonických složek. Odezva s pouze lichými složkami vzniká, pokud je nelinearita charakterizována lichou funkcí. Vznik sudých složek je tedy následkem asymetrické funkce charakterizující nelinearitu, což může být zapříčiněno například rozdílnými parametry omezovacích diod nebo nenulovým ofsetem operačního zesilovače.
Obr. 4: časové průběhy (vlevo) a spektra (vpravo) pro reálný efekt (nahoře), sweptsine (uprostřed) a whitebox (dole).
22
Obr. 5: časové průběhy (vlevo) a spektra (vpravo) pro reálný efekt (nahoře), sweptsine (uprostřed) a whitebox (dole) pro poloviční vstupní signál.
Pro otestování obecnosti modelu jsem dále na vstup obou efektů přivedl sinusový signál o frekvenci 440Hz, ale s amplitudou poloviční, než měl měřicí signál. Můžeme vidět, že signály z reálného efektu a Hammersteinova modelu se liší v oblasti časové i frekvenční. (obr. 5). Hlavním rozdílem je to, že reálný efekt, si zachovává stejné spektrum i při poklesu amplitudy vstupního signálu, dojde jen k mírnému poklesu příspěvků všech složek. U Hammersteinova modelu dochází k výraznému poklesu vyšších harmonichých složek. To poukazuje na nevhodný výběr nelineárních funkcí v jednotlivých větvích modelu, které vytváří vyšší harmonické složky a mají expanzní charakter: slabé signály ještě více zeslabují, silné více zesilují; zatímco testovaný overdrive efekt má kompresní charakter: čím je vstupní signál silnější, tím méně systém zesiluje, takže výstup má menší rozdíly v amplitudě než vstup. Při porovnání s whitebox modelem zjistíme, že amplituda vstupního signálu nemá na výsledek výrazný vliv: stále je vidět neshoda v časové oblasti a absence sudých harmonických složek.
23
Měřící signál pro metodu sweptsine jsem nadále využil k ověření platnosti whitebox modelu na rozmezí frekvencí 10 – 6000 Hz. Porovnáním spektrogramů výstupních signálů reálného efektu a whitebox modelu zjistíme, že v celém měřeném rozsahu jsou odezvy dosti podobné až na výše zmíněnou absenci sudých harmonických složek.
Obr. 6: spektrogram odezvy reálného efektu na sweptsine
Obr. 7: spektrogram odezvy whitebox modelu na sweptsine
24
7 Závěr Zkoumal jsem možnosti simulace kytarových overdrive a distortion efektů. Metody založené na Volterra series jsem vyloučil už v teoretické části, kvůli obtížnosti měření kernelů vyšších řádů. Modifikovaná verze Voltera series navrhovaná Mirrim by teoreticky tyto efekty dokázala popsat, ale měření vyžaduje stejnosměrnou výchylku ve vstupním signálu. Tato stejnosměrná složka se kvůli správnému nastavení pracovních bodů zesilovačů v daných efektech odfiltrovává hned na vstupu, než se signál dostane k nelineárním částem obvodu. Metoda Sweptsine podle Nováka dokázala přesně popsat daný systém, ale pouze pro amplitudu vstupního signálu rovnou měřícímu signálu. Vzhledem k tomu, že kytarový signál je velmi dynamický, je tato metoda pro kytarové efekty také nevhodná, ale určitě by se dala využít v jiných aplikacích. Jediná možnost, kterou jsem ověřil jako vhodnou, byla simulace whitebox pomocí popisu obvodu daného efektu. Teto metoda sice modeluje správně spektrum pro různé signály, ale vyžaduje znalost vnitřního uspořádání efektu a také nastavení správných parametrů jednotlivých součástek, což v některých případech, například u diod, může být obtížné. Dále jsem zjistil, že je možné při použití statické nelinearity místo řešení diferenciálních rovnic urychlit výpočet za cenu přesnosti výsledku. Vzhledem k tomu, že jsem v modelu počítal s ideálními současkami, vycházel mi systém, který vytvářel pouze liché harmonické složky. Reálný efekt však vytváří i sudé harmonické složky, řádově o 15 dB slabší než liché složky. Poslechový test se z časových důvodů neuskutečnil. Osobně jsem zkusil realizovanými modely zpracovat hudební ukázku. U Hammersteinova modelu byl slyšet ubytek vyšších frekvencí u slabších signálů. Whitebox model byl slyšitelně jiný, ale nedokážu kvantifikovat jak. Podařilo se mi tedy vytvořit whitebox model overdrive efektu, který ovšem není věrnou kopií vzorového efektu, ale dle mého názoru stejně příjemný.
25
Seznam použité literatury: [1] A. FARINA. Simultaneous measurement of impulse response and distortion with a sweptsine technique. Audio Engineering Society Convention 108, 2000 [2] A. FARINA, A. BELLINI, E. ARMELLONI: „Non-Linear Convolution: A New Approach For The Auralization Of Distorting Systems“, Proceedings of the 110th AES Convention, 2001 May 12-15 Amsterdam, The Netherlands [3] Antonín NOVÁK, Laurent SIMON, František KADLEC, Pierrick LOTTON. Nonlinear System Identification Using Exponential Swept-Sine Signal. NDT & E International. Vol. 45(1), pp. 1-8. [4] A. NOVÁK, L. SIMON, P. LOTTON. Analysis, synthesis, and classification of nonlinear systems using synchronized swept-sine method for audio effects. EURASIP Journal on Advances in Signal Processing. Vol. 2010(0), pp. 4. [5] S. BOYD, Y. S. TANG, and L. O. CHUA. Measuring Volterra kernels. Circuits and Systems, IEEE Transactions on (Volume:30 , Issue: 8 ) [6] Domenico MIRRI, Gaetano IUCULANO, Fabio FILICORI, Gaetano PASINI, Giorgio VANNINI, Gabriella PELLEGRINI GUALTIERI. A Modified Volterra Series Approach for Nonlinear Dynamic Systems Modeling. Circuits and Systems I: Fundamental Theory and Applications, IEEE Transactions on (Volume:49 , Issue: 8 ) [7] J. MAČÁK, J. SCHIMMEL. Real-time guitar tube amplifier simulation using an approximation of differential equations. Proc. of the 13th Int. Conference on Digital Audio Effects (DAFx-10), Graz, Austria , September 6-10, 2010 [8] David T. YEH, Jonathan S. ABEL and Julius O. SMITH. Simplified, physically-informed models of distortion and overdrive guitar effects pedals. Proc. of the 10th Int. Conference on Digital Audio Effects (DAFx-07), Bordeaux, France, September 10-15, 2007
26
[9] David T. YEH, Jonathan S. ABEL and Julius O. SMITH. Automated Physical Modeling of Nonlinear Audio Circuits For Real-Time Audio Effects—Part I: Theoretical Development. Audio, Speech, and Language Processing, IEEE Transactions on (Volume:18 , Issue: 4 ) [10] A. NOVÁK swept_sine_demo.m Dostupné z ant-novak.com/Swept_Sine_Simulation.php
Seznam přiložených souborů 440HzReal.wav - výstup reálného efektu na sinus 440 Hz, amplituda shodná s meřením sweptsine 440HzRealPolovicni.wav - výstup reálného efektu na sinus 440 Hz, amplituda poloviční oproti měření sweptsine 440HzHammerstein.wav - výstup Hammersteinova modelu na sinus 440 Hz, amplituda shodná s meřením sweptsine 440HzHammersteinPolovicni.wav - výstup Hammersteinova modelu na sinus 440 Hz, amplituda poloviční oproti měření sweptsine 440HzWhitebox.wav - výstup whitebox modelu na sinus 440 Hz, amplituda shodná s meřením sweptsine 440HzWhiteboxPolovicni.wav - výstup whitebox modelu na sinus 440 Hz, amplituda poloviční oproti měření sweptsine sweptsineout13.wav - odezva zkoumaného efektu na měřící sweptsine signál Simulace_nelineárního_zvukového_efektu.pdf – tato práce swept_sine_gen.m, swept_sine_demo.m, swept_sine_model.m – Matlabovské skripty k modelování pomocí Hammersteinova modelu whitebox_preparation.m, whitebox_simulation.m - Matlabovské skripty k modelování pomocí whitebox modelu
27