ZESZYTY NAUKOWE POLITECHNIKI ŚLĄS KI E J Seria: A UT O MA TY KA z. 83
________ 1986 N r kol. 888
Edward HRYNKIEWICZ
O BLICZANIE WS PÓ Ł CZ YN NI K ÓW SZEREGU FOU RI E RA PRZY DANYCH W S PÓ Ł CZ YN NI K AC H SZEREGU W A L S H A
S tr es z c z e n i e . W artykule podana jest me toda obliczenia w s p ó ł czynników szeregu Fouriera pr zy danych współ cz y nn ik ac h szeregu W alsha. Motoda ta jest tak pomyślana, by można było wyk on yw a ć obli
czenia na komputerze os o bistym lub kalkulatorze (w szczególności kalkulatorze H P 9820).
1. Wprowadzenie
D o w o ln a całkowalną funkcję f(t), określoną w przedziale < 0 , T > i speł
niaj ąc ą w a r un k i Dirichleta m ożna rozłożyć w szereg w z g l ę d e m danego u k ł a du bazowych funkcji ortogonalnych. Jako funkcje bazowe, dan oprócz funkoji trygonometrycznych, stosuje się międ zy innymi funkcje Walsha, co w pew
nych przypadkach pozwala na szybsze, niż dla funkcji trygonometrycznych, znajdowanie współc zy nn ik ó w rozkładu. Funkcje W a l sh a dla dowolnego k i dla x € < 0 , 1 > definiuje się nastę p uj ąc o [i] :
M-1
w al(k,x) =■ [~j sgn(cosk r 2r X x ) , (1)
r=0
gdzie:
x = -| i- jest z normalizowanym czasem,
M - na jmniejsza liczba naturalna spełniająca zależność 2 > k, kr - kole j na cyfra zapisu liczby k w kodzie n at ur a ln ym dwójkowym.
Podobnie do fun k cj i trygonometrycznych funkcje Wals ha d z ielimy na parzyste (cal(s,x)) i nieparzyste (sal(s,x)), jak pokazano na rys. 1.
K or zystając z tego, że w obliczeniach komputerowych wyzna cz e ni e w s p ó ł czynników szeregu Wa lsha jest szybsze ¿od wy z naczania w s p ó łc zy nn i kó w Fouriera, można te ostatnie wyz na c za ć pośrednio ze w s p ó ł c z y n n i k ó w Walsha.
Metoda ta może mieć znaczenie wtedy, gdy funkcja f(t) ma skończone widmo Walsha.
34 E. Hrynkiewicz
w a l ( 0 , x ) wal (1 , x )
w a l ( 2 , x ) w a l ( 3 , x )
• wal(4, x)
wa l (5,xJ
wa l (6,x)
wal ( 7 , x)
wal ( 0 , x ) s a l (1, x ) c a l (1, x )
s a l ( 2 , x) c a l (2,xJ
s a l (3, x)
c a l ( 3 , x )
s a l ( 4 , x )
0 . 5
Rys. 1. Funkcje Walsba Fig. 1. Walsh Functions
2. Przejście ze współczynników Y/alsha na ws pó łc zy n ni ki Fouriera
Niech funkcja f(t) o okresie T będzie przedstawiona w postaci sze
regu Y/alsba:
f (t) = C Q + ^ ca 031 (3 *x ) .+ 2 S s 381 (S’X),
3=1 8=1
gdzie s
x = ę - znormalizowany czas, oraz w postaci szeregu Fourieras
a 0 0 0 0
f(t) = ^ ^ an 003 (25fnx) + 2 ^n ain (25Inx)*
n=1 n=1
(2 )
(3)
Obliczanie w sp ół cz y nn ik ów Bzeregu Fouriera... 35
R ozwińmy funkcje cal(s,x) i sal(s,x) w szereg Fouriera [3] * Dla funkcji cal(s,x) jako parzystej w s p ó ł c zy nn ik i bn = 0, a dla funkcji sal(s,x) jako nieparzystej an = 0.
cal(s,x) = 2 a g n cos 2ttnx , n=1
sal(s,x) = ^ b sn sin Z K n z, (4)
n=1 gdzieś
1
a orl = 2 I cal(s,x)cos 23f n x dx,
b _ = 2 i sal(s,x)sin 27T n x dx.
sn j
Po podstawieniu wz orów (4) do (2) i porównaniu (3) z (2) uzyskuje się podstawowe zależności przejścia ze w s p ó ł cz yn n ik ów rozwi ni ęc i a w szereg Walstaa na rozwinięcie w sz ereg Fourierai
a „ = I i T / 1 a ov, C cs u s S « 1
o o
'"sn ~s s=1
b n = 2 s ° ( 5 )
Podstawiając!
^ - 1 , m-1 “ b sn*
( 6 )
^k . m " a sn,
g d z i e !
dla k = 2, 4, 6, 8 ....
m = 2, 4. 6* 8 ....
36 E. Hr ynkiewicz
zbudować macierz A spełniającą równanie:
a Q
S-j > , Sg, Cg, • • *j • 1 0 0 ... 2 2“ > b-j» a 1f b 2 , 0 A.| i A 12 ...
0 A2 2 • • •
• • • • • •
• • • • • •
• • • • • • (7)
Z (6) wynika, że co drugi element w w i e rs zu maci er zy A równy jest zero.
Ze w z gl ę du na to, że dla funkcji W a l s h a o okresie 1 spełniona jest zay leżność [1] j
w a l ( k , x - ■ ! ) » - w al(k,x) (8)
w r oz winięciu tych funkcji w szer eg Foul i er a w ys t ępują tylko harmoniczne nieparzyste, a dla pozostałych funkcji, które są "ściśnięciami" w c z e ś n i e j szych funkcji oryginalnych, harmoniczne niezerowe są jeszcze rzadsze.
Oznacza to, iż w n a j l e p s z y m p rz ypadku co czwarty element wiersza macierzy A jest różny od zera.
Ko r zystając z twierdzenia o zmianie skali czasu można zapisać:
A 2k,2m “ A k,m *
(9) A 2k-1,2m-1 = A k - 1 ,m - 1 '
gdzie:
k ** 2, 4, 6, ... , a 3 2, A, 6, ... .
Na podstawie (9) można powiedzieć, że dla otrzymania całej macierzy A w y s t a r c z y znać rozwinięcie w szereg Fouriera, dla s nieparzystego, tyl
ko tych funkcji sal(s,x) i cal(s,x), których okres w y no si 1, tzn. tych, które nie są "ściśnięciami" funkcji wcześniejszych. A ponieważ funkcje cal(s,x) można o trzymać z funkcji sal(s,x) 1 przesuwając ją o 1/4, zatem
sal(s,x + } ) a § b 3n sin(25Tnx + f n) n»1
oo
= 2 (“ 1 ^ b sn 003 Z X ax n=»1
(10)
Obliczanie ws pó ł cz yn ni k ów szeregu Fouriera 37
gdzie:
s = 1, 3, 5, 7, . • • •
n = 1, 3, 5» 7, • • • •
Korzystając z w ła sn o ś c i funkcji Walsha, że ’
s al(s,x + i) a (-1) P+1 cal(s,x)
(
1 1)
gdzie:
k p - najmniej znaczące zero liczby binarnej k = 2 s - 1 , można napisać:
00 k
2 b sn 008 = P+1°al(s,x),
n=1 ponieważ
( 1 2 )
cal(s,x) a 'V a cos 25lnx, n=1
(13)
więc
n = l k a = (-1) * (-1) p + 1 b
sn ' J usn (14)
Liczba k przyjmuje war to śc i 1, 5, 9, 13, 17,..., co w zapisie binarnym wygl ąd a następująco:
0 0 0 0 1 1
0 0 1 0 1 - 5
0 1- 0 0 1 - 9
0 1 1 0 1 - 13
1 0 0
kp + 1 0 1
\
- 17Wi d ać stąd, że k p+1 przyjmuje na p rzemian war to śc i 0 1 1 . k +1
Zatem czyn n ik (-1) p w w y r a ż en iu (14) można zastąpić czynnikiem k-2
(-1)*^” k a 2, 6, 10, ...
38 E. H ry nkiewicz n-1
Ponieważ w mac ie rz y A indeks m = 2n, to czynnik (-1) przybierze postać;
m -2
(-1 m = 2, 6, 10, . . .
W z ó r (14) będzie wię c teraz w y g l ąd a ł następująco;
m-2 k-2
^km = (~1)~:!~ (" 1)""J|""Ak -1 )m-1
(15)We ź my cztery kolejne ro z winięcia w szere g P ouriera czterech funk c ji Walsha (cztery wier sz e m a c ie r zy A) o nu me ra ch k-1, k, k + 1 , k+2 (k = 2, 6, 10,...).
Dwa ostatnie ro z winięcia odpowiadające fu n kc jo m sal(s,x), cal(s,x) o s parzystym są p o wtórzeniami wc ze ś ni ej sz y ch i mo żemy je uzyskać ze wzoró w (9).
Dwa pierwsze są oryginalne, lecz znając jedno z nich można na podstawie (15) otrzymać drugie. W ynika stąd, że dla wy z naczenia m acierzy A w y s t a r czy obliczyć co czw a rt y wiersz, tzn. wiers z e o numerach k = 2, 6, 10, ...
lub k = 1, 5, 9, ... • Pozostałe w i er s ze uzyskujemy zmieniając znak ele
m entów lub ich rozłożenie.
Przy obliczaniu oryginalnych elementów macierzy można korzystać ze
!w z o r ó w (4), ale do o bliczeń masz yn o wy ch w z o r y te nie są wygodne. Inny sposób obliczania podany jest w [4] i [5] , gdzie uwzględniając to, źe funkcje W a l sh a są pr z edziałami stałe, a m in imalna szerokość takiego pr ze działu r ówna jest (ŁI - najm ni ej s za liczba na tu ralna taka, że 2M > k), ppdano zależność;
3 A k,m-1 a 2(-1)g °(-j)a sinc(2 )(“ ) c o s ( — ^ r=0
gdzie;
g r - w a r t o ś ć r-tej pozycji zapisu n u m er u funkcji W al sh a w kodzie Graya a - ilość jedynek w tym zapisie,
j - )/ -1 j sine - sinus całkowy (sine x =«
Jeżeli założyć, że liczone będ ą wiersze o numerach k = 2, 6, 10,...
i niezerowe el ementy w tych w ie rs z a c h o n umerach m = 2, 6, 10,..., to A^. m _ 1 = 0. Ze w z g l ę d u n a to, że dla takich k jak wyżej ostatni bit
(g^) w kodzie Graya ró wn y jest zawsze 1, pierwszy czyn ni k we wzorze (16) będzie równy;
m-2
Obliczanie współczy nn ik ó w szeregu F o u r i e r a . . 39
Uwzględniając powyższe uwagi można w z ó r (16) uprościć do postaci:
2a+m+2 m M-1
“ 2(-1)“ T ~ B i n c ( 2 ® :T) n c o s C - S ^ - g r £ ) (17)
r=1 i
W praktycznych obliczeniach ws pó łc z yn ni kó w Fouriera na podstawie da
nych współc zy n ni kó w Wals h a bierzemy pod uwagę skończona ich liczbę. Wpro
w ad za to siła rzeczy bład w obliczeniach. Błąd ten nie istnieje, jeżeli funkcja posiada skończone wi d mo Walsha, co wy nika z samej metody.
Jeżeli funkcja posiada skończone widmo Fouriera, a liczba w sp ół cz y nn i
ków w tym widmie w y no si B, to zakładajac, że mamy dane także B w s p ó ł c z y n ników Walsha, można uzyskać dokładne ws pó łc zynniki F ouriera z zależności
(3).
- 2 .
an " V ino
- 2
b = b_sinc - 8 dla n < B (18)
u ii 2ia
1 - “ 2 1
b =. r b sine 4 dla n = B
n 2 n 2
gdzie:
an , bn - wa r to śc i w s pó łc zy n ni kó w F ouriera obliczone przy uwzglę dn i e
n iu skończonej liczby wsp ó łc zy nn i kó w Walsha.
W praktyce dość trudno przewidzieć z góry ilość niezerowych w s p ó ł c zy n
n ików Fouriera. Ti takich przypadkach szacujemy m aksymalna wartość B (obliczenia prowadzi się dla najmniejszego M, takiego że 2M > B).
3. Schemat blokowy programu
Najprościej program p rzeliczający współcz y nn ik i W a lsha na w s pó łc zy n ni ki Fouriera zrealizować w ten sposób, że w e k to r współcz y nn ik ów Walsha mnożony jest przez 3tałą, z góry obliczona, macierz przejścia. Zapamięta
nie takiej m acierzy w y maga jednak dużej pojemności pamięci. Ponieważ program miał być n apisany na kalkul at or HP-9820, którego pamięć programu i danych wy nosi 418 rejestrów, macierz przejścia będzie liczona w trakcie realizacji programu i jednocześnie mnożona przez w e k t o r danych. 17 danej chwili będzie liczony i zapamiętany tylko jeden element m acierzy i w celu
40 E. Hrynkiewicz
Start Z Ł U
Wprowadzanie danych i ustawianie warunków
początkowych
Obliczanie kodu GrayTa dla kolejnych funkcji Walsha
Obliczanie elementów macierzy przejścia dla jednego z jej wierszy
Mnożenie elementów macierzy przez dany współczynnik,sumowanie i powtarzanie tych operacji,gdy element powtarza się w macierzy
Obliczanie elementów korekcy
jnych i wymnożenie ich przez wcześniej obliczone ws pó ł czynniki Fouriera
/ Wyprowadzanie danych f
Stop
Rys. 2. Ogólny schemat blokowy programu Fig. 2. Błock diagram of the program
Obliczanie współcz y nn ik ów szeregu Fouriera. 41
uniknięcia liczenia wielokrotnie elementów o tej samej war+osci, będzie on powtarzany odpowiednia ilość razy [9] .
M ając obliczone na podstawie w z o r u (17) obliczamy A k-1 n _ 1 zgo d nie z (15)* Ze wzoró w (9) wynika, że elementy te powtarzają się w dalszej części macierzy jako A , , ^ ; A ^ ^ , A 4 k ( 4 m ; ^ 4k-i , 4m-1 * —
...(k = m = 2,6,10,14, •••). Wszystkie te elementy mnożymy przez odpo
wiednie współcz yn n ik i Wa lsha zgodnie z numerem wier s za k i sumujemy zgodnie z nume re m kolumny m.
Schemat blokowy programu pokazany jest na rys. 2.
4« Podsumowanie
Przy obliczaniu współc zy n ni kó w Fouriera na podstawie danych w spółczyn- lików Walsha możemy popełnić błąd wynikaj ąc y z uwzględnienia skończonej ilości współc zy nn ik ó w Walsha. Próba szacowania tego błędu podana jest w [6] . Błąd ten nie występuje, gdy funkcja posiada skończone w idmo Walsha lub Fouriera.
Dla funkcji ciągłych o ni e sk oń cz o ny m widmie Walsha i Fouriera, aby w y l i czyć kilka współczy n ni kó w Fouriera, trzeba użyć (obliczyć) dużą liczbę w sp ółczynników Walsha. W takim przypadku korzystniej będzie stosować be z pośrednio szybką transformatę Fouriera (FFT).
Natomiast dla funkcji dyskretnych, szczególnie gdy ich skok zsynchro
nizowany jest ze skokiem funkcji Walsha, liczba współcz yn n ik ów Walsha, które trzeba uwzględnić, by odwzorować funkcje f(t) z zadanym błędem średniokwadratowym, jest mniejsza niż liczba współcz y nn ik ów Fouriera [i]
i w tedy przedstawiona tutaj metoda obliczania współc zy nn ik ó w Fouriera staje się przydatna.
LITERATURA
[1] B lachman N . M . : Sinusoids versus Walsh Functions, Proc. IEEE, 1974 nr 3, pp. 346-354.
[2] Sobkowski J . : Częstotliwościowa analiza sygnałów, 1975»
[3] Kitai R . : Walsh - to - F o u ri er Spectral Conversion for Periodic Waves, IEEE Trans. EMC, 1975, pp. 266-269.
[4] Simens K . H . , Kitai R . : A Non - recursive Equation for the Four ie r Transform of the Walsh Function, IEEE Trans. EMC - 15, 1973.
[5] Blachman N.M.: Spectral analysis wi th sinusoids and Walsh functions, IEEE Trans. AES - 7, 1971, p p . '900-905.
[6] Bandurski W . : Wyznaczanie transmitacji widmowej za pomocą ortonormal- nych funkcji Walsha, PAK 1975/1, ss. 16-18.
42 E. Hrynkiewicz
[7] Wajs K . : Funkcje Wa lsba i ich zastosowanie w elektrotechnice, Przegląd Elektrotechniczny, 1976, n r 11, ss. 413-418.
fs] Żakowski W., Kołodziej W. s Matematyka, WNT, W arszawa 1975, część II.
[9] Balikowski W. j Praca magisterska, 1982.
Recenzent: Doc. d r inż. Ferdynand W A G N E R
Wpłynęło do Redakcji 16.05*85 r.
BHHHCJIEHHE K0SMHI14EHÏ0B P H M $yPbE riPH E H M yOJUIIA
P e 3 io u e
B e r a r t e a s h M e iO A p a c i e r a K O o ÿ î H n a e H To b p / y t a i y p t e n p i i A a H H U x K o a f j x j z - W t e K T a x p - n n a y o j i m a . M e i o f t 3 a A y u a H t s k h m o 5 p a 3 0 M , m o f i u m o x h o 6 u n o n p o B o A H T t p a c v d T H c H c n o A t 3 o B a H a e u U H K p o K o u n t J o r e p o B h a h s j i e K T p o H H t n c K a j x t K y j w i o p o B (b qacTuocTH Ha naJitKyjiHTope HP 9820).
C AL KULATION OF T H E FOUR IE R COEFFICIENTS F R O M G I VE N W A I S H COEFFICIENTS
S u m m a r y
The paper describes the method of F o u r ie r series coefficients calculation from given V/alsb series coefficients.
This method is prepared to he perfomed on personal computers or desktop calculators.
This vías obtained on the ground of calculating only the original elements of transition m atrix (that reduces the n u mb er of operations).
Other elements of this matric are found by changing the indices or signs (if needed) of these original elements.