Fourier, AFD (DFT), HFD (FFT)

Başlatan mihri, 21 Eylül 2009, 00:34:44

mihri

Alıntı yapılan: "QarizmaCocuq"
Geçenlerde pic'e 2 float sayıyı hesaplatayım dedim bayıldı kaldı.Sonuc'u %0.5 - %0.6 hata ile hesaplıyor. Bu sorunu nasıl hallederiz ?

8 bit işlemci ile bu çorba bu kadar tıraş.:lol:

%0.5 hata sana çok geliyorsa 16-32 bit işlemcilre geçiş yapmalısın böylece 64 bit float sayıları rahatlıkla kullanırsın. Hata daha az olur.
"Eppur si muove!"

wsxwsx

Alıntı yapılan: "KT3170 DTMF RECEIVER , "Acceptable Frequency Deviation = ± 1.5% ( ± 2Hz )
http://www.datasheetcatalog.org/datasheet/SamsungElectronic/mXuusvq.pdf

wsxwsx

Pardon bu bir ölçü olmaz. çünkü daha büyük yüzde,  daha geniş aralıkta okuma yapabilir demek oluyor.  Yukarıda bahsedilen hata durumu bundan farklı.

Ankaralı

Alıntı yapılan: "mihri"
Alıntı yapılan: "QarizmaCocuq"
Geçenlerde pic'e 2 float sayıyı hesaplatayım dedim bayıldı kaldı.Sonuc'u %0.5 - %0.6 hata ile hesaplıyor. Bu sorunu nasıl hallederiz ?

8 bit işlemci ile bu çorba bu kadar tıraş.:lol:

%0.5 hata sana çok geliyorsa 16-32 bit işlemcilre geçiş yapmalısın böylece 64 bit float sayıları rahatlıkla kullanırsın. Hata daha az olur.

Hesap makinelerindeki işlemcilerde mi 16 yada 32 bitlik?Neyse konuyu dağıtmayalım...
@ NEXYS2

ddavut

bende zamanında bu fourier dönüşümleriyle uğraşmıştım ama araya iş girmişti herzamanki gibi. ilerleyen süreçte bir şebeke sizyalinin fft'sini alıp harmonik analizini yapsak nasıl olur? bu arada mihri hocam aynen katılıyorum sana. insan böyle projelerle uğraşınca mühendis olmanın tadına varıyor.

picusta

1) o formüldeki IN   :   ADC ile ölçülen 255 deger barindiran bir tablo. Napier logaritma fonksyonu ile alakasi yok ( ln ). IN, INPUT'un kisaltilmisi , yani formülümüzün girisi, degikseni, bu degisken formülde yoksa, formül olmaz.

2) Fd ile Fsample arasinda 2 ile çarptim baglantisi var : Fsample = 2*Fd.
Fd örnekleme frekansinin yarisi.

3) IN(N)  ile IN(t) arasindaki fark, tamamen yazim hatasi ile oldugu için farkli.  t devamli zaman için kullanilan zaman degiskeni,  N ise ayrik zamanda kullanilan zaman degiskeni.
-> En solda kullanilan IN(t) 'yi IN(N) olarak okuyunuz.

Formül daha da açiklik kazanmistir umarim. Bu projenin ASM kodunu inceleyen varsa dogrulasin.


mihri

2. kısım eklendi. Örnek program çıktısı aşağıdaki gibi.

"Eppur si muove!"

wsxwsx

Proton Picbasic FFT örneği (son versiyonla uyumlu)
http://www.mediafire.com/?evfigcmt2we

While 1 = 1
		GoSub AquireADC			
		PerformFFT				
		CalculateLog							
		NumberOfSamples = 127										
		RealIndex = 1
		Repeat
			TempByte = RealBuffer[RealIndex]						
			If TempByte >= 63 Then TempByte = 63
			PreviousRealValue = ShadowRealBuffer[RealIndex]		
			If PreviousRealValue <> TempByte Then
				Line 0,NumberOfSamples,0,NumberOfSamples, PreviousRealValue
			EndIf
			If TempByte > 1 Then
				Line 1,NumberOfSamples,0,NumberOfSamples, TempByte
			EndIf
			ShadowRealBuffer[RealIndex] = TempByte				
			Inc RealIndex
			Dec NumberOfSamples
		Until NumberOfSamples = 0								
	Wend

hasangurlek

mihri hocam eline sağlık, kafama takılan bir şeyi sormak istiyorum.

Alıntı yapılan: "mihri"AFD uygulanırken örnekleme frekansı giriş sinyali içindeki en büyük frekanslı harmoniğin 2 katından büyük olmalıdır.

