Filtracja dolnoprzepustowa - pomoc w zrozumieniu

0

Witam mam do zrobienia program na zajęcia i o ile z napisanie go nie miał bym pewnie problemu to w ogóle nie kojarzę jak ma to działać. Dlatego proszę was o jakieś wyjaśnienie. Poniżej podaje treść polecenia:

"Filtracja dolnoprzepustowa( uśredniająca ) sygnału jednowymiarowego. Próbki sygnału pobierane są ze standardowego wejścia a wynik filtracji wysyłany jest na standardowe wyjście. ( wywołanie program < plik_wejscia >plik_wyjscia ) Długość filtru maksymalnie 9 podawana jako parametr wywołania programu."

Z tym std wejściem i wyjściem to rozumiem że po prostu program wczyta dane scanf'em z pliku wejścia a wypisze printfem nie na konsole tylko do pliku wyjścia więc to nie ma problemu. Tylko jakiego typu dane ma zawierać plik wejścia i jak ma działać ta filtracja? Ma ktoś jakiś pomysł?

Pozdrawiam

0

a filtr ma być FIR (SOI) czy IIR(NOI)?

0

jak ma działać filtracja, to musiałeś mieć na zajęciach.
a co do wejścia — w zadaniu nie sprecyzowano; może być to zarówno format binarny (o dowolnej „bitowości”) jak i różne warianty tekstowe (liczby po przecinku, xml jakiś itp.)

0

ot filterek, nie bez wad

int main(int argc, char * argv[]) {
        float b[10], s;
        int n, i;
        n= atoi(argv[1]);
        s= 0.0;
        for(i=0; i<n-1; i++){
                scanf("%f", &b[i]); 
                s += b[i];
        }
        while(EOF != scanf("%f", &b[i])) {
                s += b[i];
                printf("%f\n", s/n);
                i= (i + 1)%n;
                s -= b[i];
        }
        return 0;
} 
0

Xitami dzięki za przykładowy kod, a jeszcze pytanie co ta filtracja ma niby zrobić gdy w pliku wejściowym podam jej np liczby 1 2 3 4 5 6, a parametr załóżmy 4 ( jak byś mógł to tak słowami wytłumaczyć ).
to polecenie to wszystkie informacje które posiadam na temat tego zadania, ale wydaje mi się że to coś w stylu tego programu z góry.

0

A może być w jednej linii?

Prosty filtr FIR w Scali - uśrednia 5 ostatnich próbek wejściowych:

(Iterator continually readDouble) sliding 5 map (x => x.sum / x.size) foreach println
0

rozumiem że to ile próbek uśrednia zależy od podanego parametru tak?

1 użytkowników online, w tym zalogowanych: 0, gości: 1