Picproje Elektronik Sitesi

DİJİTAL & ANALOG ELEKTRONİK => Diğer Analog Devreler => Konuyu başlatan: Erol YILMAZ - 17 Eylül 2005, 00:18:37

Başlık: Dijital Filtre
Gönderen: Erol YILMAZ - 17 Eylül 2005, 00:18:37
Artik almaya biktigim DSP dersini ogrenmeye basladim :)
Hocasi bile ne is yaptigini bilmiyor dersi. Mana vermeye calisirken
IIR filtrenin aslinda ise yarar birsey oldugunu farkettim.
Gereksiz değilmis.

Mesela cogu arkadas (oncelikle ben :) ) ADC ile yaptiklari okumalarda 10 biti hakkiyla kullanamamaktan sikayetci... PCB den falan bahsetmeyecegim. Sadece yazilim olarak bir filtre yapamazmiyiz? gibi bir soru takiliyordu kafama. onun accik cevabini buldum ve gayet mantikli geldi... Yazilimla ne yapmak istiyoruz. Zirt Pirt degismeyen sonuc.

Alıntı Yap===== Low Pass Filter =====

Out0 = new output
Out1 = last ouput
Out2 = next to last output, etc

In0 = newest (current) input
In1 = last input, etc

a, b, c etc, are constants


A really simple low pass filter that approximates a single pole (R-C) analog filter:

Out0 = a * In0 + b * Out1
where a + b = 1.0 (a and b are fractions > 0 and < 1)

This is an IIR filter since it uses past outputs. Basically it averages the new input with last output. The smaller the 'a' term is, the slower the response of the filter. If you use constants divisible by a power of two it is a very fast calculation. A good starting point is to set a = 1/4 and b = 3/4:

Out0 = (In0 + Out1 + Out1 + Out1) / 4;

umarim yardimci olmuştur. Hatta 10 bit ADC den 12 bit gibi sonuc alma falan da var ama :)  Neyse DSP yi uyguladik, Gururluyuz !
Başlık: Re: Dijital Filtre
Gönderen: CaFFeiNe - 17 Eylül 2005, 00:36:06
Alıntı YapOut0 = (In0 + Out1 + Out1 + Out1) / 4;

bu satır bana sanki 4 kez oku topla 4 e böl gibi geldi, yani bizim ADC zıplamasını engellemek için yaptığımız olaya benziyor :) (40-50 kez oku ortalamasını al gibi) yoksa biz DSP biliyormuşuzda haberimizmi yokmuş yada bu DSP dedikleri şey bizim mantığımızla yaptıklarımızın/çözdüklerimizin bir toplamı mı? (bunlar espri amacı ile yazılmıştır:))
Başlık: Dijital Filtre
Gönderen: Erol YILMAZ - 17 Eylül 2005, 00:54:02
@Caffeine;
Espri dedigin seyleri 0.7 espri katsayisi, 0.3 gercek katsayisi ile carpar ve sonuclari toplarsak daha mantikli bir sonuc cikartabiliriz. eskiler ne demis?
"Her espride bir gercek payi vardir" diye, aslinda onlar DSP yi biliyorlarmiydi? :)

Fakat bu sadece sonuc, Farkindaysan simdiki girise ve onceki cikisa bir katsayi verilmis. Bu katsayilar Low Pass filtre icin kesim frekansini belirliyor... heralde :roll:

40-50 kez oku ortalamasini al demek FIR filtreye denk dusuyor... :)
Alıntı Yap===== Averaging Filter =====

A simple FIR filter. This takes the average of several inputs to produce the output. In theory you would need past and future inputs but you can't, so you get a fixed time lag in this filter of half the number of samples used.

Again, if you use a power-of-two number of samples, the calculations are faster:

Out0 = (In0 + In1 + In2 + In3) / 4;

You will find you will probably need more than just four samples to get much filtering. You can also shape the filter by multiplying each input by different coefficents, but it complicates the calculations and can introduce worse truncation and/or overflow problems.

Hatta demis ki, okuma sayini 2 nin kuvveti seklinde yaparsan bolme islemin daha hizli olur.  40-50 kere değil 32-64 kere okut.

Saygilar...
Başlık: Dijital Filtre
Gönderen: ahmetu - 17 Eylül 2005, 01:30:14
http://www.dsptutor.freeuk.com/ (http://www.dsptutor.freeuk.com/)

http://www.nauticom.net/www/jdtaft/ (http://www.nauticom.net/www/jdtaft/)


