24
MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi Sayısal Filtreler ve Sistemler Dersi Uygulama Notu Araş. Gör. Ramazan Yeniçeri [email protected] 24.03.2010

MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

Embed Size (px)

Citation preview

Page 1: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi

Sayısal Filtreler ve Sistemler DersiUygulama Notu

Araş. Gör. Ramazan Yeniçeri

[email protected]

24.03.2010

Page 2: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

2

• Bu uygulama notunda MATLAB (R2009a) ve Xilinx ISE (i9.2) kullanılmıştır.

• MATLAB ile istenen frekans cevabını veren FIR filtre en düşük dereceli olarak tasarlanmış, katsayılar kuantalanarak sayısal gerçeklemeye hazır hale getirilmiş ve örnek giriş dizisi olulturulmuştur. Sayısal filtre FPGA üzerinde gerçeklenebilecek şekilde ISE ile tasarlanmış ve ISE ile benzetimi yapılmıştır. Benzetim sonucu oluşan çıkış dizisi yine MATLAB ile analiz edilmiş ve gerçeklenen filtrenin istenen karakteri sergilediği gösterilmiştir.

• Notların anlaşılabilmesi için MATLAB dili ve Verilog Donanım Tasarlama Dili (HDL) bilinmelidir.

Hakkında & Başlarken Gerekenler

Page 3: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

3

• Grafiksel kullanıcı arayüzü (GUI) ile sayısal filtre tasarlamaya yarayan araç

• Çalıştırmak için MATLAB komut satırına:>> >> fdatoolfdatool

• Sağdaki pencere açılacaktır:

• Tasarlanan filtreyi MenMenMenMenMenMenMenMenüüüüüüüü>File>>File>>File>>File>>File>>File>>File>>File>SaveSaveSaveSaveSaveSaveSaveSave SessionSessionSessionSessionSessionSessionSessionSession ile fdafdafdafdafdafdafdafda uzantılı bir dosya olarak kaydedebilir, daha sonra bu dosya üzerinden çalışabilirsiniz.

Filter Design & Analysis Tool’un çalıştırılması

Page 4: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

4

• FDAtool’un en sol alttaki butonuna tıklanarak DesignDesign FilterFilter

ekranı açılır.

• Bu ekrandan filtrenin cevap türü alalççak geak geççireniren, tasarım metodu FIR FIR –– EquirippleEquiripple olarak seçilir.

• Filtrenin FPGA üzerinde en az alanı kaplaması için en az sayıda çarpma ve toplama işlemi gerçekleşiyor olması gerekir. Bunun için filtre derecesi minimum dereceminimum derece olarak seçilir.

• Gerçeklenecek filtrenin öörnekleme frekansrnekleme frekansıı 100 KHz100 KHz olarak seçilsin. 20 20 KHzKHz’’ee kadar gekadar geççirme bandirme bandıı, 30 30 KHzKHz’’denden sonrassonrasıı

ssööndndüürme bandrme bandıı olsun.

• Ayrıca gegeççirme bandirme bandıındanda işaretin en fazla 0.1 0.1 dBdB

bastırılmasına ya da kuvvetlendirilmesine izin verilirken, ssööndndüürme bandrme bandıındanda en az 10 10 dBdB bastırma gerçekleşsin.

• Bu seçimlerden sonra Design Filter butonu tıklanarak filtre katsayıları üretilmiş olur. Bu adımdan sonra pencerede tasarlanan filtrenin genlik cevabı görülür.

FDAtool ile örnek alçak geçiren filtre tasarımı (1)

Page 5: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

5

• FDAtool, aşağıdaki genlik cevabı grafiğini üretecektir.

• Grafik üzerinde tıklanarak yerleştirilen işaretçiler ile filtemizin 20 KHz’de yaklaşık 0.044 dB bastırdığını, 20 KHz’den sonra frekans arttıkça bastırmanın arttığını, 26 KHz’in 3 dB bastırma ile kesim frekansı olduğunu, 30 KHz’e gelindiğinde bastırma şiddetinin 11.45 dB’e ulaştığını ve daha yüksek frekanslarda bastırma şiddetinin en az 11.34 dBolduğunu görmek mümkün olur.

FDAtool ile örnek alçak geçiren filtre tasarımı (2)

