logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Zastosowania filtrów sinc

asdf_111 11 Cze 2007 22:48 3362 4
REKLAMA
  • #1 3975479
    asdf_111
    Poziom 1  
    Witam.
    Potrzebuje opisać filtr sinc oraz napisać na temat jego zastosowań. Wdzięczny byłbym za każdą pomoc.
    pozdrawiam.
  • REKLAMA
  • REKLAMA
  • #3 3978681
    shg
    Poziom 35  
    Co do zastosowań to przede wszystkim "idealna" interpolacja. Konkretniej to interpolacja wykonana przy użyciu funkcji sinc() jest najbliższa oryginalnemu sygnałowi o ograniczonym pasmie.
    Niektóre programy do obróbki dźwięku (CoolEdit Pro na przykład) używają tej interpolacji do wyświetlania przebiegu pomiędzy próbkami (przy dużym powiększeniu).
    Powiedziałbym też, że można wykorzystać filtrację sinc() do zmiany częstotliwości próbkowania dźwięku (resampling), bo można, ale... Znacznie wydajniejsze w tej materii są filtry FIR (które nota bene mozna syntezować właśnie przy pomocy funkcji sinc(), co zresztą w linku powyżej opisano), które można przyspieszyć dzięki zastosowaniu FFT, przez co lepiej jest wtedy zastosować FIR nawet z niewielkim nadmiarem, niż liczyć sinc(), bo i tak będzie szybciej. I tu właśnie wychodzi paskudna włąściwość tych filtrów - są powolne w wypadku bezpośredniej implementacji.
    Kolejny obszar, gdzie filtracji sinc() się nie stosuje to grafika, znowu chodzi o interpolację, a konkretniej to zmianę rozmiarów obrazu. Uwagi jak powyżej, pozatym sinc() by strasznie rozmywał krawędzie, dlatego do powiększania grafiki są inne algorytmy z 'inteligentną' detekcją krawędzi.
    Oczywiście zarówno grafika jak i dźwięk są obszarami, gdzie można by stosować (i stosuje się) filtry sinc() w celach analitycznych.
  • REKLAMA
  • #4 3982650
    Xitami
    Poziom 29  
    Po przeczytaniu postu Shg'a można odnieść wrażenie, że filtr SINC nie jest filtrem rodzaju FIR.
    Ja to rozumiem tak: filtr typu SINC jest sposobem projektowania filtru typu FIR (znalezienia współczynników).
    Jego zaletą jest to, że od matematycznej strony jest dobrze określony, łatwy do zrozumienia i wykonania.
    Itnieją doskonalsze metody projektowania, doskonalsze to znaczy takie, które dają np. lepsze tłumienie w paśmie zaporowym, albo większe nachylenie w paśmie przejściowym przy mniejszej liczbie współczynników filtru (długości filtru), czyli prowadzące do szybciej działającego filtru.
    Myślę, że tak właśnie należy rozumieć "powolność" filtru SINC.
  • #5 3988840
    shg
    Poziom 35  
    Heh. Fakt, trochę zamotałem. Oczywiście że każdy w praktyce zrealizowany filtr sinc() jest filtrem FIR, tylko tak pod innym kątem na niego "spojrzałem" i dlatego wyszło tak jak wyszło.
    Sama zaś funkcja sinc(), będąca jądrem przekształcenia przyjmuje argumenty od - do + nieskończoności, przez co jądro jest w zasadzie nieskończone, co z kolei czyni ten filtr filtrem IIR...

    Chciałbym nawiązać jeszcze do interpolacji, bo to właśnie miałem cały czas na myśli. Szczególnie zaś przypadek wyświetlania w programach do obróbki dźwięku, bo myślę że tu akrat filtry sinc() są znakomitym rozwiązaniem. Filtry sinc() mają to do siebie, że ich zaprojektowanie nie wymaga praktycznie żadnego "wysiłku", wystarczy znać tylko stosunek jednej częstotliwości próbkowania do drugiej, czyli w tym konkretnym przypadku będzie to odległość między próbkami na ekranie wyrażona w pikselach.

    Co do powolności jeszcze, to w zasadzie wynika ona z "doskonałości" tego filtru, a często jest tak, że można iść na pewne ustępstwa, na przykład w kwestii nachylenia charakterystyki, czy tętnień w pasmie zaporowym i przepustowym.
    Tak dla przykładu. Jeżeli będziemy przetwarzać próbki sygnału o jakiejś danej rozdzielczości, to w idealnym przypadku jądro powinno być tak długie, aby po tym czasie jego odpowiedź impulsowa stała się mniejsza od poziomu kwantyzacji.
REKLAMA