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

[DSP, C++] Splot sygnałów sin(n-PI/n) i sin(3n-PI/n) w C++ - czy poprawnie?

lolcio 06 Lut 2012 18:01 3895 10
REKLAMA
  • #1 10504874
    lolcio
    Poziom 16  
    Witam,
    Chciałbym zapytać szanownych kolegów czy dobrze wykonałem splot dwóch sygnałów.
    Jeden reprezentowany jest przez funkcje sin(n - PI/n) a drugi przez: sin( 3n - PI/n ).
    Po policzeniu 100 próbek 1 sygnału i narysowaniu go w programie do wykresów dostaje taki wykres:
    [DSP, C++] Splot sygnałów sin(n-PI/n) i sin(3n-PI/n) w C++ - czy poprawnie?

    Natomiast drugi sygnał wygląda tak:
    [DSP, C++] Splot sygnałów sin(n-PI/n) i sin(3n-PI/n) w C++ - czy poprawnie?

    Po wykonaniu splotu dostaje taki sygnał:
    [DSP, C++] Splot sygnałów sin(n-PI/n) i sin(3n-PI/n) w C++ - czy poprawnie?

    Czy waszym zdaniem dobrze wykonałem splot?
    Wszystko obliczam w prostym programie c++ który jest w załączniku.

    Ps. Bardzo bym prosił o wskazówki w jaki sposób wykonać filtr cyfrowy tak aby mój splot po przejściu przez ten filtr dał sygnał 1. Wiem że ma być to filtr Czybyszewa, ale nie wiem jak obliczyć współczynniki tego filtru i potem jak obliczyć poszczególne próbki...
  • REKLAMA
  • Pomocny post
    #2 10505404
    Elektronik9
    Poziom 30  
    Coś za krótki Ci wyszedł ten splot, albo dałeś tylko fragment wykresu.
  • REKLAMA
  • #3 10505419
    lolcio
    Poziom 16  
    Splot robię dla 100 próbek z zakresu od 0.1 do 10, co 0.1. Tak więc sygnały są krótkie, a wykres całość przedstawia...
  • #4 10505493
    Elektronik9
    Poziom 30  
    Splot dwóch sygnałów ma długość większą niż te sygnały. Więc zwiększ zakres końcowego wykresu co najmniej do 20.
  • #5 10505554
    lolcio
    Poziom 16  
    [DSP, C++] Splot sygnałów sin(n-PI/n) i sin(3n-PI/n) w C++ - czy poprawnie?

    Splot dla 200 próbek....
  • Pomocny post
    #6 10505592
    Elektronik9
    Poziom 30  
    Wygląda raczej ok.

    lolcio napisał:
    Ps. Bardzo bym prosił o wskazówki w jaki sposób wykonać filtr cyfrowy tak aby mój splot po przejściu przez ten filtr dał sygnał 1.

    Splot w dziedzinie czasu to iloczyn w dziedzinie pulsacji. Czyli mnożysz widma i masz splot. Z wymnożenia widm sygnałów składowych otrzymujesz widmo splotu, teraz wystarczy zrobić filtr o charakterystyce dokładnie odwrotnej (dopełniającej) i masz na wyjściu filtru zawsze 1. Nie będzie to filtr stały, będzie musiał być adaptacyjny.
  • REKLAMA
  • #7 10505751
    lolcio
    Poziom 16  
    Nie znam się za bardzo na przetwarzaniu sygnałów... i szczerze mówiąc nie mam pojęcia jak policzyć ten filtr :)
    Wiem tylko że w matlabie się wylicza jakieś współczynniki i potem mnoży się każda próbkę przez ten współczynnik czy jakoś tak... Może mógłbyś bardziej mi wytłumaczyć jak to zrobić?
  • Pomocny post
    #8 10527848
    jarek_lnx
    Poziom 43  
    Napisz dokładnie, co masz a co chcesz uzyskać i w jakim celu. To, że jak piszesz, nie masz pojęcia o przetwarzaniu sygnałów nie znaczy że nie możesz jasno opisać co masz wykonać.

    W kodzie, w komentarzach masz funkcję "sin( n * (PI/n)", a liczysz dla "sin(i - (PI/i) )"?.

    Cytat:
    Splot robię dla 100 próbek z zakresu od 0.1 do 10, co 0.1
    w kodzie jest 1000 próbek?

    Cytat:
    Ps. Bardzo bym prosił o wskazówki w jaki sposób wykonać filtr cyfrowy tak aby mój splot po przejściu przez ten filtr dał sygnał 1. Wiem że ma być to filtr Czybyszewa, ale nie wiem jak obliczyć współczynniki tego filtru i potem jak obliczyć poszczególne próbki...


    Za dużo się trzeba domyślać, a z tego wynikają błędy.
    Filtracja to właśnie splot, czyli chcesz filtrować dwa razy?
    Na wyjściu ma być sygnał 1, a co jest wejściem też sygnał 1? to potrzebna jest jakaś obróbka?
    Chyba że chcesz zrobić splot (convolution), a później usunąć jego skutki (deconvolution).
    Jak się do tego ma charakterystyka Czybyszewa?, to może być sprzeczne wymaganie, w stosunku do charakterystyki wynikającej z odwracania splotu.
  • #9 10528537
    lolcio
    Poziom 16  
    Mam dwa sygnały,robie ich sploty. A potem przepuszczam ten sygnał powstały z splotu przez filtr cyfrowy ( dolnoprzepustowy ) i otrzymuje jeden z sygnałów wejściowych. Kwintesencją zadania jest zaprojektować filtr tak aby po przejściu splotu przez filtr dostać jeden z sygnałów wejściowych. Ilość próbek jest najmniej istotna. Próbek ma byc tyle żeby było widac na wykresie że filtr działa. Funkcja wejściowa miała być początkowwo sin( n * pi/n ) ale jest to funkcja stała, więc znak mnożenia zamieniłem na dodawanie żeby sygnał był sensowny. Tak samo w przypadku drugiej funkcji wejściowej.

    Mam nadzieje że wszystko wyjaśniłem, i proszę o pomoc...
  • #10 10528576
    Elektronik9
    Poziom 30  
    No czyli robisz filtr dolnoprzepustowy o częstotliwości granicznej większej od sinosoidy, którą chcesz przepuścić. Wyższe częstotliwości (a więc i druga sinusoida) zostaną stłumione.
  • REKLAMA
  • #11 10528922
    lolcio
    Poziom 16  
    Zgadza się :) ale nie wiem jak zrobić ten filtr...wiem tylko że w matlabie się go wylicza..
REKLAMA