Page 6: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

6

• FDAtool, tasarlanan filtrenin DirectDirect--Form FIRForm FIR yapısında, 11. 11.

derecedendereceden, kararlı bir filtre olduğunu filtre bilgilendirme bölgesinde gösterir.

• FIR filtre tasarladığımız için kararlı sonuç vereceğini zaten bekleriz.

• Üst sıradaki PhasePhase responseresponse butonu ile filtrenin faz cevabınıgörmek mümkün olur.

• Yine üst sıradaki butonlardan filtrenin darbe cevabını, basamak giriş cevabını, kutup ve sıfırlarının yerlerini görmek mümkündür.

• Ayrıca, FilterFilter coefficientscoefficients butonu ile FDAtool’un hesapladığıfiltre katsayıları görülebilir.

FDAtool ile örnek alçak geçiren filtre tasarımı (3)

Page 7: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

7

• 11. dereceden FIR filtrenin 12 adet katsay12 adet katsayııssıı sağda gösterildiği gibi bulunmuştur. Katsayıların simetriksimetrik olduğuna dikkat ediniz.

• Elde edilen bu katsayılar ile FPGA üzerinde filtre gerçeklenmek istenirse kayan nokta aritmetiği gerçekleştirebilen devre parçaları kullanılması gerekir.

• Bu tür bir gerçekleme yerine, sabit noktalı işaretli sayı aritmetiği kullanılması FPGA gerçeklemesini kolaylaştırır.

• İşaretli sayının 22’’nin tnin tüümleyenimleyeni formunda gösterilmesi sayısal devre üzerinde toplama ve çıkarma işlemlerini tanımlamak oldukça kolaylaşır. Fakat çarpma işlemi için biraz daha çaba sarfetmek gerekir.

• FDAtool’da soldaki butonlardan Set Set quantizationquantization parametersparametersbutonu ile katsayıları sabit noktaya dönüştüren pencere açılır.

FDAtool ile örnek alçak geçiren filtre tasarımı (4)

Page 8: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

8

• Bu pencerede öncelikle filtre aritmetiği Double-precision floating-point’ten FixedFixed pointpoint’e alınmalıdır.

• Filtre hassasiyeti Full’den SpecifySpecify allall’a alınır.

• Filtrenin giriş işareti -1 ~ +1 arasında genliğe sahip olacak şekilde ayarlanabilir. Bakıldığında katsayıların da -0.2 ~ +0.5 aralığında olduğu görülmektedir. Filtrenin geçirme bandında birim kazançlı olmasısebebiyle çıkış işaretinin de -1 ~ +1 genlikli olacağıbilinir. Katsayılarla ağırlıklandırılan örneklerin ise -0.5 ~ +0.5 arasında olacağı açıktır. Dolayısı ile -2 ~ +2 aralığını gösteren sabit noktalı sayı aritmetiği kullanılması bizim için yeterli olacaktır.

• Bunun için katsaykatsayıılarlarıı 8 bit8 bit ile ifade etmeli ve ondalondalıık k

kkıısmsmıı iiççin 6 bitin 6 bit ayırmalıyız.

FDAtool ile örnek alçak geçiren filtre tasarımı (5)

Page 9: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

9

• Giriş-çıkış işaretleri için de benzer işlemler InputInput//OutputOutput sekmesini kullanılarak gerçekleştirilir.

• Yine filtrenin ara değerleri için bit genişliği ve ondalık kısım tanımlanmalıdır.

•• ApplyApply butonu ile aritmetik üzerinde yapılan değişiklikler filtreye uygulanır.

FDAtool ile örnek alçak geçiren filtre tasarımı (6)

Page 10: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

10

• Kuantalanan filtre katsayıları, Filter Coefficients penceresinde görülür.

• Tekrar genlik cevabı penceresine geçildiğinde kuantalama işlemi sonucunda filtre karakteristiğinin ne kadar değiştiği gözlenir.

• Grafikten görüldüğü üzere, yapılan değişiklikler filtre karakteristiğini büyük ölçüde aynı tutarken, aritmetik işlemleri kolaylaştırması açısından çok ciddi avantaj sağlar.

FDAtool ile örnek alçak geçiren filtre tasarımı (7)

