Zadanie
Wyobraźmy sobie że mamy zestaw danych (pochodzących z jakichś pomarów). Są one lekko zaszumione. Naszym zadaniem jest zastosowane metody ruchomej średniej aby je wygładzić.
Na potrzby tego zadania trzeba będzie:
na podstawie zadanej liczby
N
(długość seri danych)wygenerować
N
wartości zmennoprzecinkowycha następnie „wygładzić dane" stosując metodę ruchomej średniej o
m
składnikach.
Trzeba też zadać w odpowiedni sposób wartość m
.
Następnie program dokonuje odpowiednich przeliczeń i wyprowadza na ekran dwie kolumny liczb: dane oryginalne i dane przetworzone.
Ruchoma średnia
Niech $w_i,\quad i=0, 1,\ldots, N-1$1. Ruchoma średnia to metoda wygładzania danych polegająca na wyliczeniu na podstawie danych z tablicy $w$ nowej tablicy $t$ w sposób następujący:
$$t_i = \frac{1}{m}\sum_{j=-(m-1)/2}^{j=(m-1)/2} w_{i+j}$$
Wartość $m$ przyjmowana jest jako liczba nieparzysta (3, 5, 7,…)2.
Zdecydować trzeba, co robimy z elementami tablicy, dla których nie można3 wyliczyć pełnej średniej. Można wybrać jeden z dwu wariantów:
Przepisujemy je bez zmian;
Wyliczamy taką średnią jaką się da wyliczyć.
To znaczy gdy $m = 5$, $j$ zmienia się w zakresie od -2 do 2 (włącznie), zatem niedostępne są elementy $w_{-1}$ i $w_{-2}$ potrzebne do wyliczenia $t_0$. Czyli albo:
przepisujemy bez zmian $t_0\leftarrow w_0$ i $t_1\leftarrow w_1$, kolejne elementy liczymy zgodnie z wzorem. Podobnie na drugim końcu tablicy.
Wyliczamy to „co się da":
$$t_0=\frac{1}{3} (w_0 + w_1 + w_2)$$
$$t_1=\frac{1}{4} (w_0 + w_1 + w_2 +w_3)$$
(a $t_2$ już „normalnie": $t_2=\frac{1}{5}(w_0+w_1+w_2+w_3+w_4)$). I podobnie na końcu tablicy.