B2M31DSP cvičení
Potlačování aditivního šumu ve frekvenční oblasti pro stacionární signály
Příprava signálu se šumem
Načtěte soubor sinusovek ze souboru sink.mat uchovaných v jednotlivých řádcích matice. Jedná se MATLABovský binární formát, do MATLABu načtěte pomocí funkce load (Použijte příkaz "load sink.mat"). Vzorkovací kmitočet je 16000 Hz.
Jako čistý stacionární signál použijte součet prvních 3 sinusových složek v matici sink.
Načtěte rušení ze signálu
nc2.bin (stacionární VF šum,
binární PCM, pro načtení použijte funkci loadbin.m) a upravte jeho výkon násobením konstantou "K=0.3" (případně 0.001 pro odladění, či vyzkoušejte i další hodnoty pro řízení úrovně šumu v signálu).
Čistý signál a příslušně zeslabený šum sečtěte a spočítejte SNR zašuměného signálu.
Výsledek:
Časový průběh uměle zašuměného stacionárního signálu.
SNR dané směsi.
Potlačování šumu pomocí Wienerovy filtrace
Odhadněte vyhlazené spektrální výkonové hustoty čistého signálu i šumu. Použijte dostupné informace o obou složkách.
Realizujte Wienerovu filtraci ve frekvenční oblasti - signál zpracovávejte v krátkodobých segmentech délky 512 vzorků a použijte metodu OLA s Hammingovým oknem a 50% překryvem. Můžete použít následující připravenou strukturu metody OLA ola_general_empty.m.
Určete SNR výstupního signálu resp. zlepšení SNR při použití WF (použijte jako referenci dostupný čistý signál).
Výsledek:
Časové průběhy vstupního a výstupního signálu získaného pomocí Wienerovy filtrace.
Spektrogramy vstupního a výstupního signálu pomocí Wienerovy filtrace.
Zlepšení SNR při použití Wienerovy filtrace.
Potlačování šumu pomocí DCT
Vypočítejte DCT a vyhlazená výkonová spektra na bázi DCT pro čistý signál i přidávaný šum. Použijte dostupné informace o obou složkách.
Realizujte potlačení šumu pomocí DCT a váhování na bázi apriorního SNR - signál opět zpracovávejte v krátkodobých segmentech délky 512 vzorků a použijte metodu OLA s Hammingovým oknem a 50% překryvem. Doplňujte do dříve vytvořené struktury se spektrálním odečítáním a WF.
Určete opět SNR výstupního signálu resp. zlepšení SNR při použití potlačování na bázi DCT.
Výsledek:
Časové průběhy vstupního a výstupního signálu získaného pomocí potlačování šumu na bázi DCT.
Spektrogramy vstupního a výstupního signálu pomocí DCT odšumování.
Zlepšení SNR při použití DCT odšumování.
Potlačování šumu pomocí amplitudového spektrálního odečítání
Realizujte spektrální odečítání s jednocestným usměrněním (případně dvoucestným usměrněním).
Signál zpracovávejte v krátkodobých segmentech délky 512 vzorků a použijte metodu OLA s Hammingovým oknem a 50% překryvem. Doplňujte do dříve vytvořené struktury.
Určete SNR výstupního signálu resp. pozorujte zlepšení SNR oproti původnímu zašuměnému signálu.
Výsledek:
Časový průběh výstupního signálu získaného pomocí spektrálního odečítání.
Spektrogramy vstupního a výstupního signálu pomocí spektrálního odečítání.
Zlepšení SNR při použití spektrálního odečítání.
Experimenty s dalšími signály
Vyzkoušejte výše uvedené metody potlačení i pro další signály, tj. konkrétně pro
- čistý signál daný součtem všech dostupných sinusových složek v matici sins,
- reálný signál vm0.bin (v tomto případě pro načtení použijte funkce loadbin.m),
- další varianty šumu v souborech nc1.bin (stacionární NF šum), nc3.bin (stacionární pásmový šum),nc4.bin (stacionární pásmový šum).