Page 11: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

11

• Bu noktadan sonra filtrenin .fda dosyası olarak kaydedilmesi önerilir.

• Ardından Menü > File > ExportExport işlevi ile sağdaki pencere açılır.

• MATLAB çalışma uzayına, Num değişken ismi ile katsayıların en son hali (kuantalanmış) aktarılabilir.

• Artık MATLAB komut satırına geçilebilir.

• Katsayıları onaltılık ya da ikilik forma dönüştürmek için tercih ettiğimiz sayı tipini tanımlayan bir kuantalayıcı (quantizerquantizer) da burada oluştururuz. Bunun için:>> q = quantizer('fixed','floor','saturate',[8 6])

q =

DataMode = fixed

RoundMode = floor

OverflowMode = saturate

Format = [8 6]

• Bu kuantalayıcı ile herhangi bir sayı kullandığımız sayıformatına döndürülebilir ya da geri alınabilir.

FDAtool ile örnek alçak geçiren filtre tasarımı (8)

Page 12: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

12

• Artık, katsayıların ikili tabanda ifadesi için:>> num2binnum2bin( q, Num )

ans =

11111110

00000011

00000001

11110111

00001001

00011110

00011110

00001001

11110111

00000001

00000011

11111110

FDAtool ile örnek alçak geçiren filtre tasarımı (9)

• Bu fonksiyonların tersi bin2numbin2num ve hex2numhex2num

mevcuttur.• Verilog ile filtre devresini

tanımlarken bu ikilik taban ya da onaltılık tabandaki katsayıifadeleri kullanılacaktır.

• Katsayılar yukarıdan aşağıya, girişle çarpılacak katsayı, birinci geciktirilmiş giriş ile çarpılacak katsayı, …, yedinci geciktirilmişgiriş ile çarpılacak katsayıolarak sıralıdır.

• Onaltılık tabanda ifadesi için:>> num2hexnum2hex( q, Num )

ans =

fe

03

01

f7

09

1e

1e

09

f7

01

03

fe

Page 13: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

13

• Filtrenin tasarımından sonra filtre için giriş işareti hazırlanır.• Filtre karakteristiğini doğru olarak test edebilmek için giriş işaret dizisi, farklı

frekanslardaki sinüslerin toplamı ya da farklı zaman aralıklarında farklı tek frekansa sahip sinüs işareti olarak hazırlanmalıdır.

• İkinci yöntem ile işaret dizisi hazırlanacaksa şu örnek kod kullanılabilir:Ts = 10e-6; % örnekleme periyodu 10 us, fs=100KHz

fNy = 1 / Ts / 2; % Nyquist frekansý

ns = 1000; % dizideki örnek sayýsý

nf = 10; % dizide kaç farklý frekansta iþaret olacaðý

for i = 1:ns

freq(i) = (fNy/ns) * round(i/ns*nf)*ns/nf; % örneklerin frekansý

end

for i = 1:ns

S(i) = cos(2*pi*freq(i)*Ts*i);

end

QS = num2hex(q, S );

• QS değişkeni 1000 adet 1000 adet kuantalanmkuantalanmışış girigirişş öörnerneğğiinden oluşmaktadır. Bu dizi ve frekans spectrumu şu örnek kodla çizdirilebilir:S2 = hex2num(q, QS );

figure;

subplot(2,1,1);plot(S2)

spec = abs(fft(S2));

subplot(2,1,2);plot([0:100:50e3-100],spec2(1:ns/2));

• Ve dosyaya kaydedilir:dosya = fopen('giris_data.txt','w');

for i = 1:ns

fprintf(dosya, '%s\n', QS(i,:));

end

fclose(dosya);

MATLAB’de filtre için giriş işareti hazırlama (1)

Page 14: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

14

• Bu sayede elde edilen QS dizisi çizdirdiğimizde üstteki grafiği, QS’in frekans spectrumunuçizdirdiğimizde alttaki grafiği elde ederiz.

• Frekans spektrumu 50 KHz’ye yani Nyquistfrekansına kadar çizdirilmiştir. 50 ~ 100 KHz aralığında 0 ~ 50 KHz’nin simetriği, 100 KHz’den sonra ShannonShannon’unörnekleme teoreminin dediği gibi 0 ~ 100 KHz’lik spektrum parçası kendini tekrar eder.