Örnekleme hızı ne kadar büyük olursa o kadar iyimi olur, yoksa 2 kat hızlı olması her şey için yeterlimidir ? Örneğin 3khz giriş sinyalini 6 khz örnekleme ile almak yerine 60khz örnekleme hızında almak doğruluğu ne kadar etkiler ? Örnekleme hızının artması/azalması ile elde edilen sonucun gerçekliğe yakınlığının/uzaklığının hesaplanması için kullanılan bir katsayı hesabı, formül varmıdır ?
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

wsxwsx

Örnekleme teoremi diye bir şey var.  Gerçek  sinyali yakalayabilmek için en az 2 katı örneklemek yeterli.

Ancak  2 katından sonra aşırı fazla olması da çevrim süresini gereksiz yere artıracaktır.  Bence 2.1katı olsa yeterli.  (sapma ihtimaline karşı )

Zaten örnekleme teoremi, 2 katı yeterli diyor. Bunun formülü ve hesabı vardı. 2 kat frekansla örneklenirse orijinal sinyal aynen elde edilebiliyordu.

ferdem

Alıntı yapılan: "hasangurlek"mihri hocam eline sağlık, kafama takılan bir şeyi sormak istiyorum.

Alıntı yapılan: "mihri"AFD uygulanırken örnekleme frekansı giriş sinyali içindeki en büyük frekanslı harmoniğin 2 katından büyük olmalıdır.

Örnekleme hızı ne kadar büyük olursa o kadar iyimi olur, yoksa 2 kat hızlı olması her şey için yeterlimidir ? Örneğin 3khz giriş sinyalini 6 khz örnekleme ile almak yerine 60khz örnekleme hızında almak doğruluğu ne kadar etkiler ? Örnekleme hızının artması/azalması ile elde edilen sonucun gerçekliğe yakınlığının/uzaklığının hesaplanması için kullanılan bir katsayı hesabı, formül varmıdır ?

Örnekleme olayında işareti örneklersin sonra örneklenmiş işareti bir filtreden geçirirsin(örneklediğin işaret lowpass bir sinyalse filtre alçak geçiren filtre, bandpass bir sinyalse bandgeçiren filtre kullanırsın) orjinal işareti geri elde edersin. Örnekleme sonucunda frekans spekturumuna yayılmış işaretler çıkar, bunlardan biri bizim istediğimiz orjinal işaret. Bunu bir filtreyle almak isteriz.
Filtrelenecek işaretler birbirinden ne kadar uzaksa filtreleme sonucu o kadar sağlıklı olur, yani çıkış orjinal işaretimize o kadar benzer. Örnekleme teorisinin en az 2 katı demesi filtrelenecek işaretleri sınır sınıra komşu eder ki bunları ayırmak ancak ideal koşullarda(ideal filtreyle) mümkün. Eğer 2 kattan daha yavaş örneklersek filtrelenecek işaretler birbirine girer(aliasing) ve ayırmak mümkün olmaz. İdeal filtremiz yok bizim, dolayısıyla filtrelenecek işaretleri biribirinden daha fazla uzaklaştırmamız lazım. Mesela en azından 2.5 katı ile örnekleme yaparak. Daha yüksek hızlarda örneklemenin bir sakıncası yok, daha net sonuçlar elde edersiniz ancak gereğinden fazla örnek almak hafızada gereksiz yer tutar. Sorduğunuz soruya  şu cevap rahatlıkla verilebilir: Ne kadar yüksek hızla örneklersek o kadar doğrukta orjinal işareti geri elde ederiz.

Günümüzde çok yaygın olan bir örnekleme olayı:
Sıradan bir ses kayıt cihazında konuşma işareti 8k ile örneklenir. Normal bir konuşma işaretinde en büyük frekans 3k civarıdır, idealde 6k ile örneklense geri elde edilebilir ama gerçekte 8k ile örneklenir. İyi çalışmalar.

mihri

Alıntı yapılan: "hasangurlek"mihri hocam eline sağlık, kafama takılan bir şeyi sormak istiyorum.

Alıntı yapılan: "mihri"AFD uygulanırken örnekleme frekansı giriş sinyali içindeki en büyük frekanslı harmoniğin 2 katından büyük olmalıdır.

Örnekleme hızı ne kadar büyük olursa o kadar iyimi olur, yoksa 2 kat hızlı olması her şey için yeterlimidir ? Örneğin 3khz giriş sinyalini 6 khz örnekleme ile almak yerine 60khz örnekleme hızında almak doğruluğu ne kadar etkiler ? Örnekleme hızının artması/azalması ile elde edilen sonucun gerçekliğe yakınlığının/uzaklığının hesaplanması için kullanılan bir katsayı hesabı, formül varmıdır ?

Sanırım benim açıklama yapmama gerek kalmadı. Verilen cevaplar yeterlidir.
"Eppur si muove!"

ddavut

Evet arkadaşlar FFT olayına ne zaman geçiyoruz?

pro73

devamını merakla bekliyoruz