Sinüs'lü denklem

Başlatan t2, 24 Aralık 2015, 17:20:40

t2

Bir formülümüz ve deney sonuçları var.  Deney sonuçları aslında formül ile üretildi.
sonuçlar yeteri kadar mevcut sadece bir kaç tanesini kullanarak sabit sayıları hesaplamamız gerek

B =?,   A=?

Formül:

Y  = A sin(0.43197 x )

x= B OLSUN
deney sonuçları:
x = B  ise      Y = 63,2120133446152
x = B+1  ise  Y = 53,2138756030236
x = B+2  ise  Y = 33,4395774102219
x = B+3  ise  Y = 7,52194403503747
x = B+4  ise  Y = -19,7775795136823
x = B+5  ise  Y = -43,4436749673557


B ve A sabit sayılarını nasıl bulabiliriz? Formül gerek.

Bu sonuçlara göre B ve A  biliniyor.

Fakat başka sonuçlar için, bilinmeyen B ve A nasıl hesaplanır?

Icarus

Aslında olay pek böyle yapılamaz.
Ölçümlerin -ki ölçümler sabit bir sayı olamaz- düşünülen teorik formüle "curve fit" edilmesi gerekir.
Sonra yapılan "tahminin" doğru olup olmadığına bakılır. Hesaplarınızla ölçümleriniz arasındaki farkın/hatanın sıfır olması gerekir. (Ölçümlerin sabit bir sayı olamayacağını tekrar hatırlatırım)

z

#2
y(n)=A*Sin[m*(B+n)]

İfadesinde A ve B yi bilmiyoruz. Fakat m'i biliyoruz.

n=0,1,2,3... için y değerleri ölçülüyor. A ve B yi soruyorsun.

n=0 için   y(0)=A*Sin[m*B]
n=1 için   y(1)=A*Sin[m*(B+1)]

y(1)/Y(0) =Sin[m*(B+1)] / Sin(mB)

y(1)/Y(0) =[Sin(mB)Cos(m)+Cos(mB)Sin(m)] / Sin(mB)

y(1)/Y(0) =Cos(m)+Cotg(mB)Sin(m)]

[ y(1)/Y(0)  - Cos(m) ] / Sin(m)] = Cotg(mB)

ACotg{[y(1)/Y(0)  - Cos(m)]/Sin(m)} =mB

B=ACotg{[y(1)/Y(0)  - Cos(m)]/Sin(m)} / m

B'yi bulunca

A=Asin[m*B]/y(0) den A'yı hesaplarsın.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

t2

#3
z  hocam size güveniyorum bu formüller illa ki  doğrudur.
fakat ben hata yapıp da  formülünüze laf etmek istemem bu yüzden bana yukarıdaki değerler için hesap yapıp B ve A sabit sayılarını buluverseniz ?

bu sayede ikna olup formülü kabullenirim ve cahillik yapıp saygıda kusur etmemiş olurum.

Icarus hocam, gerçekte bu bir sinüs dalgasıdır.  sonuçları kendim ürettim dalgayı oluşturdum.
Fakat başka dalga olunca dalganın bilinmeyen noktalarını hesaplamak için formül türetmeye çalışıyorum. Onu da sinüs kabul edecem. önceki belli sonraki belli. ortaya yeni bir nokta ekleyecem. PCM ses dalgasını upsampling yapmaya çalışıyorum. upsampling yapmadan öncelikle bilinen dalgaya bir formül  ayarlamak gerek. Dalganın Genliği ve kaçıncı örnek olduğu bulunması gerek. Yeni örnek buradan yola çıkılarak hesaplanabilir.

Başka dalganın frekansı  ve genliği benimki ile aynı olmayabilir. frekansı aynı kabul ettim. genliği bulmamız gerek.
fakat kaçıncı örnekten başladı, dalga  nereden  başladı ? bilinmiyor.

z

İşlem hatası yapıp duruyorum. Sen kullandığın A ve B yi ver. Gerçekten bu değerleri elde ediyormuyuz bakmak istiyorum.

Ardından istediğin bilgileri yazayım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ferdem

B ve A örneklenen sinüzoidalin faz ve genliği... bunları bulmak için periyot süresince toplanan örneklere DFT uygulanacak. 5-6 örnekle yapamıyorum, periyot 14 civarı. 15 örnek verirseniz B ve A DFT ile bulunur.
Sinüs formu için yapılır, formülü de yazılır ancak gerçekte giriş sinüs mü ki!

Upsampling nasıl yapılıyor diye bakmak lazım: mesela *2 yapılmak istendiğinde örnek aralarına 0 eklenip işaret "lowpass" filtreden geçiriliyor. Bu gibi işlerde elinizin altında MATLAB veya benzeri bir araç olması gerek. Kolay gelsin.

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

t2

#7
Sonucu özellikle veremiyorum. Esaslı güzel formülü bekleyip saygı duyacağım.

Deneme yanılma, iterasyon da olur. işlemleri bilgisayar yapsın. Curve fit denen şey galiba okulda ogretilmisti.acaba nasildi? Lineer regrasyon değil de egrisel olanı galiba.

Ferdem, örnek sayısını artırdım. DFT nasıl yapılacak? Aşağıdaki sonuçlar gerçek sinüse göre formülün kendisine göre yapıldı. bu sinyal için tutarlı formülü bulabilirsem, sinüs olan gerçek sinyaller için işe yarar diye umuyorum. Sinüs olmayan kısımda sorun çıkarsa çıksın. fark etmez.


Y  = A sin(0.43197 x )
A=? B=?