daha önce linki verilmiş olabilir ama en babası bu hatta yazdırıp ciltlettirin  :lol:

The Scientist and Engineer's Guide to Digital Signal Processing (http://www.dspguide.com/pdfbook.htm)
Başlık: Re: Dijital Filtre
Gönderen: CaFFeiNe - 17 Eylül 2005, 01:38:05
hımm açıkçası benim şundan anladığım (ben öğrenciyken DSP dersleri yoktu hatta mikroişlemci dersinde 6502 gösteriyorlardı:))

Out0 = (In0 + Out1 + Out1 + Out1) / 4

örneğin ADC den bir değer okuduk mesela 100 (Out1) bir sonraki okumada 110 okuduk diyelim (In0) (tabiiki giriş sinyali sabit biz ADC deki zıplamadan dolayı 100 daha sonrada 110 okuduk) şimdi formüle göre;

Out0 = (110+100+100+100)/4
Out0 = 102.5 oldu

yani 110 değilde 102.5 hatayı küçülttük oranı 3/4 değilde 9/10 seçseydik sonuç 101 olacaktı yani oran büyüdükçe hata payı küçülecekti doğrumudur?
anladığım kadarıyla dijital sinyal işleme adı üstünde sinyali okuyup dijital olarak işlemek demek tabiiki bunu yapabilmek içinde kesirli sayılarla işlem yapabilmek gerek dolayısıyla normal bir PIC tede sinyali okuyup yukarıdaki gibi formüller uygularsan dijital sinyal işleme yapmış oluyorsun bir nevi kaplumbağa hızında dsPIC in oluyo Microchip te bunu farkettiğinden kesirli sayılarla işlem yapabilmek için PIC in donanımını geliştirip (bissürü W registeri, büyük akümülatörler, çarpma bölme üniteleri vs ekleyip) program yükünü donanıma aktararak dsPIC denen şeyleri yapmış güzel...
Başlık: Dijital Filtre
Gönderen: Erol YILMAZ - 17 Eylül 2005, 02:13:17
Valla isin donanim kismi yani topla cikart carp bol kismi basit ama o isi oraya getirinceye kadar asil is. Biz sinavda bir filtre tasarlariz yarim saatimizi alir. DSP onu saniye de 50 bin kere yapar, orasi ayri konu. Onemli olan nasil yaptiracagini, ne yaptiracagini kavrayabilmek...

Mesela sen diyorsun ki,
Surekli 100 cikis veriyorduk, Surekli 110 a gectik, Sonuc ne olur?
Katsayilarimiz da belli, Gecmis icin 3/4, simdiki icin 1/4...

Out0 = (In0 + Out1 + Out1 + Out1) / 4;

Out0 = (110+3x100 )/4        = 102.5
Out0 = (110+3x102.5 )/4      = 104.375
Out0 = (110+3x104.375 )/4  = 105.78
Out0 = (110+3x105.78 )/4    = 106.84
Out0 = (110+3x106.84 )/4    = 107.63
Out0 = (110+3x107.63 )/4    = 108.22
Out0 = (110+3x108.22 )/4    = 108.67
Out0 = (110+3x108.67 )/4    = 109.00
Out0 = (110+3x109.00 )/4    = 109.25
Out0 = (110+3x109.25 )/4    = 109.44
Out0 = (110+3x109.44 )/4    = 109.58
...

Katsayiyi degistirelim. Mesela yari yariya olsun...

Out0 = (In0 + Out1 + Out1 + Out1) / 4;

Out0 = (2x110+2x100 )/4       = 105
Out0 = (2x110+2x105 )/4       = 107.5
Out0 = (2x110+2x107.5 )/4    = 108.75
Out0 = (2x110+2x108.75 )/4    = 109.38
Out0 = (2x110+2x109.38 )/4    = 109.69

5 cikis sonra girisi bulduk. Diger katsayilarla 11 cikis yapmamiz gerekti.
Benim bi tane voltmetre-ampermetre var. Onda deneyim sonucu gormek icin...

Bu fotograflari buyuturken siyah ile beyaz arasina gri tonlamalari koymaya da benziyor aslinda...

