Rozmiar dwóch tablic

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
Awatar użytkownika
Klejur
Posty: 19
Rejestracja: 23 cze 2005 00:00
Lokalizacja: Poznan

Rozmiar dwóch tablic

Post autor: Klejur »

Witam
Mam 2 trywialne przykłady: Przykład_1 i Przykład_2.
Dlaczego w pierwszym przykładzie długość wiersza jest 22049 zamiast 22050 a w drugim 22051 zamiast także 22050 ??? :o
P.S. W przykładzie drugim "Number of channels" zmieniamy na 1.
\"Tylko ten nie popełnia błędów, kto nic nie robi.\"\r\nW.I.Lenin
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Rozmiar dwóch tablic

Post autor: jogurt_owocowy »

Hej,
Przede wszystkim źle używasz funkcji Insert Into Array. W obydwu przykładach dopisujesz za jej pomocą na końcu tablicy wejściowej stałą 3 (liczbę obiegów pęli for).
Ale okazuje się, że są problemy właśnie z tą tablicą wejściową.
Jeśli chodzi o przykład 1, to nie wiedzieć dlaczego przy następujących ustawieniach funkcji Acquire Sound: Sample rate (Hz) = 22050 i Duration (s) = 1 na wyjściu dostajemy 22048 próbek.
Po dodaniu wartości 3 przez wspomnianą funkcję Insert Into Array będzie 22049. Co ciekawe, przy innych ustawieniach częstotliwości próbkowania (np. 44100, 16000) wszystko jest ok i na wyjściu dostajemy, zgodnie z oczekiwaniami, odpowiednio, 44100
i 16000 próbek.
Jakiej wersji LV używasz? Pytam, bo - co jeszcze ciekawsze - po odpaleniu tego samego kodu w 8.6, wartość Total Samples wynosi (przy różnych częstotliwościach próbkowania):

Kod: Zaznacz cały

 Sample rate | Total Samples ------------+--------------



8192 | 6144


 16000 | 12000


 22050 | 16536


 44100 | 33075 
To dopiero ciekawa zagadka. I dobry argument za tym, żeby nie używać upierdliwych Express VIajów ]
Jeśli chodzi o przykład 2, to tu zagadka ma rozwiązanie. Na wyjściu Sound Input Read dostajesz (poprawnie) tyle próbek, ile sobie zamówiłeś (22050) + dodatkowa doklejona za pomocą Insert Into Array, co daje w sumie 22051.
Pozdrawiam
Awatar użytkownika
Klejur
Posty: 19
Rejestracja: 23 cze 2005 00:00
Lokalizacja: Poznan

Rozmiar dwóch tablic

Post autor: Klejur »

Witam.
Dziękuję za odpowiedz. Dzisiaj będę to "trawił" :). Używam wersji 8.5.
Pozdrawiam
Maciej
\"Tylko ten nie popełnia błędów, kto nic nie robi.\"\r\nW.I.Lenin
Awatar użytkownika
Klejur
Posty: 19
Rejestracja: 23 cze 2005 00:00
Lokalizacja: Poznan

Re: Rozmiar dwóch tablic

Post autor: Klejur »

Witam raz jeszcze.
Czyli użycie funkcji Insert into Array jest mi tutaj niepotrzebne?
Jeśli na wyjściu pętli 'for' chcę otrzymać tablicę np: 3 kolumn = 3 iteracje i 22050 wierszy = liczba pobranych próbek tak jak w załączniku
to wystarczy, że zrobię jak na zdjęciu????
Pozdrawiam
Maciej
\"Tylko ten nie popełnia błędów, kto nic nie robi.\"\r\nW.I.Lenin
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Rozmiar dwóch tablic

Post autor: jogurt_owocowy »

Dokładnie tak.
ODPOWIEDZ