x = B 	  , Y = 63,2120133446152
x = B + 1  , Y = 53,2138756030236
x = B + 2  , Y = 33,4395774102219
x = B + 3  , Y = 7,52194403503747
x = B + 4  , Y = -19,7775795136823
x = B + 5  , Y = -43,4436749673557
x = B + 6  , Y = -59,1285374764594
x = B + 7  , Y = -63,9506303965272
x = B + 8  , Y = -57,0240653466996
x = B + 9  , Y = -39,6213527490329
x = B + 10 , Y = -14,9396232149164
x = B + 11 , Y = 12,4867317007302
x = B + 12 , Y = 37,6190929684003
x = B + 13 , Y = 55,8402814503924
x = B + 14 , Y = 63,8028006489776
x = B + 15 , Y = 60,0438203455506



z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

t2

#9
B= - 3.27
A= - 64

Y  = A sin(   0.43197 (B+0)  )

yerine yazarsak
Y = 63,2120133446152 olması gerek.

bana olmuyor gibi geldi. Sizin A,B değerler yaklaşık olabilir mi?  Nasıl test ederiz? 
(Windows Hesap makinesinde açıyı  Radyan olarak ayarlayarak denedim.)

z

O kadar küsürat almadımki. Hesaplamalarda verdiğin sayıların noktadan sonra 3. yada 4  rakamını kullandım. Matematiksel anlamda istediğiniz kadar basamağa ulaşıabilirsin. Formülünü verdim zaten.

Fakat deney yapıp sinyalden ADC vs ile bu kadar doğru sayılar ölçemezsin.

Birde hesaplamayı radyan modunda yapmalısın.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

t2

#11
evet hocam radyan modunda yaptım. tamam küsüratı da dikkate alayım ince hesap yapalım.

Çözüm A=64,  B=4 idi.

Negatif olması da belki aynı sonucu verir.

Üretilen dalga ile ne kadar doğruyu yakalayabilirsek, gerçek sinyalde  formül işe yarar. Kesin sonuç vermese de olur.

Teşekkür ederim.

z

#12
Hesaplamayı yaparken en uç iki  veriyi kullan.

Mesela

x = B      , Y = 63,2120133446152

x = B + 15 , Y = 60,0438203455506

Y(0)  = 63,2120133446152 = A * sin(0.43197 * B)
Y(15)= 60,0438203455506 = A * sin(0.43197 * (B+15))

y(15)/Y(0) =60,0438203455506/63,2120133446152=0.949879891

0.949879891 = [sin(0.43197 *B)*cos(0.43197*15) + cos(0.43197 *B)*sin(0.43197*15)] / sin(0.43197 * B)

0.949879891 = cos(0.43197*15) + cotg(0.43197 *B)*sin(0.43197*15)

Acil çıkmam gerekiyor dönünce hesaplayalım.

0.949879891 = 0.98078232428 + cotg(0.43197 *B)*0.19510518282

-6.31358641111=tan(0.43197 *B)

-1.41371265364 = 0.43197 *B

B=-3.272710266

Y(0)  = 63,2120133446152 = A * sin(0.43197 * B)

A=-64

A ve B her ikisi de pozitif alınabilir.
B ancak bu kadar doğru çıkıyor. 4 sonucu pel çıkacak gibi durmuyor.

Tahminimce sin cos, Atn fonksiyonlarının çok daha doğru hesaplayıcılarla hesap edilmesi gerek. Yada hesap hatası yapıyorum.

-----------------

Gazi Üniversitesi Teknik Eğitim Fakültesinin yanlış hatırlamıyorsam ilk mezunlarından olan mezun olur olmaz da aynı okula öğretim görevlisi olarak atanan dayımın aniden rahatsızlandığını haber almamız üzerine apar topar hastaneye gittik. Ancak 84 yaşındayken malesef kaybettik.

Bu yüzden mesajıma ara verip çıkmak zorunda kalmıştım.

Ülkemize metal işleri konusunda sayısız kalifiye teknik personel ve Sanat Okullarına hoca yetiştirmiş Dayım, teknik konulara merak salmamda çok etkin olmuştu.

Metal Kaynak konusunda kitapları da basılmış dayım sanayiye de teknik anlamda özellikle de Ark Kaynağı eğitimi konusunda çok yardımcı olmuştur. (60..70li yıllar)

Kendisini buradan rahmetle anmak istedim.

-------------------

Son zamanlarda Alzeimer rahatsızlığından dolayı sadece çok eskileri hatırlayan dayımın çok sık tekrarladığı bir sözünü de yazmak isterim.

Mutlu olmak istiyorsan.  "Görme, Duyma, Karışma" derdi.

Kıldığı namazı unutup aynı namazı 3..4 kez kıldığı olurdu.

Mekanı cennet olsun.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ohacagatay

merhaba, bir regression sorusu sormuşsun, kendine bir sine model seçip ( A*sin(Bx+c)+D) daha sonra bir cost function ( sum of squares ) oluşturup, basit bir optimizasyon algoritmasıyla  ( Gradient Descent yada Normal Eq ) cost functionını global minimuma çekip parametre vektörünü eldebilirsin.
Sine Regression yazarsan daha açıkca ve aşırı derece fazla örnek görüceksin zaten
Some people believe çiğ köfte is a matter of life and death, I am very disappointed with that attitude. I can assure you it is much, much more important than that

Salih

Z hocam,

Başınız sağ olsun.
Allah dayınıza gani gani rahmet eylesin.
Yakınlarına da sabrı cemil versin.