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

Krótkoczasowa transformata Fouriera sygnałów DTMF

Astermag 15 Lis 2006 10:36 3453 5
REKLAMA
  • #1 3226512
    Astermag
    Poziom 2  
    Witam
    Ostatnio zacząłem się troszkę bawić elektroniką ale mam następujący problem.
    Jak dokonać krótkoczasowej transformaty Fouriera tak żeby usyskać spektrogram z osiami wyskalowanymi w Hz i ms. Chciabym na jego podstawie odczytać zakodowany numer telefonu oraz określić wprowadzony rodzaj zakłóceń (załączam do tego plik z sygnałem.). Wiem ze mozna coś takiego zrobić w MatLabie ale niestety nie znam na tyle dobrze tego programu.
    Jeśli ktoś mógł by mi pomóc będe wdzięczny.
    Pozdrawiam
    Załączniki:
  • REKLAMA
  • #2 3236668
    Xitami
    Poziom 29  
    Co oznaczają "dziury" w sygnale?
    A jaka była częstotliwość próbkowania?
  • REKLAMA
  • #3 3238177
    Astermag
    Poziom 2  
    Częstotliwość próbkowania powinna byc 48000Hz.
    A dziury to chyba są przerwy pomiędzy poszczególnymi tonami.
  • REKLAMA
  • #4 3238996
    koodłaty
    Poziom 14  
    w matlabie można utworzyć wektor z danymi 'a'. Spektogram można wyliczyć np. za pomocą:
    [b,f,t]=specgram(a,128,48000);
    (polecenie help specgram pozwoli podejrzeć opis parametrów funkcji).
    Aby narysować wykres spectogramu można skorzystać z:
    imagesc(20*log10(abs(b)))
    Wektory 'f' i 't' wyznaczone funkcją specgram zawierają osie czasu i częstotliości.
  • REKLAMA
  • #5 3246992
    Astermag
    Poziom 2  
    Witam

    Udało mi się zrobić wykres.
    Oto jego kod:

    x = load ('C:\Documents and Settings\Administrator\Pulpit\work\3.txt');
    dane=x; %Wczytanie pliku z danymi

    fs=48000; %Częstotliwość próbkowania
    N=2048; %Wielkość okna czasowego

    %p=2400; Przesunięcie okna czasowego
    %F=((1:N)'/N)*fs;Wyznaczanie skali częstotliwości


    specgram (dane,N,fs); %Obliczanie któtkoczasowej transformaty Fouriera i wyświetlaniespektrogramu

    %Ustalanie wyglądu spektrogramu
    set(gca,'Layer','top');
    grid('on');
    set(gca,'YTick',[0 697 770 852 941 1209 1336 1477 1633],'FontSize',11);
    set(gca,'XTick',[0:1:1],'FontSize',10);
    title('Spektrogram','FontName','Times','FontSize',15);
    XLabel('Czas [ms]','FontSize',12);
    YLabel('Czestotliwosc [Hz]','FontSize',12);
    ylim([0 2000]);

    Jak mozna wyskalować oś czasu żeby pokazywana była w [ms] a nie w [s]?

    Widać również na nim pewne zakłucenie. Mam jeszcze pytanie czy mógłby mi ktoś powiedzieć jak można się dowiedzieć jaki to jest rodzaj zakłucenia? Wiem tylko że jest ono w całym paśmie i jest stałe.

    Pozdrawiam
  • #6 3268263
    Astermag
    Poziom 2  
    Witam

    Mam dodatkowe pytanie do tego zakłócenia które widać po wygenerowaniu spectrogramu. Tak jak pisałem wcześniej ono jest stałe w całym paśmie. Najprawdopodobniej jest to jakieś zakłócenie sinusoidalne ale nie wiem dokładnie jak go określić. Jeśli mógł by mi ktoś pomóc.

    Pozdrawiam
REKLAMA