N cykli programu i usrednienie wyniku

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
panmajster
Posty: 9
Rejestracja: 07 lis 2012 09:48
Wersja środowiska: LabVIEW 2011

N cykli programu i usrednienie wyniku

Post autor: panmajster »

witam ponownie :)

dzis problem wygląda następująco:

-mamy taki malutki kodzik (jest to wycinek ale zaraz opisze co tu sie dzieje)

http://imageshack.us/photo/my-images/69 ... gramu.jpg/

od lewej:

1. do bloczka cross correlation wchodza 2 sygnały (x i y) pobrane z generatora
2. z bloczka lecimy do tablicy, gdzie wycinam sobie poprzednie próbki

te dwa bloczki oddzielone sa petla FOR, ktora wykonuje N powtórzen programu (pobiera 2 sygnały, oblicza funkcje korelacji i nastepnie wycina nam potrzebne próbki)

3. minialgorytmik odpowidzialny za wyznaczenie położenia szczytu funkcji


Jaki mam problem?

Jezeli wszystko wpakuje do pętli FOR:

http://imageshack.us/photo/my-images/507/45370962.jpg/

to wszystko działa elegancko (pobiera sygnał, wyznacza funkcje korelacji, wpisuje do tablicy, wyznacza polozenie szczytu.. i znow pobiera.. funkcja korelacji i polozenie szczytu - wszystko N-razy i za pętla dostajemy usrednienie z naszych N pomiarów)


tylko moim zadaniem jest wykonanie czegos jak w obrazku 1 - czyli troche inna budowa programu:

w pętli for ma być:
(pobieramy sygnał, obliczamy Rxy, wycinamy potrzebne próbki -> wpisujemy gdzies do jakiejs lokalizacji[nie mam pojęcia do jakiej] te N pomiarów [czyli N funkcji korelacji] później usredniamy je i wykonujemy tylko JEDEN pomiar tego czubka funkcji (a nie N-pomiarów czubka funkcji, tak jak w poprzednim przykladzie)

moglbym prosic o male wskazówki jak to zrobić?

z gory bardzo dziekuje za pomoc i pozdrawiam

majster

ponizej kod całego programu w wersji 2 (gdzie w pętli FOR wykonuje sie wszystko)

http://speedy.sh/Evg2A/Usrednianie-funkcji.vi
may
Posty: 96
Rejestracja: 20 lut 2012 12:30
Wersja środowiska: LabVIEW 2014
Lokalizacja: Katowice / Ruda Śląska

Re: N cykli programu i usrednienie wyniku

Post autor: may »

Z tego co rozumiem to:
Dostajemy N funkcji korelacji każda ma po M próbek. Po indeksowaniu pętli for dostajemy tablicę MxN gdzie każdemu wierszowi odpowiada funkcja korelacji z jednego pomiaru. Chcemy uśrednić tą tablicę (czyli dodać elementy w każdej kolumnie, podzielić przez N) tak by uzyskać 1D tablicę przedstawiającą uśrednioną funkcję korelacji. Funkcję tą chcemy podać na bloczek PEAK, wyznaczający nam w jakiś sposób piki uśrednionej funkcji.

Średnią po kolumnach z dwuwymiarowej tablicy możemy uzyskać tak:
ACM.png
ACM.png (21.75 KiB) Przejrzano 4019 razy
Uzyskaną tablicę podajemy na PEAK (który ma być tak jak w 1 przykładzie na zewnątrz pętli for) co powinno dać oczekiwany efekt.
Załączniki
ACM.vi
(13.06 KiB) Pobrany 323 razy
Ostatnio zmieniony 24 lis 2012 15:20 przez may, łącznie zmieniany 1 raz.
Obrazek
ODPOWIEDZ