Seminární práce

Transkript

Seminární práce
 VŠB-Technická Univerzita Ostrava
Fakulta elektrotechniky a informatiky
Katedra Informatiky
KARAOKE
květen 2007
Karel Kratochvíl
1 Prohlášení
Prohlašuji, že tato seminární práce je mým původním autorským dílem, které jsem vypracoval
samostatně.
…………………………………..………………….
Karel Kratochvíl
2 Abstrakt
Tato Seminární práce se zabývá metodami a principy jak potlačit hlas z nahrávky v souvislosti
s využitím karaoke. Popisuje metody, které máme k dispozici pro digitální i analogové nahrávky.
Dále popisuje nástroje, které jsou vhodné pro odstranění zpěvu z nahrávek a to za pomocí
hardwarových tak i softwarových prostředků. Popisuje a porovnává teoretickou a praktickou
úspěšnost. Zabývá se také implementačními prostředky.
Klíčová slova : MIDI, KARAOKE, EKVALIZER
3 1. Úvod
V této seminární práci se zabývám možnostmi, jak potlačit zpěv z nahrávky. Jedná se o
problém, kterým se už delší dobu zabývá hodně odborníků. Existuje více metod jak dosáhnout
separace. Tento úkol lze nazvat jako „ KARAOKE “. Karaoke je zpívání písniček na playback.
Seminární práci lze rozdělit do dvou kapitol a to na řešení pomoci hardwaru a softwaru. První
z technik, kterou jsem v práci použil je řešení pomocí hardwaru a můžeme se s ní setkávat u různých
druhů tzv. „ Karaoke skříněk “. Karaoke skříňky se vyskytují jak v hudebních klubech, tak i na
různých veřejných místech. Tato první technika se může pro někoho zdát být nedostačující, a proto se
hledá nějaká další technika, která by využívala softwarových algoritmů.
Než se ale budeme zabývat softwarovými algoritmy, popíšeme si co je to vlastně digitalizace
zvuku. Jelikož se softwarové algoritmy od sebe liší různou náročností, popíšeme si je postupně od
nejjednodušších. Mezi první z nejjednodušších metod patří metoda, která využívá rozhranní MIDI.
Toto rozhranní nám umožňuje vytvořit vlastní kopii skladby, aniž bychom chtěli odstranit zpěv. Další
z možností jak dosáhnout ekvivalentního výsledku je využití ekvalizérů. Tyto zařízení nám umožňují
odfiltrovávat určitou část frekvenčního pásma, kde se zpěv nachází a tím jej potlačit nebo odstranit.
Uvedené metody si dále podrobněji popíšeme a seznámíme se s jejich použitím.
4 Popis problému 2. Popis Problému
Úkolem seminární práce je shrnutí a popsaní existujících metod, které umožňují oddělení
hlasu zpěváka z nahrávky. Separace zvuku, nástroje, šumu, hluku, melodie či hlasu z jednolité tzv.
komplexní nahrávky je problém. Signál každého nástroje zabírá určité frekvenční pásmo, tato pásma
se však u téměř všech nástrojů alespoň částečně překrývají. Separace jednotlivých nástrojů je
z komplexní nahrávky je velmi složitá. Vyskytuje se možnost, kterou lze nazvat „ Halfplaybeck “.
Jedná se o možnost, kdy získat nahrávku bez zpěvu.
Jestliže mixujeme skladby v nahrávacím studiu, kde se ve skladbě ještě každý nástroj objevuje
ve zvláštní zvukové stopě se zpěvy potlačí a nahrávka se vytvoří (zmixuje) bez nich. Takových mixů
využívají zpěvačky a zpěváci, kteří nemají stalou hudební skupinu, s kterou by mohli vystupovat na
různých vstoupeních a proto si sebou vozí hudební kompakt, který obsahuje danou nahrávku a zpěvák
pouze doplňuje daný zpěv.
Jelikož pořízení této nahrávky je složité a drahé, budeme si muset poradit jiným dostupným a
levným způsobem.
Existující dostupné způsoby jsou :
•
•
•
•
•
Obvody na potlačení hlasu zpěváka – Existují zařízení, které jsou schopny do jisté
míry odstranit zpěv ze stereo nahrávky. Jedná se o obvody, které pracují na principu
otočení jedné fáze signálu nahrávky a odečtení této fáze od druhé. Jestliže se snažíme
docílit toho, aby se zpěv dal odstranit (odrušit), je zapotřebí aby skladba měla jednu
důležitou vlastnost a tou je že daný zpěv musí vést na střed. Tzn. že zpěv musí být
veden stejně v obou kanálech. To ve většině případů bývá splněno, ovšem na střed
bývají směřované i jiné nástroje, např. Malý bubínek, baskytara... Tato metoda pak
vede k potlačení všech nástrojů směřovaných do středu.
Rozhranní MIDI – je mezinárodní standard používaný v hudebním průmyslu jako
elektronický komunikační protokol, který dovoluje moderním digitálním hudebním
nástrojům, počítačům i dalším přístrojům komunikovat v reálném čase. Současně se
jedná o standardní sériové rozhraní, které slouží k výměně MIDI-dat a přesné
vzájemné synchronizaci v reálném čase
Ekvalizéry – Jestliže chceme odfiltrovat nežádoucí frekvenci z nahrávky lze k tomu
použít tzv. Filtry ( Ekvalizéry ). Díky těmto přístrojům lze odfiltrovat i zpěv a potom
upravit
a tak získat lepší kvalitu přehrávané skladby. Jestliže chceme při
odfiltrovávání dosáhnout vynikajícího výsledku tak je za potřebí něco o těchto
přístrojích vědět, proto si o nich něco povíme. Je však nutno si uvědomit, že
frekvenční pásma jednotlivých nástrojů se se zpěvem překrývají a při filtraci tudíž
nutně změníme i barvu ostatních nástrojů.
Fourierova transformace – v této časti si popíšeme, základní vlastnosti fourierovy
transformace
Experimentální část – v této časti si prakticky ověříme zmíněné metody. Pro
vymodelování obvodu potlačení hlasu, použijeme simulační el.program zvaný
ELEKTRONICS WORKBENCH.
5 Digitalizace zvuku 3. Digitalizace zvuku
Jestliže se má zvuk zpracovávat digitálně, je třeba jej navzorkovat.
V teorii signálu se velmi často používá tzv. Shannonův vzorkovací teorém. Ten říká, jestliže
chceme digitalizovat libovolný periodický signál bez ztráty informace, musí být frekvence vzorkování
alespoň dvojnásobná než nejvyšší frekvence obsažena v signálu. Podle vzorkovacího teorému by
k věrné reprodukci mělo stačit vzorkovat dvojnásobkem horní meze slyšitelnosti, tedy frekvence asi
40 kHz. Ve studiové praxi se však používá frekvence 96kHz.
Kvalitu digitálního záznamu spolu se vzorkovací frekvencí spoluurčuje i přesnost měření a
snímání analogového signálu. U digitálního záznamu zvuku je nejpraktičtější hovořit o přesnosti jako
o počtu bitů na výstupu příslušného A/D převodníku. Počet úrovní vzorku sejmutého v každém
okamžiku vzorkování se nazývá rozlišení nebo rozlišovací schopnost. Převážně se používá osmibitové
nebo šestnáctibitové rozlišení (ve studiové praxi 24bitové). Důležitou technickou poznámkou může
být ještě to, že část zařízení, která obsahují A/D nebo D/A převodníky pracují s jiným vnitřním
rozlišením než je výstupní. Často se pracuje s větším vnitřním rozlišením ( dvacet bitů ) a na výstupu
se pak objeví signál s rozlišením menším ( 16 bitů ). Za zmínku stojí také ještě to, že toto není jen
záležitostí zvukových karet, ale dnes již jakýchkoli digitálních zařízení pracující se zvukem např.
efektové procesory, zpožďovače, digitální procesory aj.
3.1. Převodníky
Převodníky umožňující transformaci číslicově vyjádřené informace na analogové napětí a naopak
zaujímají v řídícím systému klíčové postavení. Značná část měřených veličin bývá obvykle
zaznamenána ve formě časově spojitého průběhu analogového napětí a do číslicové formy se musí
převést pomocí převodníku. Převodníky tedy umožňují propojení mezi analogovou a číslicovou částí
řídícího systému. Přesnost a rychlost převodu použitých převodníků je jedním z hlavních faktorů
určujících použitelnost a kvalitu celého řídícího systému.
3.1.1. A/D Převodník
Je elektronická součástka určená pro převod spojitého (neboli analogového) signálu na signál
diskrétní (neboli digitální). Důvodem tohoto převodu je umožnění zpracování původně analogového
signálu na číslicových počítačích. Mezi nimi v současnosti převažují digitální signální procesory DSP,
které jsou právě na zpracování takových signálů specializované. V digitální podobě se také dají
signály daleko kvalitněji zaznamenávat a přenášet.
3.1.2. D/A Převodník
Je elektronická součástka určená pro převod diskrétního (neboli digitálního) signálu na signál
spojitý (neboli analogový). D/A převodník se dnes používá všude tam kde je třeba z digitálního
signálu udělat zpět analogový tedy ve všech přehrávačích (CD, MP3 přehrávač, Minidisc, …),
zvukových
kartách
v
počítačích.
6 Digitalizace zvuku •
•
Digitální signál - Signál tvořený řadou čísel, lze zpracovávat v počítači. Kopírováním*
digitálních dat se zachovává kvalita.
Analogový signál - Signál složený ze sinusových křivek, lze přehrát v reproduktorech nebo
sluchátkách. Používá se také na magnetofonových páskách. Kopírováním analogových dat
dochází k mírné ztrátě kvality.
*Kopírováním se zde myslí třeba kopírování souborů. Převodem do jiného formátu kvalita zvuku
utrpět může. Ve své podstatě není tvořen goniometrickými funkcemi, to jen my lidé jsme si vymysleli aproximaci,
aby se nám lépe pracovalo. Např. V bodech nespojitosti (tj. Třeba skokové změně intenzity)
7 Hardwarové řešení 4. Hardwarové řešení
4.1. Potlačení hlasu (ve stereofonním záznamu)
Tento obvod nám umožňuje potlačení hlasu ve stereofonní nahrávce tím, že se odstraní signály
společně v obou kanálech.
Obr.1 Obvod na potlačení hlasu
Při záznamu levého a pravého zvukového kanálu se obvykle posadí hlas zpěváka doprostřed
nahrávky mezi hudební nástroje levého a pravého kanálu. Převrátíme-li signál pravého kanálu a
smísíme-li jej s kanálem levým, tak originální signály, které se svojí úrovní rovnaly, se v proti fázi
zruší, anebo se podstatně potlačí jejich úroveň.
První invertor s operačním zesilovačem (OZ) převrací fázi pravého kanálu a současně signál
nepatrně zesiluje. Na výstup invertoru je připojen potenciometr R5. Signál z běžce potenciometru je
dále směšován s levým kanálem (druhá polovina IO). Útlum se nastavuje potenciometrem. Na výstupu
druhé poloviny IO je signál s potlačeným zpěvem nebo některým nástrojem, což si ověříme
poslechem.
Mimo jiné toto zapojení může posloužit, když si při poslechu desky nebo CD chceme
prozpěvovat sami, aniž bychom byli rušeni originálním interpretem. Nevýhodou je, že budou
potlačeny i všechny ostatní nástroje, které jsou na středu nahrávky.
8 Softwarové řešení 5. Softwarové řešení
5.1 Rozhranní MIDI
MIDI ( Musical Instrument Digital Interface) je to mezinárodní standart, který se používá
v hudebním průmyslu jako elektronický komunikační protokol, který umožňuje moderním digitálním
nástrojům, počítačům i jiným přístrojům komunikovat v reálném čase.
Současně se jedná o standardní sériové rozhraní, které je určeno k výměně MIDI-dat a přesné
synchronizaci v reálném čase.
5.1.1 Funkce MIDI rozhranní
Každé MIDI musí mít v sobě jakési svůj operační systém, který převádí vysílané povely na různé
napěťové úrovně. MIDI jazyk je založen na zprávách ( informacích ) tak, jako každý jiný jazyk. Tyto
zprávy se skládají z jednoho až několika bytů. První byte je vždy stavový a ostatní co následují, jsou
datová. Jednoduše se to dá říci tak, že nejprve je rozkázáno co se má udělat a pak jsou zaslány
informace se kterýma se pracuje. Ještě je zapotřebí podotknout, že MIDI je přenos sériový tzn.,že data
jsou přenášena sériově ( v sérii za sebou ) a tak dochází při velkém objemu dat k určitému zpoždění,
které se snaží MIDI norma eliminovat na minimum.
Toto z teoretického hlediska velmi stručně vystihuje postatu MIDI komunikace na hardwarové
úrovni. V následujícím textu se zaměřím pouze na MIDI povely ve tvaru, se kterými je možno se
setkat v moderních sequencerech a hudebních programech. Moderní programy dokáží relativně složitý
MIDI jazyk převádět do srozumitelných povelů a příkazů.
DIN (Deutscher Industrie Normen) je soubor německých národních norem.
9 Softwarové řešení Setkáváme se s těmito povely:
Kanálová data:
•
•
•
•
•
NOTA ZAPNUTA – NOTA VYPNUTA – Rytmus je po MIDI přenášen, tak
že je vyslán povel ke stisku klávesy a tento zvuk stále hraje až do té doby, než
přijde povel k jejímu spuštění. Celý tento proces je umožněn díky existenci
krystalu – časové základny – s jejíž tiky je celý proces synchronizován.
TLAK NA KLAVESY PO JEJICH STISKNUTÍ – Tyto povely jsou vysílány
buďto pro celou klaviaturu nebo zvlášť pro každou klávesu. Tyto povely mají
původ u klávesových nástrojů ( klavírů ). Jejich úkolem je simulovat hammer
mechaniku klavírů a dát tak větší prostředky pro elektronické vyjádření.
ZMĚNA POLOHY KONSTRUKTORŮ – Kontroléry mají původ na starých
analogových nástrojích. Jsou to tzv. virtuální potenciometry či spínače,
kterými se nastavují některé parametry zvuku v reálném světě.
VOLBA BANKŮ A KONSTRUKTORŮ – Slouží k volbě rejstříku ať již
přímo či jejich kombinací banků.
OHÝBÁNÍ TÓNU – Slouží k vytváření efektů typu glissando
Systémová data:
•
•
•
DATA REÁLNÉHO ČASU – čtvrtokénko, synchrotiky, synchropovely a
aktivita.
ZVLÁŠTNÍ SYSTÉMOVÉ DATA – Je to speciální oblast MIDI, kde jsou
data standardizována jen částečně. Konkrétní náplň si mohou jednotlivý
výrobci definovat po svém s ohledem na nejrůznější účely.
SPOLEČNÁ SYSTÉMOVÁ DATA – lokátor, volby skladby, naladění,
resetování systému
S vývojem MIDI zařízení bohužel došlo k častým problémům. Zejména k takovým, že každá firma si
vysvětlovala vše po svém a proto velmi často došlo k situaci, že některá MIDI zařízení od různých
firem mezi sebou vůbec nekomunikovala. Z těchto důvodu začali vznikat různé standardy MIDI.
5.2 Ekvalizéry
10 Softwarové řešení Ekvalizéry jsou zařízení na úpravu frekvenčního spektra zvukového signálu. Existují dva
základní druhy ekvalizérů a jsou to grafické a parametrické. Ještě sem mohou spadat různé filtry, které
používají Fourierovu transformaci (DTF) resp. zjednodušená verze Fast FT (FFT). Platí, že ve
výsledku nezáleží na tom, jestli je daná operace dosažena elektrickým obvodem nebo matematickou
funkcí.
5.2.1 Grafické ekvalizéry
Jedná se o základní typ ekvalizéru. Ve většině zapojení se vyskytuje řada aktivních prvků
v různých dosti komplikovaných zapojeních. Pro naši potřebu vystačíme s rámcovým popisem.
Přivádíme signál na vstup sady pásmových propustí, za nimž se vyskytuje stejný počet potenciometrů.
Potenciometr se též nazývá jako regulátor úrovně signálu.
Signál z potenciometru se sčítá a přivádí na výstup. Zapojení konstruováno tak, že při
poloviční výchylce se frekvenční charakteristika nezmění. Obrázek nám znázorňuje frekvenční
charakteristiku filtru a ukazuje střední frekvenci 1kHz a rozsahem regulace ± 12 dB při různých
výchylkách potenciometru.
Obr.2 Frekvenční charakteristika filtru
Obrázek nakreslen v logaritmickém měřítku, lze z něj dobře vyčíst, že pro úroveň -3dB (popř.
+3dB, vzato od nuly) je jeho mezní frekvence asi 200 Hz – 5 kHz, tj 1/5 a 5-ti násobek střední
frekvence. Tato úroveň je zvolena pro demonstraci vlastností log. měřítka, skutečná mezní frekvence
se počítá od tzv. „ špičky “ a nikoliv od nuly. Pásma jsou volena tak, aby mezi nimi nevznikaly
mezery. Lze říci, že přenos v pásmu mezi středními frekvencemi těchto filtrů by měl být konstantní.
Proto je nepochopitelné i u malých ekvalizérů nastavovat všechno na „ max “ u tahových a „ v pravo “
u otočných potenciometrů, nebo vše na stejnou, ale vyšší úroveň, jak lze spatřit na mixážních pultech
u zvukařů.
V praxi můžeme najít různé grafické ekvalizéry, které se dělí do různého počtu pásem.
11 Softwarové řešení U profesionálního zařízení lze najít ekvalizéry, které se rozlišují podle počtu pásem na jednu oktávu
(1 , 1/2 , 1/3 ), kde třetinooktávový ekvalizér má 32 pásem. Ekvalizéry, které mají menší počet pásem
se pak objevují ve vstupních jednotkách mixážních pultů, apod.
Grafické ekvalizéry rozeznávají dvě zásadní omezení, jak lze vyčíst z předchozího textu. Počet
pásem, jejich šířka a střední frekvence je pevně dána, stejně tak jako rozsah regulace jednotlivých
pásem. Z toho plyne, že grafické ekvalizéry lze použít výhradně na úpravu frekvenční charakteristiky,
jako je korekce vlastnosti reprosoustav, poslechového sálu aj. Grafické ekvalizéry mají výhodu
v softwarové podobě, kde nastává možnost nastavení rozsahu regulace.
5.2.2 Parametrické ekvalizéry
V zásadě se jedná o digitální zařízení, konstruované spíše jako filtry. Je možno u nich
nastavovat libovolnou frekvenci, přenos po této frekvenci a tzv. činitel jakosti „ Q “. Jestliže činitele
jakosti zvyšujeme, tím se nám dané pásmo zužuje. Takže nám tyto ekvalizéry umožňují znatelné
použití ve funkci filtru. Nachází se u nich menší počet pásem ( neboli počet najednou použitelných
plně nastavitelných filtrů ). U některých PC editorů je však možnost aplikace opakovat vždy s různým
nastavením a lze tak účinně potlačit nežádoucí zvuky. Na obrázku je vidět možnost nastavení
parametrického ekvalizéru.
Obr.3 Nastavení parametrického ekvalizéru
12 Softwarové řešení Velká nevýhoda u těchto zařízení jako filtru je skutečnost, jestliže se v záznamu objeví
nežádoucí zvuk, tak nemáme obvykle možnost získat přímo údaje, které potřebujeme k nastavení
parametrického ekvalizéru. Pokud se tento ruch skládá převážně z určitých přesných frekvencí, může
dojít k použití tohoto typu ekvalizéru, který je nevyhovující a to ze dvou důvodů.
První důvod – jednotlivých frekvencí je mnoho a postupná aplikace na všechny složky trvá příliš
dlouho.
Druhý důvod – tato nevýhoda spočívá v tom, že lze pro střední frekvenci nastavit nenulovou šířku
pásma, která neobsahuje jen jednu frekvenci a tím potlačí resp. zvýrazní i jiné frekvence v její
blízkosti, což může být nežádoucí. Podstatného rozšíření filtračních možností lze dosáhnout užitím
různých matematických operací ( jako např. některého z druhů Fourierovy transformace ).
5.2.3 FFT filtry
Jedná se výhradně o programy, popř. zákaznické integrované obvody optimalizované pro
danou funkci. Většina využívá tzv. Diskrétní Fourierovy transformace, což je funkce pro převod
navzorkovaného signálu coby závislosti okamžité amplitudy na čase na jinou funkci - závislost max.
amplitudy sinusovky na její frekvenci. Jinými slovy dostaneme touto operací z navzorkovaného (tedy
digitálního) signálu jeho spektrum. A to tím přesnější, čím více vzorků máme k dispozici. Nebudu
zabíhat do matematických detailů, jen uvedu pár skutečností užitečných při používání těchto
programů. Pokud máme k dispozici například 1024 vzorků signálu, dostaneme po užití DFT spektrum
signálů, které sahá od nuly (stejnosměrná složka) až do vzorkovací frekvence a má také 1024 vzorků.
Dále je nutné, aby byla v navzorkovaném signálu obsažena celá perioda nejnižší frekvence, která je
pro nás užitečná (kvůli rozlišitelnosti je lepší, aby byla doba vzorkování dvojnásobná oproti periodě
této frekvence). V získaném spektru signálu budou sousední body vzdáleny právě o frekvenci, jejíž
perioda je rovná době vzorkování, což je nejpodstatnější pro volbu vhodné doby vzorkování. Proti
tomu ovšem stojí další fakt, a sice že počet (a tím i doba) výpočtů roste u DFT s druhou mocninou
počtu vzorků. Proto byla vyvinuta řada postupů pro zmenšení počtu operací. Všechny se nazývají
shodně Fast FT - FFT a nárůst již není tak markantní jako u DFT. Přesto doba výpočtu citelně roste.
Těmito skutečnostmi je dobré se řídit při volbě počtu vzorků, abychom dosáhli cíle.
Pokud tedy máme spektrum daného signálu, můžeme jej libovolně upravit a převést jej zpátky na
signál, ovšem již upravený dle našich potřeb. A to je celý "vtip" této metody, kdy můžeme spektrum
signálu ovlivňovat prakticky po jednotlivých frekvencích závislých pouze na vzorkovací frekvenci a
počtu vzorků. Tyto principy užívají mimo jiné těž filtry k potlačení šumu apod. bývají také doplněny
různými diagnostickými funkcemi, které podstatně usnadňují rozpoznání nežádoucích/žádoucích
zvuků a jejich odstranění (rekonstrukci bez rušivých zvuků).
13 Softwarové řešení Na obrázku je ukázáno, jak lze pomocí fft filtru zesílit vysoké frekvence, trochu ztišit basy a
hodně snížit (odfitrovat) ostatní frekvence.
Obr.4 FFT filter
HPF, high pass filter
Nástroj pro oříznutí vysokých frekvencí
LPF, low pass filter
Nástroj pro oříznutí nízkých frekvencí (basů)
Notch filter
Nástroj, který ze zvuku odfiltruje jen určitou frekvenci.
14 Softwarové řešení 5.3 Transformace
5.3.1 Fourierova transformace
V roce 1822 vypracoval matematik Fourier metodu nazvanou harmonická analýza. Tato
metoda vychází z myšlenky, že jistou funkcí můžeme až na jistou chybu nahradit lineární kombinaci
jiných jednodušších funkcí vybraných z vhodně zvolené množiny. Harmonická analýza slouží tedy
k nalezení parametrů rozkladu složitého děje v součet jednoduchých signálů. Je vyjádření časově
závislého signálu pomocí harmonických signálů, tzn. Funkcí sin a cos, obecně tedy funkce komplexní
exponenciály. Slouží pro převod signálů z časové oblasti do oblasti frekvenční. Signál se může
nacházet buď ve spojitém nebo diskrétním čase.
Spojitý čas
Fourierova transformace S(ω) funkce s(t) je definována integrálním vztahem
Funkci s(t) vypočteme z S(ω) inverzní Fourierovou transformací
Nevlastní integrály chápeme ve smyslu Cauchyovy hlavní hodnoty, tj.
Dvojice ve Fourierově transformaci se nazývají originál (zde s(t)) a obraz (zde S(ω)). Vztah mezi
originálem a obrazem vyjadřujeme zápisem
a
.
V technické oblasti je ω úhlový kmitočet. Pak S(ω) představuje spektrum signálu s(t).
Označení spektra volíme obvykle stejné jako označení signálu, ale velkým písmenem.
Spektrum je komplexní veličina a lze vyjádřit ve tvaru
.
Velikost
nazýváme amplitudové spektrum a úhel argS(ω) fázové spektrum signálu.
15 Softwarové řešení Diskrétní čas
Fourierova transformace S(Ω) posloupnosti s(k) je definována vztahem
Posloupnost s(k) vypočteme z S(Ω) inverzní Fourierovou transformací
Někteří autoři označují tuto transformaci DtFT (discrete-time Fourier transformation), aby ji odlišili
od Fourierovy transformace spojitého signálu. Zde nebudeme značením nijak odlišovat Fourierovu
transformaci spojitého a diskrétního signálu. Vztah mezi signálem a jeho spektrem budeme tedy značit
a
.
Spektrum diskrétního signálu se od spektra spojitého signálu liší tím, že je periodické s periodou 2π .
16 Softwarové řešení 5.3.2 Diskrétní Fourierova transformace
Diskrétní Fourierova transformace našla velké uplatnění zejména s rozvojem výpočetní
techniky. Součástí řady přístrojů jsou jednoúčelové procesory realizující tuto transformaci. Její hlavní
rozvoj nastal po roce 1965, kdy J.W. Cooley a J.W. Tukey popsali velmi efektivní algoritmus výpočtu
DFT, tzv. rychlou Fourierovu transformaci (FFT - Fast Fourier Transform). Díky tomuto algoritmu se
stala diskrétní Fourierova transformace nejrozšířenějším prostředkem pro numerický výpočet
Fourierovy transformace. Algoritmus FFT je také implementován ve všech dobrých matematických
programech jako je např. Octave, Mathcad, Matematica, Maple, Matlab atd.
Diskrétní Fourierova transformace mezi posloupnostmi
,
,
je definována vztahy:
přímá diskrétní Fourierova transformace
a zpětná (inverzní) diskrétní Fourierova transformace
Výpočet DFT podle definičního vztahu vyžaduje N2 komplexních součinů a N2komplexních součtů.
Toto množství operací výrazně snižuje možnost aplikace DFT na výpočty v reálném čase. Existuje
však efektivní algoritmus výpočtu DFT, nazývaný rychlá Fourierova transformace (FFT – Fast Fourier
Transform), který vyžaduje jen N / 2log2(N) komplexních součinů a Nlog2(N) komplexních součtů.
17 Experimentální část 6. Experimentální část
6.1 Elektronics Workbench
Pro experimentální část jsem si zvolil Elektronics Workbench. Jedná se program, který nám
umožní simulování a modelování elektrického obvodu, aniž bychom jej museli pájet na plošný spoj.
V tomto programu si namodelujeme a uděláme simulaci obvodu na potlačení hlasu zpěváka. Do obou
vstupních kanálů jsem pustil z generátoru sinusový signál, jehož frekvence činila 1000Hz a amplituda
5 V. Po pár měřeních a ukázkách výstupu oscilátoru jsem docílil toho, že uvedený obvod pracuje jak
má, ale nesmí se zapomínat na jeho funkčnost tzn. obvod odstraňuje zpěv z písně v obou kanálech. Na
uvedeném obrázku 5 vidíme dva sinusové průběhy. Červený průběh znázorňuje původní signál
z generátoru a modrý průběh ukazuje signál za prvním invertorem, který točí fázi pravého kanálu.
Nyní stačí jen fáze odečíst, to nám zařizuje druhý invertor. Na druhém obrázku č. 6 vidíme výstup
z oscilátoru po odečtení obou signálu, červeně je znázorněn původní signál a modře signál po odečtení
obou fází.
Obr.5 Výstup s oscilátoru
Obr 6 Výstup z oscilátoru
18 Implementační část 7. Implementační část
V této kapitole popíši prostředky, kterými jsem implementoval zvolené metody a vysvětlím
některé algoritmy včetně ukázek kódu.
7.1 Použité prostředky
Pro implementaci programu jsem si zvolil vývojové prostředí DEV- C++, který je vytvořen
pro psaní C/C++ kódů a běží pod operačním systémem Windows.
K implementaci zvolené metody my byl doporučen programovací jazyk C/C++. Doporučení
spočívalo v tom, že program by v případě dopracování mohl být skutečně použitelný a tedy je třeba co
nejvyšší efektivity a rychlosti.
7.2 Práce s „ *.wav “ soubory
WAV je zkratka a běžně používaná přípona pro Waveform audio format. Tento zvukový
formát byl vytvořen firmami IBM a Microsoft pro ukládání zvuku na PC. Jedná se o speciální variantu
obecnějšího formátu RIFF.
Přestože je možné ukládat do WAV souboru zvuk komprimovaně, např.MP3, většinou se
používá nekomprimovaný zvuk v pulzní kódové modulaci( PCM ) . Pulzně kódová modulace je
modulační metoda převodu analogového zvukového signálu na signál digitální.
Jelikož PCM je bezdrátový formát, používá se nejčastěji WAV při zpracování zvuku.
7.3 Knihovna „wave “
Vstupem mého programu jsou *.wav soubory. Popíši důležité části formátu těchto souborů a
nakonec předvedu ukázky kódu. Formát se v základu skládá z kolekce datových úseků. Každý datový
úsek je tvořen 32-bitovým identifikátorem (4 znaky = název), 32-bitovou délkou a vlastním obsahem
dat.
19 Implementační část Přehledný náhled na formát souborů ukazuje tabulka:
Poznámky:
•
Délky úseků v sobě neobsahují délku identifikačního řetězce a délku-specifikujícího čísla
•
U souborů s více než jedním kanálem se střídají vzorky všech kanálů potom následuje další
celý vzorek (u stereozáznamu jsou tedy vzorky ve sledu vzorek0levý, vzorek0pravý,
vzorek0levý, vzorek0pravý, ….)
•
Většina WAV souborů je v tzv. Little-endian bytovém pořadí, tedy nejméně významný
byte(neplést si byte a bit!) je nejvýznamnější, atd.
20 Implementační část 7.4.Ukázky kódu
Úkolem v implementační části bylo naimplementovat načítání wav souboru, sečtení dvou
kanálů do jedné stopy a uložení. A také naimplementovat filtraci, tak aby se potlačilo frekvenční
pásmo, které zabírá hlas.
Načteni,sečtení kanálů a uložení wav souboru
Pro otevření a načtení wav souboru jsem použil:
Wav_in::Wav_in(char *file_name){
…..
// Otevreni wav souboru
f = fopen(file_name,"rb");
if (f==NULL){
printf("Nelze otevrit wav soubor\n");
exit(-1);
}
// Nacist wav
ws = fread((void *)wav, sizeof(Wav_hdr), (size_t)1,f);
if (ws!=1){
printf("Nelze nacist wav\n" );
exit(-1);
}
…..
}
Hlavní procedura ( int main) je naprogramována, tak aby se výstupní soubor ( třída Wav_out)
založila jako mono (channels = 1), a v následném cyklu, kde se čtou a zapisuji
(while(infile.more_data_available())), načetl vždy 2 vzorky z prvního souboru (stereo - levý a pravý
kanál) a po sloučení (L+P děleno 2) zapsal jako 1 vzorek do výstupního souboru.
/*cyklus, kde se čtou a zapisuji data */
while (infile.data_available()) {
double data = infile.read_input();
/*nacteni leveho a praveho kanalu*/
double dataL = infile.read_input();
double dataR = infile.read_input();
/*slouceni, vydeleni dvema a zapsani jako jeden vzorek*/
double dataMono = (dataL + dataR)/2;
outfile.write_output(data);
}
21 Implementační část Filtrace kanálů
Na začátek jsem si vytvořil pole pro levý kanál a pro pravý kanál. Velikost obou polí jsem
alokoval podle počtu vzorků zjištěných ze souboru.
double *leftData = new double[numSamplesfft];
double *rightData = new double [numSamplesfft];
posléze pomocí cyklu infile.read() načítám postupně obě pole. Pak jsem si vytvořil další pole pro
výsledek transformace FFT (o velikosti fftSamples)
double *fftSamples = new double[numSamplesfft];
Nad pole fftSamples jsem provedl cyklus od určitého prvku po určitý prvek, který odpovídá hranicím
frekvenčního pásma lidského hlasu tzn.(300 – 3400 Hz) a tyto prvky nastavil na 0, což prakticky
znemená potlačení toho frekvenčního pásma.
fft(fftSamples,leftData,numSamplesfft);
for(long int i= (long int)(300/(sampleRate/numSamplesfft));
i<(long int)(3400/(sampleRate/numSamplesfft)); i++){
leftData[i]=0;
}
a v závěrečném cyklu beru postupně hodnoty z obou polí a slučuji do jednoho kanálu a výsledné
hodnoty zrovna zapisuji přímo do outfile tedy takto:
for(long int i=0; i < numSamples/2 - 1; i++){
outfile.write((leftData[i] + rightData[i])/2);
}
Ještě na závěr se nesmí zapomenout, že při alokaci pole musíme každé použité pole uvolnit a to
pomocí např:
delete[]leftData;
22 Implementační část Ve třídě wav_in.cpp se nachází Wav_in::Wav_in (char *file_name) jedná se o konstruktor
třídy Wav_in, takže jeho zavoláním např: Wav_in(“mujsoubor.wav ”) se zkonstruuje instance třídy
Wav_in, která zajistí načtení a analýzu toho souboru. Pro načtení wav souboru jsem použil:
Wav_in infile(argv[1]); kde argv[1] je první argument z příkazové řádky programu a infile je název
instance (proměnná třídy WAV_IN). Takže se načte soubor, jehož název je určen prvním argumentem
na příkazové řádce, která spustí program.
Načtení wav souboru pomocí argv[1], mi připadá univerzálnější, protože mi dovolí předhodit
tomuto programu jakkoli pojmenovaný Wav soubor přes příkazovou řádku, kdežto kdybych tam zadal
nějaký konkrétní wav soubor natvrdo tak se mi zkompiluje v programu, a díky čemuž je potom
program téměř nepoužitelný v praxi.
Výsledek úspěšného spuštění programu:
23 Závěr 8. Závěr
Cílem mé práce bylo naimplementovat načtení, slučování dvou kanálů, uložení a filtrace na potlačení
frekvenčního pásma. Po postupném prostudování zadané problematiky a následné implementace, jsem
přicházel na to, že se ze zvukem dají dělat různé zajímavé věci, jako např. potlačení frekvenčního
pásma, které zabírá hlas a nechat hrát jen hudbu, odrušení basů v nahrávce, slučování dvou kanálů ve
stereowavce atd. Separace zpěvu v hudbě je složitý problém a existuje velmi mnoho metod s různou
úspěšností, musí se vždy vynaložit hodně času a trpělivosti na to, aby byl daný problém správně
vyřešen a bylo dosaženo očekávaných výsledků. Jeden z možných jednodušších postupů jsem řešil ve
své bakalářské práci.
OBVOD NA POTLAČENÍ HLASU – využívá myšlenky, jak potlačit ze stereo nahrávky to co je
v obou kanálech. Aby tento obvod odstranil zpěv, musí se zpěv nacházet v obou kanálech stejně,
jestliže tomu tak není, je obvod je nefunkční. Jenže ve stereo nahrávce nebývá obsažen jenom zpěv
v obou kanálech. Se zpěvem však může docházet k tomu, že se odstraní různé části nástrojů, z toho
plyne, že se nahrávka nedá poslouchat.
MIDI – nejedná se o metodu pomocí, které by se dal odstranit zpěv z nahrávky a nelze ji srovnávat
s jinými metodami. Ale jedná se o jednu z možností, jak lze získat skladbu bez jakéhokoliv zpěvu, což
se hojně používá, pro dosažení velmi dobrých výsledků.
24 Použitá literatura 9. Použitá Literatura:
[1]
http://www.elektronikacz.borec.cz/Data/Potlaceni%20hlasu%20zpevaka.htm
[2]
http://cs.wikipedia.org/wiki/Fourierova_transformace
[3]
http://www.dreamface.net/modules.php?name=News&file=article&sid=117
[4]
http://cs.wikipedia.org/wiki/MIDI
[5]
http://magazin.stahuj.cz/
[6]
http://tosovsky.info/zvuk/vyklad.html#equalizer
[7]
http://cs.wikipedia.org/wiki/A/D_p%C5%99evodn%C3%ADk
[8]
http://tosovsky.info/zvuk/vyklad.html
[9]
http://www.sonicspot.com/guide/wavefiles.html#wavefileheader
[ 10 ] http://www.borg.com/~jglatt/tech/wave.htm
[ 11 ] Robert Guérin : Velká kniha MIDI, Computer Press Brno, 2004.

Podobné dokumenty

klávesnice TS 5220004.

klávesnice TS 5220004. " MO T " U M O Z N U JE SPUST I T M O T O R E K M A GNE T O F O NU < NAPR . P R O P R E V I J E N I P A S K Y ) B EZ

Více

Číslo III.

Číslo III. Převedení kompetencí ke stanovení finančních úlev v dopravě na Ministerstvo dopravy považujeme za zcela scestné, protože tento rezort nemá k dispozici žádné lékaře, kteří by mohli objektivně posou...

Více

8. Rozděl a panuj

8. Rozděl a panuj už jednoduše vybrat požadovaný prvek. To bychom dokázali V celkem slušném čase Θ(n log n), ale už teď můžeme prozradit, že to jde V čase Θ(n). Jak? Použijme metodu rozděl a panuj. Nějakým způsobem ...

Více