Tento dokument vcetne vsech odkazu pouziva kodovani ISO
8859-2 (Latin-2)
B2B31CZS cvičení
Diskrétní Fourierova transformace (DFT)
Základní vlastnosti periodogramu a příklady aplikace.
-
DFT - periodogram, prosakování
- Generujte sinusovku f=1000 Hz, fs=8000 Hz o délce
trvání t_max=0.5 s .
- Vyberte segment délky N=512 vzorků a sledujte jeho periodogram (fce
fft). Popište správně
frekvenční osu a srovnejte různé způsoby zobrazení (plot s různými parametry,
stem, apod.).
- Sledujte periodogram sinusovky pro segmenty délky
N=512, 510, 508 vzorků resp. N=512, 515, 520 vzorků. Vysvětlete pozorované výsledky pro různé délky okna.
- Sledujte periodogram sinusovky o kmitočtu f=1231 Hz opět pro různé
krátkodobého segmentu
N=512, 510, 508 vzorků. Vysvětlete pozorované výsledky.
- Zopakujte předcházející analýzy při aplikaci Hammingova váhovacího okna (fce
hamming).
- V případě volného času opakujte předcházející analýzu s aplikací
Hannova, Blackmanova resp. trojúhelníkového váhovacího okna (fce
hanning, blackman, triang).
-
Vliv váhování v detekci harmonických složek v
signálu softwarově definovaného rádia
- Kontrolovaný výsledek:
Načtěte signál x_spl.mat obsahující
směs harmonických složek v záznamu délky N = 250 vzorků. Signál je
vzorkovaný kmitočtem fs = 1 kHz a je uložen v
MATLABovském formátu. Pro načtení do MATLABu
použijte funkci load. Pro daný signál sledujte:
- amplitudové spektrum signálu dané délky N = 250 bez
váhování v lineárním i logaritmickém měřítku,
- amplitudové spektrum signálu váhovaného
Hammingovým oknem v lineárním i logaritmickém měřítku,
- amplitudové spektrum signálu váhovaného
Blackmanovým oknem v lineárním i logaritmickém měřítku.
- Sledujte odhady krátkodobého výkonového spektra řečového signálu.
- Kontrolovaný výsledek:
Načtěte signál vm7.bin, který je
vzorkovaný kmitočtem fs = 16 kHz a je
uložen v binární formě bez hlavičky. Pro načtení do MATLABu
použijte funkci loadbin.m. Pro daný
signál proveďte následující analýzy:
- vykreslete výkonové spektrum v dB pro první dostupný segment
délky N=512 vzorků se správnám škálováním frekvenční osy,
- srovnejte výsledek pro analyzovaný segment neváhovaný a
váhovaný Hammingovým oknem a sledujte vliv prosakování.
- V případě dostatku času opakujte ilustrativně i pro další signály
vf0.bin, vm0.bin,
vf1.bin, vm1.bin,
vf2.bin, vm2.bin,
vf3.bin, vm3.bin,
vf4.bin, vm4.bin,
vf5.bin, vm5.bin,
vf6.bin, vm6.bin,
vf7.bin, vm7.bin,
vf8.bin, vm8.bin,
vf9.bin, vm9.bin.
- Doplnění nulami při výpočtu DFT (interpolace)
- Vygenerujte velmi krátký úsek sinusovky o kmitočtu f=1231Hz,
fs=8000Hz a s délkou trvání N=512 vzorků.
- Počítejte spektrum pro řád DFT 512, 1024, 2048, 4096, 8192 a
dosažené výsledky srovnejte.
-
Zpřesnění odhadu harmonických komponent v záznamu.
- Kontrolovaný výsledek:
Načtěte signály sig1.mat a
sig2.mat obsahující krátké záznamy směsi sinusovek za přítomnosti
gaussovského bílého šumu. Záznamy jsou
vzorkovaný kmitočtem fs = 200 Hz a jsou uloženy v
MATLABovském formátu. Pro načtení do MATLABu
použijte funkci load. Pro oba zvolené signály určete:
- počet sinusových komponent a jejich kmitočty,
- analyzujte spektrum spočítané z dostupného záznamu
délky N=40 vzorků resp. se záznamu doplněného nulami na
délku N=512 vzorků.
-
Vliv interpolace v detekci harmonických složek v
signálu softwarově definovaného rádia
- Kontrolovaný výsledek:
Pro dříve realizovaný výsledek spektrální analýzy signálu x_spl.mat obsahující
směs harmonických složek v záznamu délky N = 250 vzorků, viz
výše, sledujte vliv interpolace při výpočtu amplitudového spektra s
různým typem váhováním a pro různé délky DFT, tj. zobrazte:
- interpolované amplitudové spektrum signálu bez
váhování v logaritmickém měřítku, které je počítané
pomocí DFT řádu N = 2048 (doplněno nulami),
- interpolované amplitudové spektrum signálu váhovaného
Hammingovým oknem a následně také Blackmanovým oknem v lineárním i logaritmickém měřítku, které je počítané
pomocí DFT řádu N = 2048 (doplněno nulami),
- určete také pro řád DFT N = 512 a N = 4096 (doplněno nulami).
- Detekce periodicity v DFT
- Pozorujte periodogramy následujících signálů, které obsahují
jednu, dvě, tři resp. čtyři periody znělé hlásky vm0-1-per.bin, vm0-2-per.bin, vm0-3-per.bin, vm0-4-per.bin. Pro načtení do MATLABu
použijte opět funkci loadbin.m. Vzorkovací frekvence tohoto signnálu
je 16 kHz. Periodogramy počítejte vždy pro délky dané délkou
záznamu. Pozorované výsledky vysvětlete.
- Sledujte, jak se mění spektrum signálu vm0-4-per.bin, počítáme-li
DFT následujícího řádu (tj. se zkrácením posoupnosti nebo při
doplnění nulami)
a) 479, 481
b) 470, 490
c) 256, 512
d) 1024
e) 2048
- Kontrolovaný výsledek:
Sledujte periodicitu v reálném signálu (znělá hláska) vm0-real-per.bin. Pokuste se určit základní
periodu resp. základní frekvenci daného kvaziperiodického
signálu. Počítejte periodogram
a) pro NFFT = 512
b) pro NFFT = 4096
- Kontrolovaný výsledek:
Sledujte spektrum neperiodického signálu (neznělá hláska) real-non-per.bin a srovnejte s
předchozí variantou kvaziperiodického signálu. Počítejte opět periodogram
a) pro NFFT = 512
b) pro NFFT = 4096
V PŘÍPADĚ DOSTATKU ČASU
- Periodicita ve spektru řečového signálu různé délky: Pro signál vm7.bin z prvního úkolu
sledujte vliv délky okna na detekci periodicity ve spektru
signálu. Pozorujte výkonové spektrum v dB pro první segmenty
délky N=2000, 1024, 512, 256, 128, 64 vzorků, který vždy
váhujte Hammingovým oknem stejné délky.
Sledujte vždy analyzovaný váhovaný signál a vypočítané výkonové spektrum.
Všimněte si souvislosti počtu pozorovaných period v dostupném
segmentu signálu a zřetelnosti harmonických komponent v
napočítaném spektru.
- Určete výšku hlasu na základě DFT i pro jiné záznamy odkazované v prvním bodě pro
dnešní resp. minulé cvičení a srovnejte s výsledky dosaženými pomocí
odhadu na bázi autokorelace. Pracujte vždy s vybraným krátkodobým
segmentem délky N=512 a pro odhad na bázi DFT doplňte nulami, jako v
předcházejícím kroku (tj. volte NFFT=4096).
- Určete výšku tónu u hudebních signálů z minulého cvičení a
srovnejte s výsledky dosaženými pomocí autokorelace -
cembalo_d_dur_2.wav,
fletna_d_dur_6.wav,
housle_d_dur_5.wav,
kytara_d_dur_1.wav,
piano_d_dur_4.wav,
varhany1_d_dur_3.wav,
varhany2_d_dur_8.wav. POZN. Dostupné
signály vzorkované kmitočtem 48 kHz bude vhodné převzorkovat
minimálně na 16 kHz (pro analyzované signály by vzhledem k
frekvenčnímu rozsahu bylo možné i převzorkování na 8 kHz0).
DOMÁCÍ PRÁCE
Numerický výpočet FT, FS, DTFT, DFS pomocí DFT