MATLAB’de filtre için giriş işareti hazırlama (2)

Page 15: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

15

• Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni formunda filtre katsayılarını ve aynı formda 1000 örneklik giriş dizisini elde ettikten sonra Xilinx ISE ile filtre tasarlanır.

• İlk olarak ISE’de boş bir proje oluşturulur. İlk pencerede projenin yeri ve adıbelirlenirken ikinci pencerede filtrenin üzerinde gerçekleneceği FPGA, sentezleyici, benzetim aracı ve tercih edilen HDL dili seçilir. Diğer pencereler değiştirilmeden ilerlenir.

ISE’de filtreyi Verilog HDL ile tasarlama (1)

Page 16: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

16

• Projeye yeni bir Verilog modulü eklenir. Bu modüle filtre.v filtre.v adını verelim. Katsayılarla ağırlıklandırıp toplayarak çıkışı oluşturma bu modül içerisinde kombinezonsal olarak gerçeklenecek, giriş işaretinin tutucular üzerinde geciktirilmesi ise ardışıl olarak gerçekleştirilecektir.

• Şimdi filtreyi, tanımlayan Verilog kodu üzerinden inceleyelim.

ISE’de filtreyi Verilog HDL ile tasarlama (2)

• timescale satırı benzetim için ISE’nindosyaya otomatik eklediği bir satırdır.

• 2. satırda modulün adı da otomatik olarak eklenmiş gelir fakat parantez içerisindeki giriş-çıkış listesini tasarımcı ekler.

• 3.-4. satırlarda saat girişi, filtre girişi ve filtre çıkışı tanımlanır.

• 6.-17. satırlarda da katsayılarımız sabit kablo bağlantıları olarak tanımlanır.

Page 17: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

17

• 18.-28. satırlarda giriş işaretinin geçmiş değerlerini saklayacak kaydediciler, başlangıçta değerleri 0 olacak şekilde tanımlanır.

• 29.-40. satırlarda çarpıcı alt modüllerinin çıkışlarını kullanabilmek için gereken kablolar tanımlanır.

• 2’nin tümleyeni ile toplama pozitif ve negatif sayılar için tanımlıyken, çarpma tanımsızdır. Yani * operatörüile çarpma işlemi, çarpılan sayılar 2’nin tümleyeni olarak tanımlanmış bile olsa, onları ikilik tabanda tamsayıymış gibi sonuç üretir.

• Bu yüzden işaretli sayılarla çarpma işlemi yapan alt modüller tasarıma eklenmeli ve filtre modülünde katsayıile örnek değerleri bu alt modüller ile çarpılmalıdır.

• 41.-52. satırlar arasında da bu alt modüller filtreye modülüne eklenmiştir.

ISE’de filtreyi Verilog HDL ile tasarlama (3)

Page 18: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

18

• 53-.65. satırlarda always bloğunda saat işaretinin her yükselen kenarında tetiklenen bir ardışıl devre kurulmuştur.

• Bu yapı esasen bir kaymalı kaydedicidir.

• Her saat tetiklemesinde giriş değeri bir önceki girişi saklayan kaydediciye aktarılır, bir öncekinin değeri iki öncekini tutan kaydediciye aktarılır…

• 66. satırda çıkış çarpıcıların tamamının toplamı olarak atanır. Assign ile yapılan bu atama kombinezonsal bir ifadedir.

• 67. satırda modül kodu sonlandırılır. Bu satırı ISE otomatik eklemektedir.

• Örneklerin geciktirilmesi her saat tetiklemesi ile gerçekleştiğinden, devrenin saat frekansı, filtrenin örnekleme frekansıile aynı, 100 KHz, olmalıdır.

ISE’de filtreyi Verilog HDL ile tasarlama (4)

Page 19: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

19

• Filtre modülünü tanımladıktan sonra çarpıcımodülü tanımlanır.

•• ÇÇarparpııccıı modmodüüllün işlevi, çarpılacak sayıların ilk bitlerine (2’nin tümleyeni formatında işareti belirtir) bakarak negatif sayılarıpozitife çevirmek, ardından pozitif sayılarıçarpmak ve girişlerin işaretlerin ex-orifadesine göre çarpım sonucunu pozitif bırakmak ya da negatife çevirmektir.

