| Matma / jak prosciej znalezc sinus majac wartosci |
| Autor | Wiadomość |
| SJ
|
Posted: 22 Gru 2006 13:04:17 Witam, 1. Mam kilka (N=5..10) wartości funkcji sinus rozłożone równomiernie w jednym okresie (od 0 do 2Pi) 2. Ogólny wzór na funkcję sinus będzie wyglądał tak: y=A*sin(wt+fi) (w-faza=2Pif, fi-przesunięcie fazy) I teraz mając te kilka wartości chcę znaleźć jedynie "A" (w i fi nie są mi potrzebne). Robię to tak, że sumuję poniższą funkcję podstawiając k=0..N-1, gdzie N to ilość moich wartości, a y(k) to moje wartości: Suma = Suma + y(k) * (cos(2Pi/N)-jsin(2Pi/N)) - czyli DFT dla pierwszej harmonicznej Szukana A będzie modułem zespolonej liczby Suma. I mam pytanie - czy można to zrobić prościej. Mając kilka wartości przebiegu sinusa znaleźć jego amplitudę. Pozdrawiam, SJ |
| Ktrot
|
Posted: 22 Gru 2006 22:48:05 Witam,
1. Mam kilka (N=5..10) wartości funkcji sinus rozłożone równomiernie w jednym okresie (od 0 do 2Pi) 2. Ogólny wzór na funkcję sinus będzie wyglądał tak: y=A*sin(wt+fi) (w-faza=2Pif, fi-przesunięcie fazy) I teraz mając te kilka wartości chcę znaleźć jedynie "A" (w i fi nie są mi potrzebne). Robię to tak, że sumuję poniższą funkcję podstawiając k=0..N-1, gdzie N to ilość moich wartości, a y(k) to moje wartości: Suma = Suma + y(k) * (cos(2Pi/N)-jsin(2Pi/N)) - czyli DFT dla pierwszej harmonicznej Szukana A będzie modułem zespolonej liczby Suma. I mam pytanie - czy można to zrobić prościej. Mając kilka wartości przebiegu sinusa znaleźć jego amplitudę. Niech N=10 czyli 5 w półokresie i zakładamy, ze sinus nie ma składowej stałej (czyli nie wyraża się wzorem B+Asin(wt+fi) ) Zauważ, że punkt N o najwyzszej wartości wyznacza amplitudę A z dokładnością <5% bo najbardziej niekorzystny przypadek: sin(pi/2+pi/10)=0.95... jeżeli do tego maksymalnego N dodamy 2,5% to otrzymamy wartość amplitudy z dokładnością +/-2,5% Jeżeli to wystarcza to koniec, jeżeli nie to jedziemy dalej: Zauważ, że maksimum sinusa (czyli amplituda) leży pomiędzy 2 sasiadującymi punktami o najwiekszej wartości. Niech wartości w tych punktach wynoszą W(k) i W(k+1) i W(k)W(k+1) W(k)=Asin(pi/2-alfa) W(k-1)=Asin(pi/2+pi/5-alfa) gdzie alfa - odległość masymalnej wartośći od maksimum. Mozna ten układ rozwiązać lub aproksymować rozwiązanie przybliżone |
| jj
|
Posted: 23 Gru 2006 09:00:50 Jeżeli to wystarcza to koniec...
Dziękuję za wskazówki, ale muszę opierać się na wszystkich punktach jakie mam. Chodzi o to że są to spróbkowane wartości z pomiaru gdzie na przebieg sinusa nakładają się pewne zakłócenia. Tak więc mogę np. zastosować filtrację cyfrową i odfiltrować zakłócenia. Problemem jest wtedy stromość takiego filtru, itp. Nie mogę więc brać tylko dwóch punktów o największej wartości gdyż mogą one być "poprzesuwane" przez zakłócenia. Biorę pod uwagę wszystkie (5..10) punktów w jednym okresie i "naginam" A*sin(wt+fi) współczynnikami tak aby odchyłka była jak najmniejsza. Pierwsze co przyszło mi do głowy do interpolacja trygonometryczna ograniczona do a0/sqr(2)+b1*sinx+a1*cosx. Drugie na co wpadłem to właśnie DFT tylko dla pierwszej, podstawowej częstotliwości. DFT "załatwia" również od razu problem usunięcia zakłóceń - mam od razu amplitudę dla częstotliwości podstawowej. Tak więc Pana wskazówki są jak najbardziej odpowiednie ale dla czystego sinusa. Nie dodałem w pytaniu że muszę bazować na wszystkich próbkach. Tak więc potrzebny byłby mi raczej prosty sposób odnalezienia "A" i "fi" takie aby przebieg sinusa A*sin(wt+fi) przebiegał jak najbliżej moich punktów. "w" (pulsację) oczywiście znam gdyż tak jak wspomniałem mam zebrane punkty równomiernie w jednym okresie, więc "w" mogę łatwo wyznaczyć bo znam również czas trwania tego okresu. Problemem jest jakieś sprytne, proste znalezienie "A" i "fi" aby błąd dopasowania funkcji sin do moich punktów był jak najmniejszy. Pozdrawiam, SJ |
| boguslaw
|
Posted: 1 Sty 2007 11:52:45 Jeżeli to wystarcza to koniec...
Dziękuję za wskazówki, ale muszę opierać się na wszystkich punktach jakie mam. Chodzi o to że są to spróbkowane wartości z pomiaru gdzie na przebieg sinusa nakładają się pewne zakłócenia. Tak więc mogę np. zastosować filtrację cyfrową i odfiltrować zakłócenia. Problemem jest wtedy stromość takiego filtru, itp. Nie mogę więc brać tylko dwóch punktów o największej wartości gdyż mogą one być "poprzesuwane" przez zakłócenia. Biorę pod uwagę wszystkie (5..10) punktów w jednym okresie i "naginam" A*sin(wt+fi) współczynnikami tak aby odchyłka była jak najmniejsza. Pierwsze co przyszło mi do głowy do interpolacja trygonometryczna ograniczona do a0/sqr(2)+b1*sinx+a1*cosx. Drugie na co wpadłem to właśnie DFT tylko dla pierwszej, podstawowej częstotliwości. DFT "załatwia" również od razu problem usunięcia zakłóceń - mam od razu amplitudę dla częstotliwości podstawowej. [...] Problemem jest jakieś sprytne, proste znalezienie "A" i "fi" aby błąd dopasowania funkcji sin do moich punktów był jak najmniejszy. Pozdrawiam, SJ Prosze sprobowac takiej "sztuczki" - stosowanej przez analogowe przyzady elektromagnetyczne... cos2x = 1-2*(sinx)^2 popomnozeniu obu stronprzez A^2 mamy A^2*cos2x = A^2 - A^2 * 2*(sinx)^2 A^2*cos2x = A^2 - 2*(A*sinx)^2 skad (A*sinx)^2 = (A^2 -A^2*cos2x)/2 Policzmy srednia wartosc z obu stron. Z lewej na podstawie probek, z prawej napodstawie wiedzy-- srednia z cos2x =0 Sum(yn^2)/N = (A^2)/2 A=Sgrt(2*sum(yn)^2/N) moze to bedzie wystarczajaco dokladne.. Proby w excelu dla 10probek na okres z zaburzeniami pomiarow 10% amplitudy daly dokladnosc lepsza niz 2% w skrajnych przypadkach do 3% dla mniejszych bledow dokladnosc byla znacznie znacznie lepsza.. |