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

Ident. na podstawie odpowiedzi impulsowej

Keborks 21 Gru 2010 22:52 2450 6
REKLAMA
  • #1 8898337
    Keborks
    Poziom 10  
    Witam!

    Mam takie pytanie... Czy jestem w stanie zaimplementować w Matlabie funkcję, która szukała by transmitancji badanego obiektu, gdy mam daną odpowiedź impulsową?
  • REKLAMA
  • #2 8907885
    Elektronik9
    Poziom 30  
    Jasne, transmitancja to przecież Transformata Fouriera z odpowiedzi impulsowej. Napisz sobie funkcję w M-pliku na której wejście wchodzi odpowiedź impulsowa, a na wyjściu masz transformatę Fouriera (funkcja fft) z wejścia czyli właśnie transmitancję.
  • REKLAMA
  • #3 8911267
    Keborks
    Poziom 10  
    Ok. A gdy mam daną odpowiedź impulsową jako ciąg próbek, a nie jako wzór?
    Gdybym miał podany wzór to byłbym w stanie to napisać analitycznie, lecz niestety w dziedzinie próbkowanej mam z tym mały problem.

    Czyli co dokładnie miałbym zrobić, bo niedokładnie rozumiem Twoją wypowiedź...?
  • REKLAMA
  • #4 8911712
    Elektronik9
    Poziom 30  
    No właśnie funkcja fft liczy Dyskretną Transformatę Fouriera (szybki algorytm jej liczenia czyli FFT) z próbek. Wynikiem jest także ciąg próbek transformaty.
    To są obliczenia numeryczne czyli na liczbach.
    Przykład użycia:
    >> h=[1 2 3]; %próbki odp. impulsowej
    >> H=fft(h)
    
    H =
    
       6.0000            -1.5000 + 0.8660i  -1.5000 - 0.8660i %próbki transmitancji
    
    >> 



    Jeżeli chciałbyś przeprowadzać obliczenia na wzorach, tzn. masz wzór na odpowiedź impulsową i chcesz wzór na transmitancję, to musisz skorzystać z obliczeń symbolicznych. Matlab je obsługuje, ale Matlab jest nastawiony na numeryczne. Do tego celu lepiej użyj jakiegoś programu do obliczeń symbolicznych, np. Mathcada.

    Jeżeli chcesz liczyć symbolicznie w Matlabie, to najpierw musisz sobie zadeklarować zmienne (polecenie syms, np. syms x), a potem poleceniem fourier(.) wyznaczasz wzór na Transformatę Fouriera tego co jest w nawiasie.
    Przykład:
    >> syms x
    >> h=heaviside(x)-heaviside(-x);      %sgn(x)
    >> fourier(h)
     
    ans =
     
    -2*i/w                                %transformata sgn(x)
     

    Jak co to pisz w Matlabie help i nazwa polecenia.

    Pozdrawiam.
  • REKLAMA
  • #5 8915167
    Keborks
    Poziom 10  
    Dzięki. Powiem Ci szczerze, że już tak próbowałem robić.
    Tylko zapewne nie wyraziłem się odpowiednio jasno. Znajdując fft z odpowiedzi impulsowej mamy próbki (?) transmitancji? Co dokładnie otrzymaliśmy? Bo nie rozumiem co masz na myśli pisząc próbki transmitancji.

    Najlepiej (na potrzeby identyfikacji) jakbym znalazł wzór transmitancji obiektu, ale właśnie nie wiem czy można to zrobić.
  • Pomocny post
    #6 8915687
    Elektronik9
    Poziom 30  
    Tak. Próbki transmitancji odpowiadające próbkom odpowiedzi impulsowej.
    Teraz jeżeli weźmiemy moduł z transmitancji to mamy ch-kę amplitudową, a jak argument - to fazową.

    Próbki transmitancji to jakby spróbkowaną ciągła funkcja transmitancji gdzie próbki brane są w miejscu gdzie jest dana próbka odp. impulsowej.

    Możesz oczywiście najpierw przeprowadzić obliczenia symboliczne na wzorach a potem zweryfikować numerycznie dla kilku próbek. Tylko jeżeli dysponujesz wyłącznie próbkami odp. impulsowej to może to być niewykonalne...
  • #7 8916723
    Keborks
    Poziom 10  
    Elektronik9 napisał:
    Tylko jeżeli dysponujesz wyłącznie próbkami odp. impulsowej to może to być niewykonalne...


    Dzięki i oto mi chodziło :) Bo miałem wątpliwości, czy będzie taka możliwość, dlatego wolałem zapytać. Osobiście próbowałem nawet przypisać najlepszą funkcję (z najmniejszym błędem średnio-kwadratowym), bo tworzyła gasnący sinus, a obwiednią zapewne jakaś funkcja wykładnicza. Ale skoro mówisz, że raczej nie da rady to w takim razie nie ma sensu dalej szukać odpowiedzi. Jeszcze raz dzięki.


    Temat do zamknięcia.
REKLAMA