Bu arada ortalama almaktan baya farkli... Ortalama sadece o periyottaki sinyallere bakiyor. Bu onceki cikislari  hesaba katiyor...
Başlık: Dijital Filtre
Gönderen: JohnF - 17 Eylül 2005, 04:16:12
Sayısal filtreler dersini almış ve büyük hayal kırıklığına uğramıştım uygulama yapma fırsatı bulamayınca :(. İstedğiniz tipteki filtreyi belirleyip transfer fonksiyonunu bulup bunu bir takım işlemlerle fiziksel (ve sayısal olarak tabii) olarak gerçekleştirmektir amaç olan. Zaten işi yazılıma kadar getirdiyseniz arkadaşların açıkladığı gibi topla çarptan başka bir işlem yok. Tabii iş DSP olayına gelince sadece filtre tasarlamak veya ses işlemek akla gelmemeli. Her türlü sinyal (video gibi) işlenebilir. Ayrıca hızlı veri işleyebilen lojik sistemler lazım. dsPIC biraz amatörce kaçıyor. Analog Devices' ın Tiger, Shark gibi 3 W güç ile P4 1.5 GHz işlemciden daha hızı kayan nokta hesabı yapabildiğini biliyor muydunuz :). Konu temel olarak sayısal işaret işlemeye dayanıyor, ayrık zamanlı sistemler, örnekleme teoremi, ayrık fourier dönüşümü, hızlı fourier  vs...
Başlık: Dijital Filtre
Gönderen: xenix - 17 Eylül 2005, 12:44:29
Sizce elektronik son sınıf öğrencisi olarak DSP dersi almalımıyım? Sorun şu, genel olarak sinyal derslerinden notlarım çok kötü geldi, DSP de resmen bu derslerin devamı, ama bana ne kadar çok şey katacağının da farkındayım. Bazen de düşünüyorum, derslerde sınav telaşı yüzünden pek bişey öğrenilmiyor, onun yerine ahmetu'nun gönderdiği gibi bir ders notundan mı öğrenmeli...
Başlık: Dijital Filtre
Gönderen: ahmetu - 17 Eylül 2005, 12:58:55
En iyisi dersi almak en azından konu başlıkları insanın kulağına bir yer eder ama sınavlarına da bir şekilde girmemek  :lol:  yani not ortalamasını etkilemeyecek şekilde dersi görmek, ben hiçbir zaman böyle şeyleri ezberlemem lazım olunca notlardan arar bulurum.
Başlık: Dijital Filtre
Gönderen: Erol YILMAZ - 17 Eylül 2005, 15:08:14
Alıntı yapılan: "xenix"Sizce elektronik son sınıf öğrencisi olarak DSP dersi almalımıyım? Sorun şu, genel olarak sinyal derslerinden notlarım çok kötü geldi, DSP de resmen bu derslerin devamı, ama bana ne kadar çok şey katacağının da farkındayım.

DSP bu derslerin devami değil sanki hepsi DSP ye hazirlik :)
Sana cok sey katar mi bilmiyorum ama DSP dersinden faydalanmak istiyorsan oteki derslere nazaran 2 kat daha fazla calisman ve hocada bu konuyla ilgili nasil bir bilgi kirintisi olursa olsun almaya calisman lazim.
Nacizane tavsiyem bu DSP yi ogrenmek icin derse matematik gorunumune kanmadan istirak etmek ve nedir? ne değildir? ne ise yarar? kismini ciddi arastirarak bulmandir.

Gerci bu sene TEZ calismalarinizda vardir :)
Başlık: Dijital Filtre
Gönderen: z - 17 Eylül 2005, 15:21:36
Bizim zamanimizda boyle bir ders yoktu. Digitial Control I-II aldik.

Bu bahsettiginiz ders bu 2 bolumluk dersden farkli bir ders mi yoksa ismi mi degistirildi?
Başlık: Dijital Filtre
Gönderen: Erol YILMAZ - 17 Eylül 2005, 15:28:33
Bunalmis hocam sen birak simdi dersi :)

Sen bize ders ver, DSP kullaniyorsun bildigim kadariyla :D

Bu arada sahane bir DSP basligi buldum bircok sey gayet ayrintili
http://encyclopedia.laborlawtalk.com/Digital_signal_processing (http://encyclopedia.laborlawtalk.com/Digital_signal_processing)
Başlık: Dijital Filtre
Gönderen: xenix - 17 Eylül 2005, 19:46:07
Tavsiyeler için teşekkür ederim, dersi resmi olarak almayacağım ama derslerine gidip ödevlerini yapmaya çalışacağım.
Başlık: Dijital Filtre
Gönderen: Erol YILMAZ - 18 Eylül 2005, 02:03:23
Xenix senin ders seciminde en iyi karar verici olan sensin.
Burada seni etkilemis olmak istemem...

