1
Analiza i zapis sygnału
Przybliżony czas ćwiczenia
Poniższe ćwiczenie ukończysz w czasie 45 minut.
Wstęp
LabVIEW wyposażony jest w zbiór bloczków wspomagających analizę sygnałów. To ćwiczenie
nauczy cię w jaki sposób możesz wykorzystać LabVIEW do prostej analizy sygnału oraz jak
zapisać uzyskane dane do pliku.
Przegląd ćwiczenia
W poniższym ćwiczeniu, stworzysz wirtualne narzędzie generujące sygnał, filtrującego,
wskazujące przekroczenie przez sygnał zadanego limitu oraz rejestrujące dane.
2
Gotowe ćwiczenie
3
Krok po kroku
1. Modyfikacja szablonu VI na własne potrzeby
Wykonaj poniższe kroki, aby stworzyć VI generujący, analizujący oraz wyświetlający sygnał:
a.
W oknie Getting Started kliknij More…
b.
Z listy Create New, wybierz VI ›› From
Template ›› Tutorial (Getting Started) ››
Generate, Analyze, and Display. Szablon
ten generuje sygnał i analizuje jego
wartość skuteczną (RMS – Root Mean
Square).
c.
Kliknij OK, lub po prostu kliknij
dwukrotnie na wybranej pozycji z listy.
d.
Wciśnij <Ctrl+H>, aby wyświetlić okno pomocy podręcznej.
e.
Przejdź do okna diagramu blokowego wciskając kombinację
<Ctrl+E>.
f.
Kiedy nakierujesz kursor na bloczek Amplitude and Level
Measurements, pomoc podręczna wyświetli przydatne
informacje. Nie zamykaj okna pomocy, będzie ono użyteczne
w dalszej części ćwiczenia.
g.
Usuń wskaźnik RMS, nie będzie on potrzebny w tym
ćwiczeniu. Usuń także połączenia, które zostały
przerwane po usunięciu wskaźnika. Żeby to uczynić,
wciśnij kombinację <Ctrl+B>.
4
h.
W oknie panelu przedniego kliknij prawym przyciskiem myszy w wyświetlacz
graficzny (Waveform Graph) i wybierz Properties, aby zmienić właściwości obiektu.
i.
W zakładce Appearance, zaznacz Visible, a w
polu tekstowym wpisz Unfiltered Signal.
j.
Wciśnij OK, aby zapisać zmiany i zamknąć okno.
k.
Uruchom VI. Sygnał pojawi się na wykresie.
l.
Wciśnij przycisk STOP, aby zatrzymać VI.
2. Tworzenie dodatkowego sygnału
Bloczek Simulate Signal generuje domyślnie sygnał sinusoidalny. Aby zmienić własności
sygnału możesz kliknąć prawym przyciskiem myszy w bloczek i wybrać Properties. Wykonaj
poniższe kroki, aby wygenerować dodatkowy sygnał, dodający szum biały do sygnału
sinusoidalnego.
a.
W oknie diagramu blokowego kliknij w bloczek Simulate Signal.
Wciśnij i przytrzymaj klawisz <Ctrl>. Trzymając <Ctrl> przeciągnij
bloczek Simulate Signal. Bloczek zostanie skopiowany w miejsce,
gdzie został zwolniony przycisk myszy. LabVIEW automatycznie
nazwie nowy bloczek Simulate Signal2.
b.
Kliknij dwukrotnie w nowo powstały bloczek, aby wyświetlić
właściwości bloczku.
c.
Z listy Signal Type wybierz Sine, aby generowany sygnał był
sinusoidą.
d.
Zmień wartość wartość częstotliwości (Frequency) na 60Hz.
e.
Wprowadź wartość amplitudy równą 0.1.
5
f.
Zaznacz Add Noise, aby dodać szum.
g.
Z listy Noise type wybierz Uniform White Noise.
h.
Wprowadź wartość amplitudy szumu równą 0.1 w polu Noise Amplitude.
i.
Wprowadź wartość -1 w polu Seed number.
j.
W sekcji Timing wybierz opcję Run as fast as possible.
k.
W sekcji Signal Name odznacz opcję Use Signal type name.
l.
W polu Signal Name wpisz 60Hz and Noise. Po zmianie tej
nazwy zmieni się również nazwa wyjścia na bloczku.
Zmiana nazwy sygnału ułatwia późniejsze rozpoznanie sygnału łącząc schemat na
diagramie blokowym.
m.
Wciśnij przycisk OK, aby zapisać zmiany.
6
3. Dodawanie dwóch sygnałów
Aby scalić dwa sygnały tworząc z nich jeden, możesz użyć bloczku Formula. W
przeciwieństwie do bloczku Merge Signals, pozwalającego wyświetlić dwa sygnały na jednym
wykresie, bloczek Formula pozwala dodać do siebie dwa sygnały dając w wyniku jeden
sygnał stanowiący ich sumę. Możesz użyć tego bloczka, by dodać szum do sygnału
sinusoidalnego. Wykonaj poniższe kroki, aby tego dokonać:
a.
Kliknij trzykrotnie lewy przycisk myszy na
połączeniu pomiędzy wyjściem Sine i wejściem
Signals. Usuń połączenia wciskając <Delete>.
b.
Kliknij przycisk Search w oknie Functions, aby
wyszukać bloczek Formula.
c.
Umieść bloczek na diagramie pomiędzy bloczkami Simulate
Signal oraz Amplitude and Level Measurements.
Po umieszczeniu bloczka na diagramie, pojawi się okno,
w którym możemy wpisać odpowiednie wyrażenie.
W kolumnie Label zmień etykietę dla X1 na Sine, a dla X2
na 60Hz and Noise. Zauważ, że bloczek automatycznie
wpisze do wyrażenia pierwsze wejście – Sine.
d.
Wciśnij przycisk + a następnie X2, aby dodać do
siebie sygnały Sine i 60Hz and Noise.
e.
Wciśnij przycisk OK, aby zapisać zmiany i zamknąć
okno formuły.
7
f.
Połącz wyjście Sine na bloczku Simulate Signal z wejściem Sine na bloczku Formula.
g.
Połącz wyjście 60Hz and Noise
na bloczku Simulate Signal2 z
wejściem 60Hz and Noise na
bloczku Formula.
h.
Połącz wyjście Result na bloczku
Formula ze wskaźnikiem
Unfiltered Signal oraz z wejściem
Signals bloczku Amplitude and
Level Measurements.
i.
Wyświetl panel przedni wciskając
kombinację <Ctrl+E>.
j.
Uruchom VI. Na wykresie pojawi się
suma sygnałów.
k.
Wciśnij przycisk STOP, aby zatrzymać
działanie VI.
l.
Wybierz File ›› Save As i zapisz plik.
4. Filtrowanie sygnału.
Aby przepuścić sygnał przez filtry, należy użyć bloczku Filter. Wykonaj poniższe kroki, aby
użyć filtra odpowiedzi impulsowej (IIR – Infinite Impulse Response):
a.
Usuń połączenie pomiędzy wyjściem Result na bloczku Formula i wejściem Signals na
bloczku Amplitude and Level Measurements.
b.
Usuń przerwane połączenia.
8
c.
Wyszukaj bloczku Filter i umieść go na
diagramie blokowym pomiędzy
generatorem Simulate Signal2 oraz
bloczkiem Amplitude and Level
Measurements. Pojawi się okno
konfiguracji nowego bloczku.
d.
W sekcji Filter Specifications zmień wartość Cutoff
Frequency na 25Hz.
e.
Wciśnij OK, aby zapisać zmiany.
f.
Przejdź do okna panelu przedniego.
g.
Kliknij w wyświetlacz nazwany
wcześniej Unfiltered Signal.
Trzymając <Ctrl> przeciągnij
niżej wyświetlacz. Spowoduje
to stworzenie dodatkowego
wyświetlacza graficznego.
h.
Umieść stworzony wyświetlacz
poniżej pierwszego.
i.
Kliknij potrójnie w nazwę
Unfiltered Signal 2, aby
zmienić tytuł wyświetlacza.
Nazwij go Filtered Signal.
j.
Na diagramie blokowym połącz wyjście Result na bloczku Formula, z wejściem Signal
na bloczku Filter oraz z wejściem wyświetlacza oznaczonego Unfiltered Signal.
9
k.
Połącz wyjście Filtered Signal na
bloczku Filter z wejściem Signals na
bloczku Amplitude and Level
Measurements oraz do wyświetlacza
oznaczonego Filtered Signal.
l.
Zapisz plik <Ctrl+S>.
5. Zmiana wyglądu wyświetlaczy.
Klikając prawym przyciskiem myszy na wyświetlacz i wybierając Properties, w zakładce
Display Format możemy zmienić sposób wyświetlania osi X i Y. Wykonaj poniższe kroki, aby
zmienić format stworzonych wyświetlaczy:
a.
W oknie panelu przedniego, kliknij
prawym przyciskiem myszy w wyświetlacz
niefiltrowanego sygnału (Unfiltered
Signal). Wybierz z menu Properties.
b.
W zakładce Display Format, wybierz z
rozwijanego menu Time (X-Axis).
c.
Wybierz Default editing mode.
d.
Z listy Type wybierz Automatic formatting.
e.
W polu Digits wpisz 6 i wybierz Significant digits z listy Precision Type.
f.
Zaznacz opcję
Hide trilling
zeros.
10
g.
Z rozwijanego menu wybierz tym razem Amplitude (Y-Axis).
h.
Powtórz kroki od c. do f.
i.
W zakładce Scales wybierz
Amplitude (Y-Axis).
j.
Odznacz pole Autoscale.
k.
Wprowadź wartość -2.5 do pola
Minimum, oraz 2.5 do pola
Maximum.
l.
Wciśnij OK, aby zapisać zmiany.
m.
Powtórz kroki od a. do l. we właściwościach wyświetlacza Filtered Signal.
6. Analiza amplitudy sygnału
Możesz użyć bloczku Amplitude and Level Measurements do analizy charakterystyki
napięciowej sygnału.
a.
Kliknij dwukrotnie w bloczek Amplitude and Level Measurements na diagramie
blokowym.
b.
Odznacz pole RMS.
c.
Zaznacz pole Peak to peak. Peak to
peak pojawi się na liście Results z
wyświetloną aktualnie zmierzoną
wartością.
d.
Wciśnij OK, aby zapisać zmiany. Wyjście z bloczku zmieniło nazwę z RMS na Peak to
peak.
11
7. Szybkość działania VI
Aby spowolnić wyświetlanie sygnału na wykresie, możesz dodać bloczek Time Delay.
Wykonaj poniższe kroki, aby umożliwić kontrolę czasu, w którym będzie miała miejsce
pojedyncza iteracja pętli:
a.
Znajdź bloczek Time Delay.
b.
Umieść go lewym dolnym rogu pętli. Pojawi
się okno konfiguracji.
c.
Wprowadź wartość 0.1 sekundy i wciśnij
przycisk OK.
d.
Uruchom VI. W ciągu sekundy program
wykona 10 iteracji.
8. Dodanie kontrolki ostrzegającej.
Czasem możesz potrzebować widocznego wskaźnika przekroczenia wyznaczonej granicy
wartości. Możesz do tego użyć diody LED:
a.
W okienku Controls na panelu przednim wybierz
kategorię LEDs.
b.
Jeżeli panel Controls nie jest widoczny, kliknij
prawym przyciskiem myszy w puste miejsce.
c.
Wybierz diodę Round LED i umieść ją po lewej stronie
wyświetlaczy na panelu przednim.
d.
Kliknij podwójnie na nazwie Boolean i wprowadź nową: Warning Light. Wykorzystasz
tą diodę w dalszej części ćwiczenia.
e.
Wybierz File ›› Save As.
12
f.
Przeglądnij dostępne opcje zapisu. Wybierz
Substitute copy for original w sekcji Copy.
Stworzysz tym samym kopię bieżacego
projektu i jednocześnie rozpocząć pracę
nad kopią.
g.
Wciśnij przycisk Continue, zapisz nowe VI
jako Warning Light.vi
9. Ustalanie progu alarmowania
Aby ustalić wartość progu, dla którego zapalać się będzie dioda ostrzegawcza, możesz użyć
bloczku Comparison. Wykonaj poniższe kroki, aby porównać wartość amplitudy z zadanym
limitem:
a.
Znajdź bloczek Comparison i umieść go po
prawej stronie bloczku Amplitude and Level
Measurements. Otworzy się okno konfiguracji
bloczku.
b.
W sekcji Compare Condition
wybierz opcję > Greater.
c.
W sekcji Comparison Inputs zaznacz
opcję Value i wprowadź wartość 2.
Jest to próg, powyżej którego
zapalać się będzie dioda.
d.
Wciśnij przycisk OK, aby zapisać
zmiany.
Nazwa bloczku zmienia się wraz z funkcją jaką pełni bloczek. W tym przypadku bloczek
powinien zmienić nazwę na Greater.
13
e.
Połącz ze sobą wyjście Peak to Peak znajdujące się na bloczku Amplitude and Level
Measurements, z wejściem Operand 1 na nowym bloczku Greater.
f.
Kliknij prawym przyciskiem myszy na nowo
stworzonym połączeniu i wybierz Create ››
Numeric Indicator. Pojawi się nowy
wskaźnik numeryczny – Peak to Peak.
Wskaźnik Peak to Peak pojawi się na połączeniu pomiędzy bloczkami. Przesuń go w
puste miejsce, aby diagram blokowy stał się bardziej czytelny.
10. Ostrzeganie
Po ustaleniu wartości, powyżej której VI zapali diodę, musisz połączyć ją z bloczkiem Greater.
Wykonaj poniższe kroki, aby VI alarmowało diodą przekroczenie wyznaczonej wartości:
a.
W oknie diagramu blokowego przesuń wskaźnik
Warning Light na prawo od bloczku Greater.
Upewnij się, że wskaźnik nadal znajduje się w
pętli.
b.
Połącz wyjście Result z wejściem Warning Light.
c.
Na panelu przednim jest widoczny wskaźnik numeryczny Peak to Peak. Został on
dodany automatycznie w czasie wykonywania punktu 9. i wyświetlać będzie wartości
wyjścia Peak to Peak.
d.
Uruchom VI. Kiedy wartość Peak to Peak będzie większa od ustalonego progu
równego 2, lampka ostrzegawcza zapali się.
e.
Wciśnij przycisk STOP, aby zakończyć działanie VI.
14
11. Zapis danych do pliku - konfiguracja
Dane, które generuje VI możesz magazynować w pliku. Możesz do tego użyć bloczku Write
To Measurement File. Wykonaj poniższe kroki, aby zapisać wartości Peak to Peak i inne
dane do pliku:
a.
Wyszukaj bloczek Write to Measurement i
umieść go na diagramie blokowym na
dole, z prawej strony bloczku Amplitude
and Level Measurements. Pojawi się okno
konfiguracji bloczku.
b.
Pole File Name pojawi się z pełną
ścieżką dostępu do pliku wyjściowego –
test.lvm
. Skorzystaj z przycisku po
prawej z ikoną katalogu, aby wybrać
nową ścieżkę zapisu pliku. Zapisz go na
pulpicie pod tą samą nazwą – test.lvm
Plik z rozszerzeniem .lvm możesz otworzyć korzystając z arkuszy kalkulacyjnych lub
edytorów tekstowych. Składa się on z kolumn zawierających wybrane dane.
Dane w pliku .lvm są zapisywane z dokładnością sześciu miejsc po przecinku.
c.
W sekcji If a file already exists (w oknie konfiguracji
bloczku) zaznacz Append to file. Kiedy wybrany
przez nas plik już istnieje, dane będą do niego
zapisywane nie usuwając tym samym poprzednio
zapisanych danych.
15
d.
W sekcji Segment Headers wybierz opcję One header
Only. Wybór tej opcji pozwoli stworzyć LabVIEW
tylko jeden nagłówek w pliku z danymi.
e.
W polu File Description wprowadź opis: Sample
of peak to peak values.
f.
Wciśnij przycisk OK, aby zapisać zmiany.
LabVIEW
umieści w nagłówku pliku wyjściowego opis wprowadzony w polu File
Description.
12. Zapis danych
Wykonaj poniższe kroki, aby LabVIEW zapisał dane do zdefiniowanego pliku:
a.
W oknie diagramu blokowego połącz wyjście Peak to Peak znajdujące się na bloczku
Amplitude and Level Measurements z wejściem Signals na bloczku Write to
Measurement File.
b.
Wybierz File ›› Save As i zapisz VI pod nazwą Save Data.vi
c.
Przejdź do panelu przedniego i uruchom VI.
d.
Wciśnij przycisk STOP.
e.
Otwórz plik test.lvm, znajdujący się na pulpicie, przy pomocy arkusza kalkulacyjnego,
lub edytora tekstowego. Początek pliku zawiera nagłówek z informacjami o projekcie.
f.
Zamknij plik test.lvm kiedy już przeglądniesz jego zawartość.
16
13. Dodanie przycisku który po wciśnięciu zapisuje dane
Jeśli nie chcesz zapisywać wszystkich wartości, a tylko wybrane, możesz stworzyć przycisk, po
naciśnięciu którego tylko wtedy będą zapisywane dane. Wykonaj poniższe kroki, aby
stworzyć tak funkcjonujący przycisk.
a.
Znajdź przycisk Rocker i umieść go z prawej strony
panelu przedniego.
b.
Kliknij na nim prawym przyciskiem myszy i wybierz
z menu Properties, aby wyświetlić jego
właściwości.
c.
Zmień nazwę z Boolean na Write to File.
d.
W zakładce Operation wybierz Latch when
pressed z listy Button behavior.
e.
Wciśnij przycisk OK, aby zapisać zmiany.
f.
Zapisz VI.
W zakładce Operation możesz ustawić, w jaki sposób ma reagować przycisk po
naciśnięciu. Aby sprawdzić różne opcje, wypróbuj podgląd przycisku w sekcji Preview
Selected Behavior.
17
14. Zapis danych na polecenie użytkownika.
Wykonaj poniższe kroki, aby VI zapisywał wartość do pliku po kliknięciu przycisku na panelu
przednim:
a.
W oknie diagramu blokowego kliknij podwójnie na bloczek Write To Measurement
File, aby wyświetlić jego właściwości.
b.
Zmień nazwę pliku, do którego będą zapisywane
dane na Selected Samples.lvm.
c.
Wciśnij przycisk OK, aby zapisać zmiany.
d.
Kliknij prawym przyciskiem myszy na wejście
Signals w bloczku Write To Measurement File i
wybierz z listy Insert Input/Output. Dodasz w ten
sposób nowe wejście – Comment.
e.
Kliknij prawym przyciskiem myszy w nowe wejście Comment i
wybierz z menu Select Input/Output ›› Enable. W miejscu
Comment pojawi się wejście Enable.
Wejścia i wyjścia pojawiają się w zdefiniowanej kolejności. Żeby dodać wybrane
wejście/wyjście, możesz dodać nową pozycję wybierając Insert Input/Output, a
następnie zamienić go na wybrane z listy wybierając Select Input/Output z menu
kontekstowego.
f.
Przesuń bloczek przycisku Write to File na lewo od bloczku Write To Measurement
File.
g.
Połącz wyjście z przycisku Write to File do wejścia
Enable na bloczku Write to Measurement File.
18
15. Odczyt zapisanych danych
Wykonaj poniższe kroki, aby odczytać dane zapisane w pliku Selected Samples.lvm:
a.
Przejdź do okna panelu przedniego i uruchom VI. Wciśnij przycisk Write to File
kilkukrotnie.
b.
Wciśnij przycisk STOP.
c.
Otwórz plik Selected Samples.lvm przy pomocy arkusza kalkulacyjnego lub edytora
tekstu.
Do pliku Selected Samples.lvm zapisywane są dane jedynie po wciśnięciu przycisku
Write to File. W pliku test.lvm były zapisywane wszystkie dane.
d.
Zamknij plik.
e.
Zapisz projekt i wyjdź z VI.