• Bu şekilde tanımlanan 11. dereceden FIR filtre devresinin başta seçilen FPGA’da ne kadar alan kullandığı sağdaki tablodadır.

ISE’de filtreyi Verilog HDL ile tasarlama (5)

Page 20: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

20

• MATLAB ile hazırlanan 1000 örneklik girişdizisini kullanarak benzetim yapılaması için gereken test kodu yine Verilog ile yazılır. İlk adım kaynak dosyalara BehavioralBehavioral

SimulationSimulation için bakmaktır. Bunun için sağdaki seçenek seçilir.

• Daha sonra filtre_test adında yeni bir VerilogVerilog Test Test FixtureFixture projeye eklenir.

• Eklenen dosyada ISE’nin hazırladığı satırlar sağdaki gibidir.

ISE’de filtrenin benzetimi (1)

Page 21: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

21

• Benzetim için test fixture kodu sağdaki hale getirilir.

• Bu kodda giriş işaretleri dosyadan okunur, 100 KHzfrekanslı saat işareti filtre modülüne uygulanır ve çıkışdeğerleri başka bir dosyaya onaltılık tabanda yazılır.

• Benzetim çalıştırıldığında ve 10 ms sürdürüldüğünde aşağıdaki gibi bir dalga formu elde edilir.

• Benzetim penceresi kapatıldığında çıkışdeğerlerinin yazıldığı metin dosyası da hazır hale gelir.

ISE’de filtrenin benzetimi (2)

Page 22: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

22

• Çıkış değerlerini tutan dosya MATLAB tarafından açılır, okunur, çizdirilir ve frekans spektrumu çizdirilir. Bunun için MATLAB’de şu kodlar çalıştırılabilir:

dosya = fopen('cikis_data.txt','r');

ns = 1000;

for i = 1:ns

FS(i,:) = fscanf(dosya, '%s', 1);

end

fclose(dosya);

q = quantizer('fixed', 'ceil', 'saturate', [8 6]);

FS = hex2num(q, FS );

spec = abs(fft(FS));

figure;

subplot(2,1,1);plot(FS)

subplot(2,1,2);plot([0:100:50e3-100],spec(1:ns/2))

ISE’de filtrenin benzetimi (3)

Page 23: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

23

• Sağda çıkış örneklerinin MATLAB kodu ile çizdirilmiş grafiği mevcut.

• Geçirme bandında (girişişareti frekansı 0 iken) filtre çıkış genliği 1’de kalmakta fakat söndürme bandında olan 30 KHz’degenlik 0.2813’e düşmektedir.

• 20log(0.2813) = -11.0166 dB bastırmaya karşılık gelmektedir. Filtre tasarımına başlarken (FDAtool’da) 30 KHz’in -11.44678 bastırılacağıbekleniyordu.

• Dolayısıyla tasarlanan filtre ile sayısal gerçeklemesi örtüşmektedir.

ISE’de filtrenin benzetimi (3)

Page 24: MATLAB ve ISE ile FIR Filtre Tasarımı ve Gerçeklenmesi · MATLAB’de filtre için giri şişareti hazırlama (2) 15 • Ondalık kısmı 6 bit olan 8 bitlik 2’nin tümleyeni

24

• Filtre katsayılarının FDAtool gibi araçlarla elde edilmesi tasarımcıya kolaylık sağlamaktadır. Bu araçlar ile filtrenin özellikleri detaylı olarak analiz edilebilmektedir.

• Kuantalanmış katsayılar (burada 8 bit sabit noktalı işaretli sayılar kullanılmıştır), filtre gerçeklemesi esnasında daha az FPGA alanıkullanılmasını sağlarken, filtre karakterini bozmamıştır.

• Xilinx XC3S500E FPGA’sı üzerinde 20 adet hazır çarpma bloğu bulundurduğundan 19. dereceden bir FIR filtre, en kötü 20 MHz gibi bir maksimum örnekleme frekansı ile doğrudan gerçeklenebilir. Pipeline yapılarıkullanarak örnekleme frekansı 100 MHz üzerine çıkartılabilir.

Sonuç