B2M31DSP cvičení
Slepá separace na bázi algoritmu FastICA.
Lineární mixáž více uměle vytvořených signálů - matice
Načtěte signály uložené v následujícím mat-souboru - tst_signals.mat, kde jsou k dispozici následující signály vzorkované kmitočtem 1000 Hz:
- s1 (proměnná sinusWave02Hz) - sinus 2 Hz
- s2 (sinusWave10Hz) - sinus 10 Hz
- t1 (triangle) - trojúhelníkový signál
- e1 (exponenciela) - periodické exponenciální pulsy
- o1 (rectangle) - periodické obdélníkové pulsy
- b0 (noise_uniform_dist) - bílý šum s rovnoměrným rozložením
- b1 (noise_white) - bílý šum s Gaussovským rozložením
- c1 (noise_nf) - nízkofrekvenční šum s Gaussovským rozložením
- c2 (noise_vf) - vysokofrekvenční šum s Gaussovským rozložením
- c3 (noise_band) - pásmový šum s Gaussovským rozložením
Vytvořte 4-kanálový signál se 4 různými vybranými signály, např. e1, t1, s1, b1. Vybranné signály zobrazte - subplot(411), subplot(412), subplot(413), subplot(414).
Vytvořte 4-kanálovou lineární mixáž danou následující maticí A=[8 4 6 2; 6 1 3 7; 3 8 1 9; 3 2 3 2] a směs signálů opět zobrazte obdobným způsobem jako výše.
Ze známé mixážní matice A určete inverzí matici pro separaci W a po aplikaci zobrazte separované signály.
Proveďte slepou separaci na bázi
algortimu FastICA a pozorujte separované signály
pomocí FastICA i odhady mixážní resp inverzní
matice A_ica a W_ica. Pro výpočet
použijte dostupné funkce fastica.m
(je nutné stáhnout i remmean.m, pcamat.m, fpica.m, whitenv.m), které jsou dostupné v adresáři
K:\VYUKA\DSP\m.
Opakujte s následující maticí A=[8 4 6 2; 6 1 3 7; 3 8 1
9; 4 2 3 1] a výsledek zdůvodněte.
Opakujte se čtveřicí signálů e1, t1, s1, s1 a výsledek zdůvodněte.
Opakujte se čtveřicí signálů b1, c1, c2, c3 (Gausovské šumy s různým frekvnečním obsahem) a výsledek zdůvodněte.
Výsledek :
Zobrazení časových průběhů původních signálů, lineárních směsí a signálů po separaci s ideální inverzí resp. se slepou separací pomocí FastICA.
Zobrazte rovněž spektra analyzovaných a separovaných signálů (odhady PSD resp. výkonových spekter), spektra počítejte i pro deterministické signály pomocí pwelch, délku krátkodobého okna volte 512 vzorků.
Načtěte libovolné 4 delší promluvy od 4 různých mluvčích z databáze zreratdb, např. T17201S1.CS0, T17217S1.CS0, T17204S1.CS0, T17214S1.CS0 či libovolné jiné. Upravte délku signálů podle délky nejkratší promluvy a signály si zobrazte i poslechněte (fs=16kHz).
Vytvořte 4-kanálovou lineární mixáž danou následující maticí A=[1 0.9 0.8 0.7; 0.9 1 0.9 0.8; 0.8 0.9 1 0.9; 0.7 0.8 0.9 1], která simuluje snímání simultánního hovoru 4 mluvčích 4 mikrofony. Směs signálů opět zobrazte a poslechněte.
Proveďte slepou separaci na bázi algortimu FastICA a pozorujte a poslechněte separované signály pomocí FastICA.
POZNÁMKA - Pro poslech používejte v tomto případě vždy funkci soundsc, která upraví amplitudu zesíleného signálu do požadovaného rozsahu +/- 1.
Výsledek:
Zobrazení časových průběhů původních signálů, lineární směsi resp. signálů po separaci.
Zobrazení spektrogramů původních signálů, lineární směsi resp. signálů po separaci.
Opakujte separaci pouze s trojicí směsí signálů od 4 mluvčích (simulace použití 3 mikrofonů) a pozorovaný a poslechnutý výsledek vysvětlete.