Sinyaller Arasında Faz Farkı Bulma Hk.?

Başlatan Nedenler, 27 Nisan 2015, 14:18:18

Nedenler

150 khz veya 200 khzlik bir sinüs sinyalin aynı frekansta bir referans sinyaline göre faz farkını bulup derece cinsinden picte yorumlamak ve bazı işlemler yapmak istiyorum. Konu hakkında pek bilgi sahibi değilim bu faz farkını nasıl bulurum? Bu işi yapan bir devre entegre vs?

ferit06

#1
Sinyal TTL veya CMOS işlenebilir seviyede ise XOR kapıları kullanarak faz farkını elde edip işleyebilirsiniz.





https://www.picproje.org/index.php/topic,35216.15.html

LukeSkywalker

sıfır geçiş noktaları tesbit edilip buna göre işlem yaptırılabilir.

ferdem

XOR lamak en pratik yöntemdir. Bu sinyalleri, hızı desteklediğinden emin olduğunuz bir XOR kapısına girmelisiniz. Sinüslerin voltaj seviyeleri uygunsa , Vpp leri aynı ise, kare dalga bile yapmadan direkt XOR a girilebilir. İşaretler arasındaki zaman kaymasına göre çıkışta pulse lar görürsünüz, (gördüğünüz pulse width in periyoda oranı) x 360, derece cinsinden faz farkını verir.
Örneğin 200KHz de periyot 5 us, pic ile min ne kadarlık bir pulse width ölçebilirsiniz? Kabaca 20MHz OSC> 200nS cycle olsa... 1uS yi ölçebildiğinizi varsaysak min ölçülebilir faz farkı 72 derece oluyor. Çözünürlük, 200nS den 360/25=14.4 derece oluyor.

z

Digital teknikler uygulanacaksa dehşet frekanslı işlemciler yada hızlı lojik devreler gerekir.

@Nedenler

Referans sinyalin de sinüsel mi?

Asıl olarak sonuçta ne yapmak istediğini merak ettim. Sen söyle ben de yöntemi söyleyeyim.

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

Nedenler

Dün mesajlarınızı okuduğumdan beri xor ile çalışmalar yapıyorum. Mantığı anladım. Xor çıkışındaki sinyali pice girip on time süresi ölçüp işlem yapmam gerek bu da pici biraz yoracak sanırım. En azından başka işlemler de yaparken zor olacak, sonuçta 5 us'nin altında zamanlar tespit etmem gerek. Farklı yöntemler düşünüyorum şu an.

@z
Hocam iki sinyal de sinüs. Asıl olarak ne yapılacağını ben de bilmiyorum tam olarak -bir nevi şirket politikası- benden sadece bu şekilde iki sinyalin faz farkını ölçüp derece cinsinden elde ederek buna göre bir çıkış vermem isteniyor.

ferdem

XOR çıkışın ortalamasını alıp, RC ile mesela, PWM işaretin ortalama değerini ölçer gibi, ADC okuma nasıl olur? Ortalama değer faz farkı ile lineer bağlı değil mi?

ferit06

#7
5 uS altında zamanların  ölçümü için 10 MHz harici osilator kullanarak TIMER1 kullanabilirsin(PIC için). Bu durumda ölçeceğin zaman dilimleri 100 nS olur ( PIC16F628 ile TIMER1 girişinden 50 MHz frekansmetre yapılmış bu durumda TIMER1 50 MHz e kadar çalışabiliyor ise 50 MHz lik osilator ile 20 nS lik zaman dilimleri için ölçüm yapabilirsiniz). Bu yeterli bir seçicilik ise bu yöntemi kullabilirsiniz. Yoksa XOR çıkışını alçak geçiren filtreye uygulayıp, DC ortalama alarak faz farkını  bu şekilde değerlendirebilirsiniz ( yukarıdaki mesajda da belirtilmiş).

ferdem

PIC timer girişe 50 MHz ve muhtemelen 10 MHz bile fazla olur, datasheet te propagation delay vb. parametrelerin olduğu bölümde sınır görülebiliyor, 18F serisi bir PIC te 5 MHz civarıydı, öyle bir değer kalmış aklımda. Gördüğünüz frekansmetrede önde uygun bir frekans bölücü vardır.

ferit06

#9
PIC 50MHz frekansmetre için  ( bunlar TIMER 0 kullanmışlar ama..)

http://www.qsl.net/om3cph/counter/anotes/an592.pdf


http://elektroteknoloji.com/blog/60mhz-frekans-metre-counter/

Burada da ete hoca TIMER1 i kullanmış
http://www.elektrotekno.com/about32032.html

z

#10
İki şekilde yaparsın. Analog olanı uzun iş. (Analog çarpma, integral alma, VCO gibi bloklar ister.)

Digital olanı daha kolay.

A referans B de test sinyali olsun.

A ve B sinyallerini oldukça hızlı komparatörlerden geçir ve kare dalga elde et.
Kare dalga çıkışlarını oldukça hızlı EXOR kapısına gir.

Exor çıkışını RC ile filitrele.

Filitre çıkışındaki DC seviye açı ile orantılır.

Eğer ileri mi gerimi farkı da önemli ise oldukça hızlı D FF 'un D girişine A yı Clk grişine de B yi bağlarsın.

Bu durumda Q çıkışı sana fazın ileri yada geri olduğunu söyler.

Yalnız bu devrelerde hızlı lojik kullanmalısın. Besleme voltajını çok iyi regüle etmelisin. Hatta lojik devre ve komparatörleri fırınlamalısın.

Aksi takdirde elde ettiğin siyallerde ofsetler oluşur.

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

iyildirim

Yeni model işlemcilerde bulunan, aslen dokunmatik ekranların okunması amaçlı CTMU modülünü kullanarak 1-2 nano saniye çözünürlükte süre ölçümü mümkün oluyor.

Yeni model tüm serilerde bulunuyor nerdeyse. 
Modül digital olarak ayarlanabilen bir akım kaynağı şeklinde çalışıyor. Bu yüzden kalibrasyon için çok düşük toleranslı bir direnç kullanmak önemli.

Nedenler

Yorumlarınız için teşekkürler her yöntemi ayrıntılı inceliyorum.
Peki NE565 veya 4046 gibi PLL entegreleri için ne diyorsunuz?
Bu entegreler önce faz farkını gösteren bir sinyal sonra bu sinyale göre bir voltaj çıkartıyorlar ve DC seviyeye göre ölçüm yapılabiliyor.
Yanlış anlamadıysam bu şekilde?

ferit06

4046 nın blok şemasına bakarsanız zaten XOR ile faz farkını bulup çıkışa veriyor. Doğrudan XOR kapısı ile yapılan işlemden farklı bir şey elde edemezsiniz.

ferdem

Evet 4046 da seçeneklerden birisi XOR. PLL lerde faz karşılaştırıcı çıkışı, gerilim veya "charge pump" varsa akım oluyor, bu çıkış "loop filtre" den geçirilir, filtre çıkışında bir gerilim olur, VCO ya verilir. "Loop filtre" de "low pass" filtre zaten.  PLL ler faz-frekans karşılaştırıp gerilim üreten döngülerdir, yapmak istediğiniz iş PLL döngüsünde yapılıyor.