PSD – Výkonová spektrální hustota

Symbol blokuPotřebná licence: ADVANCED
PIC

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 = 1) 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 n> 0, 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 N pro výpočet FFT. Vstup upsd odkazuje na výslednou PSD s npsd řádky a m sloupci. Počet frekvencí PSD npsd = N2 + 1 pro sudé N nebo npsd = (N + 1)2 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 L = N 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 L = N + 1 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)
w(n) = 0.62 0.48 n N 1 0.5 + 0.38cos 2π n N 1 0.5, 0 n N 1.

iwin=2
Bartlettovo okno (Bartlett Window)
w(n) = 2n N , 0 n N 2 , 2 2n N , N 2 n N.

iwin=3
Blackmanovo okno (Blackman Window)
w(n) = 0.42 0.5cos 2πn L 1 + 0.08cos 4πn L 1, 0 n M 1,

kde M je N2 pro sudé N a (N + 1)2 pro liché N.

iwin=4
Blackmanovo-Harrisovo okno (Blackman-Harris Window)
w(n) = a0 a1 cos 2πn L 1 + a2 cos 4πn L 1 a3 cos 6πn L 1, 0 n N 1

kde a0 = 0.35875, a1 = 0.48829, a2 = 0.14128 a a3 = 0.01168.

iwin=5
Bohmanovo okno (Bohman Window)
w(x) = 1 xcos π x + 1 πsin π x,  1 x 1

iwin=6
Čebyševovo okno (Chebyshev Window)

Použitím Čebyševových polynomů n-tého řádu

Tn(x) cos ncos1(x), |x| 1, cosh ncosh1(x), |x| > 1,

je Fourierova transformace Čebyševova okna

W(k) = TN1 x0 cos(πkN) TN1(x0)

kde

x0 = cosh cosh1 10r20 N 1 .

iwin=7
Okno s plochým vrcholem (Flat Top Window)
w(n) = a0 a1 cos 2πn L 1 + a2 cos 4πn L 1 a3 cos 6πn L 1 + a4 cos 8πn L 1,

kde 0 n N 1 and a0 = 0.21557895, a1 = 0.41663158, a2 = 0.277263158, a3 = 0.083578947 a a4 = 0.006947368.

iwin=8
Gaussovo okno (Gauss Window)
w(n) = e1 2 α n (N1)22 = en2(2σ2)

kde (N 1)2 n (N 1)2 a σ = (N 1)(2α) je směrodatná odchylka Gaussovy funkce hustoty pravděpodobnosti.

iwin=9
Hammingovo okno (Hamming Window)
w(n) = 0.54 0.46cos 2π n L 1, 0 n N 1,

iwin=10
Hannovo okno (Hann Window)
w(n) = 0.5 1 cos 2π n L 1, 0 n N 1,

iwin=12
Nuttallova varianta Blackmanova-Harrisova okna (Nuttall’s Blackman-Harris Window)
w(n) = a0 a1 cos 2πn L 1 + a2 cos 4πn L 1 a3 cos 6πn L 1, 0 n N 1

kde a0 = 0.3635819, a1 = 0.4891775, a2 = 0.1365995 a a3 = 0.0106411.

iwin=13
Parzenovo okno (Parzen Window)
w(n) = 1 6 |n| N22 + 6 |n| N23, 0 |n| (N 1)4, 2 1 |n| N23, (N 1)4 < |n| (N 1)2.

iwin=14
Obdélníhové okno (Rectangular Window)
w(n) = 1, 0 n N 1.

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é N:

w(n) = 2n + 2 N + 1 , 0 n (N 1)2, 2 2n + 2 N + 1 , (N 1)2 < n (N 1).

Pro sudé N:

w(n) = 2n + 1 N , 0 n N2 1, 2 2n + 1 N , N2 n (N 1).

iwin=17
Tukeyovo okno (Tukey Window)
w(x) = 1 2 1 + cos 2π r x r2, 0 x < r 2, 1, r 2 x < 1 r 2, 1 2 1 + cos 2π r x 1 + r2, 1 r 2 x < 1,

kde r je parametrem rwnd, s implicitní hodnotou 0.5.

iwin=18
Exponenciální okno (Exponential Window)
w(x) = e|x| τ ,  1 x 1,

kde τ je parametr okna (nastavený v rwnd).

iwin=19
Welchovo okno (Welch Window)
w(x) = 1 x2,  1 x 1.

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)

1 ....

Reálná

2 ....

Reálná s překryvem

3 ....

Komplexní

4 ....

Komplexní s překryvem

mtrig

Spouštěcí mód výpočtu   1  3 1

Long (I32)

1 ....

Každá perioda

2 ....

Dostatek vzorků

3 ....

Náběžná hrana START

iwnd

Váhová funkce (window)   1  9 1

Long (I32)

1 ....

Bartlett-Hann

2 ....

Bartlett

3 ....

Blackman

4 ....

Blackman-Harris

5 ....

Bohman

6 ....

Čebyšev

7 ....

Flat top

8 ....

Gaussian

9 ....

Hamming

10 ...

Hann

11 ...

12 ...

Nuttall

13 ...

Parzen

14 ...

Obdélníkové

15 ...

16 ...

Trojúhelníkové

17 ...

Tukey

18 ...

Exponenciální

19 ...

Welch

20 ...

Externí

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)

2024 © REX Controls s.r.o., www.rexygen.com