(http://www.bores.com/courses/intro/iir/gifs/5_eq2.gif)

IIR filtre hakkinda temel sorulara cevaplar var. simdi daha cok dikkatimi cekmeye basladi bu konu...

Alıntı Yap1. IIR Basics
1.1 What are IIR filters? What does "IIR" mean?
IIR filters are one of two primary types of digital filters used in Digital Signal Processing (DSP) applications (the other type being FIR). "IIR" means "Infinite Impulse Response".

1.2 Why is the impulse response "infinite"?
The impulse response is "infinite" because there is feedback in the filter; if you put in an impulse (a single "1" sample followed by many "0" samples), an infinite number of non-zero values will come out (theoretically).

1.3 What is the alternative to IIR filters?
DSP filters can also be "Finite Impulse Response" (FIR). FIR filters do not use feedback, so for a FIR filter with N coefficients, the output always becomes zero after putting in N samples of an impulse response.

1.4 What are the advantages of IIR filters (compared to FIR filters)?
IIR filters can achieve a given filtering characteristic using less memory and calculations than a similar FIR filter.

1.5 What are the disadvantages of IIR filters (compared to FIR filters)?
They are more susceptable to problems of finite-length arithmetic, such as noise generated by calculations, and limit cycles. (This is a direct consequence of feedback: when the output isn't computed perfectly and is fed back, the imperfection can compound.)
They are harder (slower) to implement using fixed-point arithmetic.
They don't offer the computational advantages of FIR filters for multirate (decimation and interpolation) applications.
Başlık: Dijital Filtre
Gönderen: Erol YILMAZ - 23 Eylül 2005, 00:34:46
Alıntı yapılan: "Erol"...DSP onu saniye de 50 bin kere yapar, orasi ayri konu...

Arkadaslar kusura bakmayin ben halt etmisim, En basitinden Texas in 28xx serisi DSP'ler bile  birkac yuz MMAC lik islem yapiyormus... :)
MAC ta Multiply, Add, ve depola gibi bisey olmasi lazim. Dijital Filtrenin temel islevi yani. M olunca basinda Milyon MAC oluyor, malum...

Bir de IIR filtre normalde bir turlu degerine oturmuyor gibi gorunuyor. Fakat sistem sayisal oldugundan belli bir degerin altindakiler birsey ifade etmiyor.

Bir de olcu aletlerinin gec cevap vermesinin sebebi de bu filtreymis...
Mesela FLUKE 400 mS sureyle gelen sinyaldeki gerilim seviyesini gosteremiyor... Bu filtreden dolayi...

Bir de Fluke el-olcu aletlerinde MSP430 (Texas) MCU kullaniliyormus...
Başlık: Dijital Filtre
Gönderen: CaFFeiNe - 23 Eylül 2005, 00:56:31
msp430 ları uzaktan biraz inceledim tam pille beslenen uygulamalar için tasarlanmış cpu aktifken çektiği akım 250uA uyku modunda 0.1uA ve 16bitlik bir işlemci oldukça iyi birşeye benziyor...
Başlık: Dijital Filtre
Gönderen: CoşkuN - 28 Şubat 2006, 23:23:39
Bu DSP muhabbeti iyi gidiyormuş,niye kesildi acaba  :roll:
Başlık: Dijital Filtre
Gönderen: Erol YILMAZ - 28 Şubat 2006, 23:32:45
Lutfen Coskun bey,
Devam edelim. Istirakleri bekliyoruz.

Siz de bahsedin biraz anladiklarinizdan ve uygulama lisaniyla paylasalim. Zira bu konulari bilen cok az insanin oldugunu dusunuyorum.

<Bu arada bahsettigim filtreyi voltmetremde uyguladim. Sonuclar gayet dogru oldu. Atlama ziplamalar buyuk olcude kesildi>
Başlık: Dijital Filtre
Gönderen: CoşkuN - 05 Mart 2006, 11:36:05
Bu konuda konuşabilecek durumda değilim.İşaret ve sistemler dışında bu konuda ders alamadım,okulda açılmadı ne yazık ki...Ama önemli bir alan olduğunu düşünüyorum ve konuyla ilgileniyorum.
Bu dosyada dijital filtrelerle ilgili bilgi ve matlab dosyaları var:
http://rapidshare.de/files/5586146/Digital_Filtreler.rar.html