PSD – Výkonová spektrální hustota
Symbol blokuPotřebná licence: ADVANCED
Popis funkce
Funkční blok PSD (Power Spectral Density) slouží pro výpočet výkonové
spektrální hustoty (PSD, periodogramu) pomocí balíku PocketFFT [7]. PocketFFT
implementovaný v C99 vychází z balíku FFTPack (ve Fortranu) [8], který byl vyvinut
na základě kapitoly z [9].
PSD se nejčastěji počítá ze segmentů délky N vzorků vstupního signálu. Data těchto segmentů jsou vynásobena váhovou funkcí (window function), též nazývanou oknem (např. Hammingovo okno). Z takto vážených dat je vypočtena rychlá Fourierova transformace (FFT), a z ní pak spektrální výkonová hustota (PSD) každého segmentu. Nakonec se zprůměruje navg těchto výsledků (viz parametr navg). Vstupní signál je rozdělen do segmentů následujících po sobě nebo se segmenty vždy o polovinu překrývají (Welchova metoda [10], [11]). Výsledná PSD může být vypočtena v decibelech (dB), pokud je parametr DB = on.
Vstup uc odkazuje na vstupní data (vektor nebo matice) tohoto bloku. Pokud vstup uc odkazuje na sloupcový vektor (počet sloupců m = ) s počtem prvků n, pak bude PSD počítána z jednoho signálu s n vzorky. Pokud vstup uc odkazuje na matici s n řádky a m sloupci, pak bude PSD počítána m krát (jednou pro každý sloupec). Pokud je vstup , pak bude počet vzorků segmentu N = n, jinak bude N nastaveno na počet sloupců pole, na něž odkazuje vstup uc.
Vstup uf odkazuje na interní vektor dimenze pro výpočet FFT. Vstup upsd odkazuje na výslednou PSD s npsd řádky a m sloupci. Počet frekvencí PSD pro sudé N nebo pro liché N. Vstup uwrk odkazuje na pracovní pole se stejnými rozměry jako pole odkazované vstupem upsd. Pokud vstupní data obsahují víc prvků než může být zpracováno v jednom spuštění bloku PSD, jsou zbývající data zkopírována do pole odkazovaného vstupem urem naalokovaného s N řádky a m sloupci.
Zpracování vstupních dat je určeno parametry mode a mtrig (viz níže). Parametr mode určuje způsob výpočtu PSD, podle toho, zda vstupní data odkazovaná vstupem uc jsou reálná nebo komplexní a zda bude použito překrývání segmentů o polovinu. Vstupní data vzorkovaná s frekvencí připojenou na vstup fs mohou být získávána v jiné úloze (např. s podstatně kratší periodou vzorkování) než v té, ve které je počítána PSD. Způsob spouštění výpočtu PSD je určen parametrem mtrig (trigger mode). Výpočet PSD může být spouštěn každou periodu běhu bloku PSD, v případě, že ve vstupním poli je dostatečný počet vzorků (alespoň rovný hodnotě N), nebo náběžnou hranou vstupu START.
Na vstup uwnd je připojen vektor dimenze N, do kterého se uloží hodnoty váhové funkce okna, zvoleného parametrem iwin. Váhové funkce okna mohou mít (volitelně) celočíselný parametr lwnd a/nebo reálný parametr rwnd. Některá okna lze používat ve dvou variantách:
- Symetrické (pro lwnd=0). Je vypočteno okno délky vzorků, první a poslední vzorek je shodný. Tato varianta je vhodná pro návrh filtrů s konečnou impulzní odezvou (Finite Impulse Response, FIR).
- Periodické (pro lwnd=1). Je vypočteno okno délky vzorků, přičemž se uloží prvních N vzorků. Periodická verze se přednostně používá pro spektrální analýzu, protože diskrétní Fourierova transformace předpokládá periodický průběh vstupního vektoru.
Váhové funkce oken jsou definovány následujícími výrazy:
- iwin=1
- Bartlettovo-Hahnovo okno (Bartlett-Hahn Window)
- iwin=2
- Bartlettovo okno (Bartlett Window)
- iwin=3
- Blackmanovo okno (Blackman Window)
kde je pro sudé a pro liché .
- iwin=4
- Blackmanovo-Harrisovo okno (Blackman-Harris Window)
kde , , a .
- iwin=5
- Bohmanovo okno (Bohman Window)
- iwin=6
- Čebyševovo okno (Chebyshev Window)
Použitím Čebyševových polynomů -tého řádu
je Fourierova transformace Čebyševova okna
kde
- iwin=7
- Okno s plochým vrcholem (Flat Top Window)
kde and , , , a .
- iwin=8
- Gaussovo okno (Gauss Window)
kde a je směrodatná odchylka Gaussovy funkce hustoty pravděpodobnosti.
- iwin=9
- Hammingovo okno (Hamming Window)
- iwin=10
- Hannovo okno (Hann Window)
- iwin=12
- Nuttallova varianta Blackmanova-Harrisova okna (Nuttall’s
Blackman-Harris Window)
kde , , a .
- iwin=13
- Parzenovo okno (Parzen Window)
- iwin=14
- Obdélníhové okno (Rectangular Window)
Tento blok neprovádí násobení všech datových vzorků hodnotou 1, a proto nemusí být vstup uwnd připojen (vektor okna se nepoužívá).
- iwin=16
- Trojúhelníkové okno (Triangular Window)
Pro liché :
Pro sudé :
- iwin=17
- Tukeyovo okno (Tukey Window)
kde je parametrem rwnd, s implicitní hodnotou .
- iwin=18
- Exponenciální okno (Exponential Window)
kde je parametr okna (nastavený v rwnd).
- iwin=19
- Welchovo okno (Welch Window)
- iwin=20
- Externě definované okno
Pokud není uživatel spokojen s žádným s předdefinovaných oken, může si zadat své vlastní okno pomocí N vzorků ve vektoru odkazovaném vstupem uwnd předtím, než je spuštěn blok PSD.
Vstup HLD umožňuje dočasně zastavit výpočet PSD.
Vstupy
uc | Vstupní odkaz na vstupní data | Reference |
uf | Vstupní odkaz na interní vektor pro FFT | Reference |
upsd | Vstupní odkaz na výstupní vektor/matici spektrální výkonové hustoty | Reference |
urem | Vstupní odkaz na zbývající (nezpracovaná) data | Reference |
uwnd | Vstupní odkaz na vektor váhové (window) funkce | Reference |
uwrk | Vstupní odkaz na pracovní vektor/matici | Reference |
n | Počet vzorků signálu v segmentu FFT | Long (I32) |
fs | Frekvence vzorkování v [Hz] | Double (F64) |
START | Start výpočtu (náběžná hrana) | Bool |
HLD | Hodnota HLD=on zastavuje výpočet PSD | Bool |
Parametry
mode | Výpočetní mód spektrální výkonové hustoty 1 4 1 | Long (I32) |
|
|
|
mtrig | Spouštěcí mód výpočtu 1 3 1 | Long (I32) |
|
|
|
iwnd | Váhová funkce (window) 1 9 1 | Long (I32) |
|
|
|
lwnd | Parametr lwnd některých váhových funkcí 1 9 1 | Long (I32) |
rwnd | Parametr rwnd některých váhových funkcí 1 9 1 | Long (I32) |
navg | Počet segmentů FFT pro průměrování 1 10 | Long (I32) |
DB | Vypočená spektrální výkonová hustota je konvertována do decibelů [dB] | Bool |
Output
yc | Výstupní odkaz na vstupní data | Reference |
yf | Výstupní odkaz na interní vektor pro FFT | Reference |
ypsd | Výstupní odkaz na výstupní vektor/matici spektrální výkonové hustoty | Reference |
yrem | Výstupní odkaz na zbývající (nezpracovaná) data | Reference |
ywnd | Výstupní odkaz na externí váhovou (window) funkci | Reference |
ywrk | Výstupní odkaz na pracovní vektor/matici | Reference |
E | Příznak chyby | Bool |
DONE | Příznak dokončení výpočtu průměrováním | Bool |
iavg | Aktuální index segmentu pro průměrování | Long (I32) |
lcomp | Počet úspěšných výpočtů spektrální výkonové hustoty | Large (I64) |
[Předchozí] [Na začátek] [Výše]
2024 © REX Controls s.r.o., www.rexygen.com