Blog (16)
Komentarze (1.1k)
Recenzje (0)
@revcoreyLabview: Karta dźwiękowa jako źródło danych

Labview: Karta dźwiękowa jako źródło danych

22.01.2012 22:45

Labview jest środowiskiem służącym do wizualizacji danych pomiarowych i ich przetwarzania. Tworzenie wizualizacji składa się z dwóch warstw. Z pierwszej na której widoczne są różne przyciski, wykresy itd. Drugiej, która opiera się na graficznym języku programowania „G”.

Źródłem danych dla programu mogą być różne media np.:

  • Karty pomiarowe(Daq,dźwiękowe)
  • Sygnały generowane przez sam program
  • Pliki z próbkami
  • Program multisim

We wpisie wykorzystamy kartę dźwiękową (konkretniej mikrofon) jako źródło danych. W tym przypadku wejściem będzie dźwięk jednak nie istnieje nic na przeszkodzie aby zbudować własny 'oscyloskop' do pomiarów sygnałów elektrycznych jednak tu należy uważać aby nie zniszczyć karty dźwiękowej.

Testową wersję Labview można pobrać z stron National Instrument, wystarczy się zarejestrować i możemy ściągnąć 30 dniową wersję, dostępne są też dodatkowe moduły do ściągnięcia.

Pobieranie danych

Aby maksymalnie uprościć program zdecydowałem się na pobieranie danych z karty tylko przez pewien czas, na końcu powrócimy do tematy pobierania danych w czasie rzeczywistym(tylko wspomnę gdzie można znaleźć).

Tworzymy nowy projekt, powinien nam pokazać się tak zwany front panel (opis na belce okna) tutaj umieścimy wykresy klikamy prawym przyciskiem rozwijamy listę i wybieramy następujące elementy:

  • WaveGraph Form, przerzucamy dwa
  • Przyciski: Stop Button i Push Button

Klikamy prawym przyciskiem na Push Button wybieramy Mechanical Action i wybieramy Switch Until Relased, oznacza to że przycisk będzie wciśnięty dopóki przytrzymamy go myszką.

Klikamy prawym przyciskiem na Push Button wybieramy Mechanical Action i wybieramy Switch Until Relased, oznacza to że przycisk będzie wciśnięty dopóki przytrzymamy go myszką.

Front Panel
Front Panel

Aby wejść do bloku programowania z menu Window wybieramy Show Block Diagram. Pojawi się okno w którym będą znajdowały się reprezentacje graficznych elementów z poprzedniego bloku, elementy te można łączyć ze sobą ale teraz czas na programowanie. Przed programowanie warto uruchomić Help programu ponieważ wystarczy wpisać tam nazwę bloku, i w w jego opisie znajdzie się przycisk który umożliwi dodanie tego bloku, skróci to znacznie czas szukania. Klikamy prawym przyciskiem na pustym miejscu i w menu odszukujemy Aquire Sound po wybraniu otworzy się nam okno z opcjami wszystko powinno tam już być w porządku ale w  opcji Duration(s) możemy ustawić czas próbkowania aczkolwiek rzeczywisty czas pobierania danych będzie krótszy. Jak można zauważyć bloczek bo lewej stronie ma małe kolorowe trójkąciki, są to wejścia na dane(po prawej mamy wyjścia), po prawdzie podczas dodawania ukazuje się okno z parametrami jednak w czasie działania programu mogłaby zajść potrzeba zmiany parametrów i po to właśnie są wejścia. Kolejny krok to odnalezienie bloku Spectral Measurments (dokonamy analizy widmowej sygnału) podobnie jak poprzednio pokaże się okno konfiguracyjne, żadne zmiany nie są potrzebne. Teraz czas na połączenie ze sobą elementów. Jest to trywialne ,z wyjścia Data bloku Aquire Sound łapiemy końcówkę która się podświetli jeśli się na nią najedzie ,po czym przeciągamy ją do jednego z bloków WaveForm, kolejno z wejścia Signal bloku Spectral Measurments ciągniemy linię która ma się połączyć z uprzednio stworzoną linią. Teraz z wyjścia Spectral Measurments FFT (RMS) ciągniemy linię do drugiego bloku WaveForm(kompletny rysunek wraz z pętlami znajduje się poniżej). Gdybyśmy teraz uruchomili program pobierał by on przez czas t próbki dźwięku i zakończył się ale nam zależy aby program działał ciągle i pobierał dane po przyciśnięciu przycisku.

Teraz odszukujemy strukturę While Loop(zakładka Programming). Po wybraniu jej, za pomocą myszki zaznaczamy wszystkie elementy, wtedy automatycznie znajdą się wewnątrz. W prawym dolnym rogu ramki znajduje się czerwone kółko. Teraz z przycisku stop ciągniemy linię do niego, oznacza to że przyciśnięcie tego przycisku zakończy pętle a tym samym program.

Block Diagram
Block Diagram

Teraz czas na kolejną strukturę ponieważ jak wspomniałem wcześniej chcemy pobierać dane tylko po przyciśnięciu przycisku. W tym celu odszukujemy Case Structure teraz wewnątrz While Loop zaznaczamy tylko elementy takie jak: Spectral Measurments, oba WaveForm, Aquire Sound. Teraz PushButton który wrzuciliśmy wcześniej powinien być poza strukturą Case, z tego przycisku wyprowadzamy linię do wejścia struktury Case tzn. kiedy przycisk ma wartość true rozpoczyna się zbieranie danych.jJak można zauważyć na ramce struktury znajduje się napis TRUE oznacza to że jeśli sygnał ma wartość true to wykonuje się kod wewnątrz, po kliknięciu można zmienić to na opcję FALSE co jak nazwa mówi wykonuje się kiedy warunek jest niespełniony . Uruchamiamy program(crtl+r). I cieszymy się wynikami ,a konkretniej amplitudą sygnału w czasie i jej widem(tzn. Reprezentacja w częstotliwości sygnału wej.).

W ten oto prosty sposób wykorzystujemy kartę dźwiękową. Wejściowy sygnał możemy przekształcać, filtrować itd. I uwaga wyprowadzić do na zewnątrz! Ale może o tym kiedy indziej. Dodam że matlab czy scilab także pozwala na takie manewry :).

Dobrze a teraz pytanie jak robić to cały czas? Cóż tu trzeba zastosować nieco inne bloki. Ale uwaga taki przykład znajduje się w przykładach dostarczonych z programem. Uruchamiamy wyszukiwarkę przykładów po czym znajdujemy Continuius Sound Input.vi , i przystępujemy do analizy. Program jest trywialny ale w paru słowach wygląda to tak, za pomocą bloku Sound Input Configuration uzyskujemy dostęp do karty(blok ten zbiera dane potrzebne z innych bloków!) po czym w pętli zbieramy dane za pomocą Sound Input Read i wyprowadzamy je do WaveForm. Prawda że proste? :)

Podsumowanie

Mam nadzieję że zachęciłem was do zapoznania się z Labview, środowiskiem które powinien znać każdy inżynier elektryk/elektronik/mechanik i nie tylko.

Wybrane dla Ciebie
Komentarze (7)