Contents. Fourier dönüşümü örnekleri 1

Benzer belgeler
DENEY 1: Matlab de Temel Haberleşme Sistemleri Uygulamaları

SİNYALLER VE SİSTEMLERİN MATLAB YARDIMIYLA BENZETİMİ

BÖLÜM 1.A Bir sisteme belli frekanslar arasında rastgele bir gürültü karıştığını varsayalım. Örneğin

DENEY 4: Sayısal Filtreler

Sakarya Üniversitesi Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Bölümü

DENEY 4: Sayısal Filtreler

Algoritmalar ve Programlama. DERS - 4 Yrd. Doç. Dr. Ahmet SERBES

Kırım Filtresi ve Alt Örnekleme

ANALOG FİLTRELEME DENEYİ

Deney 5 : Ayrık Filtre Tasarımı. Prof. Dr. Aydın Akan Bahattin Karakaya Umut Gündoğdu Yeşim Hekim Tanç

Matlab da 2-boyutlu Grafik Çizimi. Arş. Gör. Mehmet Ali ÜSTÜNER

EEM 451 Dijital Sinyal İşleme LAB 3

ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ İLETİŞİM LABORATUARI SAYISAL FİLTRELER

ELN3052 OTOMATİK KONTROL MATLAB ÖRNEKLERİ - 2 TRANSFER FONKSİYONU, BLOK ŞEMA VE SİSTEM BENZETİMİ UYGULAMALARI:

Analog Alçak Geçiren Filtre Karakteristikleri

Kodumuzu yazmaya zaman eksenini, açısal frekans ekseni ve örnekte verilen M değerlerini bir vektör içinde tanımlayarak başlayalım.

Bu soruda eğik şekilde belli bir hızda ve değişik açılarda atılan ve sonrasında yerden seken bir topun hareketini ifade eden kod yazılacaktır.

AYRIK-ZAMANLI KONTROL (~ DİJİTAL KONTROL)

TIBBİ ENSTRUMANTASYON TASARIM VE UYGULAMALARI SAYISAL FİLTRELER

MATLAB'dan doğrusal sistemlerin matematiksel modellemesi için transfer fonksiyonu, sıfırkutup-kazanç, durum uzayı vs. gösterimler kullanılabilir.

DENEY 3: DTMF İŞARETLERİN ÜRETİLMESİ VE ALGILANMASI

Sensörlerin ölçümlerinde bir miktar hata payı olması. Ölçümlere gürültü karışması.

MATLAB DA SAYISAL ANALİZ DOÇ. DR. ERSAN KABALCI

Direnç(330Ω), bobin(1mh), sığa(100nf), fonksiyon generatör, multimetre, breadboard, osiloskop. Teorik Bilgi

SAYISAL İŞARET İŞLEME LABORATUARI LAB 5: SONSUZ DÜRTÜ YANITLI (IIR) FİLTRELER

Frekans domain inde İşlemler. BMÜ-357 Sayısal Görüntü İşleme Yrd. Doç. Dr. İlhan AYDIN

STEM komutu ayrık zamanlı sinyalleri veya fonksiyonları çizmek amacı ile kullanılır. Bu komutun en basit kullanım şekli şöyledir: stem(x,y).

HAFTA 11: ÖRNEKLEME TEOREMİ SAMPLING THEOREM. İçindekiler

Sayısal Filtre Tasarımı

Güç Spektral Yoğunluk (PSD) Fonksiyonu

B ol um 5 ANALOG IS ARETLER IN SPEKTRUM ANAL IZ I

EEM 202 DENEY 9 Ad&Soyad: No: RC DEVRELERİ-II DEĞİŞKEN BİR FREKANSTA RC DEVRELERİ (FİLTRELER)

Ayrık zamanlı sinyaller için de ayrık zamanlı Fourier dönüşümleri kullanılmatadır.

BMÜ-421 Benzetim ve Modelleme MATLAB SIMULINK. İlhan AYDIN

Görüntü İşleme Dersi Ders-8 Notları

Bilgisayar Programlama MATLAB

Sistem Dinamiği. Bölüm 9- Frekans Domeninde Sistem Analizi. Doç.Dr. Erhan AKDOĞAN

DENEY 5: FREKANS CEVABI VE BODE GRAFİĞİ

Çukurova Üniversitesi Biyomedikal Mühendisliği

MATLAB Semineri. EM 314 Kontrol Sistemleri 1 GÜMMF Elektrik-Elektronik Müh. Bölümü. 30 Nisan / 1 Mayıs 2007

EEM HABERLEŞME TEORİSİ NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ

AST415 Astronomide Sayısal Çözümleme - I. 7. Grafik Çizimi

ADIYAMAN ÜNĠVERSĠTESĠ MÜHENDĠSLĠK FAKÜLTESĠ ELEKTRĠK-ELEKTRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ DEVRE ANALĠZĠ LABORATUVARI-II DENEY RAPORU

İ. Ü. Elektrik&Elektronik Müh. Böl. İŞARET İŞLEME ve UYGULAMALARI

Bilgisayar Programlama MATLAB

AKÜ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ

İşaret ve Sistemler. Ders 1: Giriş

Ders İçerik Bilgisi. Sistem Davranışlarının Analizi. Dr. Hakan TERZİOĞLU. 1. Geçici durum analizi. 2. Kalıcı durum analizi. MATLAB da örnek çözümü

Yukarıdaki program çalıştırıldığında aşağıdaki sonucu elde ederiz.

DENEY-2 ANİ DEĞER, ORTALAMA DEĞER VE ETKİN DEĞER

Mekanik Titreşimler ve Kontrolü. Makine Mühendisliği Bölümü

Sistem Dinamiği ve Kontrolü Bütünleme 26 Ocak 2017 Süre: 1.45 Saat. Adı ve Soyadı : İmzası : Öğrenci Numarası :

Grafik Komutları. Grafik Türleri plot: çizgisel grafikler bar: sütun bar şeklindeki grafikler stem: sütun çizgisel grafikler pie: pasta grafikleri

Sürekli-zaman İşaretlerin Ayrık İşlenmesi

Wavelet Transform and Applications. A. Enis Çetin Bilkent Üniversitesi

Ders 5 : MATLAB ile Grafik Uygulamaları

Sayısal Modülasyon Deneyi

ALTERNATİF AKIMIN DENKLEMİ

MAK1010 MAKİNE MÜHENDİSLİĞİ BİLGİSAYAR UYGULAMALARI

5. Elektriksel Büyüklüklerin Ölçülebilen Değerleri

ELEKTRİK ENERJİ SİSTEMLERİNDE OLUŞAN HARMONİKLERİN FİLTRELENMESİNİN BİLGİSAYAR DESTEKLİ MODELLENMESİ VE SİMÜLASYONU

Tek-faz Yarım Dalga Doğrultucu

RF MİKROELEKTRONİK GÜRÜLTÜ

Dijital Sinyal İşleme (COMPE 463) Ders Detayları

DY-45 OSĐLOSKOP KĐTĐ. Kullanma Kılavuzu

DENEY 3: DFT-Discrete Fourier Transform. 2 cos Ω d. 2 sin Ω d FOURIER SERİSİ

SAYISAL İŞARET İŞLEME LABORATUARI LAB 3: SONLU DÜRTÜ YANITLI (FIR) FILTRELER

LT SPlCE. 1.Kurulumu: Google dan LTSpice aratıp, Linear Technolog nin anasayfasına gidiniz.

DY-45 OSİLOSKOP V2.0 KİTİ

EHM381 ANALOG HABERLEŞME DÖNEM PROJESİ

Sayısal Sinyal İşleme (EE 306 ) Ders Detayları

DENEY 7 Pasif Elektronik Filtreler: Direnç-Kondansatör (RC) ve Direnç-Bobin (RL) Devreleri

Sakarya Üniversitesi Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Bölümü

ZAMAN VE FREKANS DOMENLERİNDE ÖRNEKLEME

Soru 1. Genel Bilgiler...1 Soru 1A...2 Soru 1B...2 Soru 1D...3 Soru 1C...3 Soru 2. Genel Bilgiler...3 Soru 2A...4

ANALOG ELEKTRONİK - II. Opampla gerçekleştirilen bir türev alıcı (differantiator) çalışmasını ve özellikleri incelenecektir.

EEM HABERLEŞME TEORİSİ NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ

Otomatik Kontrol (Doğrusal sistemlerde Kararlılık Kriterleri) - Ders sorumlusu: Doç.Dr.HilmiKuşçu

Şekil-1. Doğru ve Alternatif Akım dalga şekilleri

İleri Diferansiyel Denklemler

Bölüm 12 İşlemsel Yükselteç Uygulamaları

Mat-Lab ile Kök Yer Eğrileri

Kontrol Sistemlerinin Tasarımı

BÖLÜM 6 LAPLACE DÖNÜŞÜMLERİ

GÖRÜNTÜ İŞLEME UYGULAMALARI. Arş. Gör. Dr. Nergis TURAL POLAT

DENEY 7 DALGALI GERİLİM ÖLÇÜMLERİ - OSİLOSKOP

MATLAB İLE PROGRAMLAMAYA GİRİŞ. Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü

ANALOG İLETİŞİM. 3. Kanal ayrımı sağlar. Yani modülasyon sayesinde aynı iletim hattında birden çok bilgi yollama olanağı sağlar.

BÖLÜM-9 SİSTEM HASSASİYETİ

T.C. PAMUKKALE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ ANABİLİM DALI

İŞARET ve SİSTEMLER (SIGNALS and SYSTEMS) Dr. Akif AKGÜL oda no: 303 (T4 / EEM)

Şeklinde ifade edilir. Çift yan bant modülasyonlu işaret ise aşağıdaki biçimdedir. ile çarpılırsa frekans alanında bu sinyal w o kadar kayar.

Bölüm 2. İşaretler ve Doğrusal Sistemler

Alternatif Akım; Zaman içerisinde yönü ve şiddeti belli bir düzen içerisinde değişen akıma alternatif akım denir.

RF MİKROELEKTRONİK TEMEL BİLGİLER

Contents. Doğrusal sistemler için kontrol tasarım yaklaşımları

Toplam İkinci harmonik. Temel Üçüncü harmonik. Şekil 1. Temel, ikinci ve üçüncü harmoniğin toplamı

SAYISAL ANALİZ. Doç.Dr. Cüneyt BAYILMIŞ. Sayısal Analiz. Doç.Dr. Cüneyt BAYILMIŞ

Transkript:

Contents Fourier dönüşümü örnekleri 1 Fourier dönüşümü alma ve yorumlama Fourier dönüşümü örnekleri 2 Filtre tasarımı örnekleri Alçak geçirgen filtre tasarımı Tasarlanan filtrenin özellikleri ve ilgili çizimler Tasarlanan filtrenin kullanımı (Düşük frekanslı giriş) Tasarlanan filtrenin kullanımı (Kesim frekansında giriş) Tasarlanan filtrenin kullanımı (Yüksek frekansta giriş) Tasarlanan filtrenin kullanımı (Artan frekanslı giriş) Tasarlanan filtrenin kullanımı (Kare dalga) Yüksek geçirgen filtre tasarımı Tasarlanan filtrenin özellikleri ve ilgili çizimler Tasarlanan filtrenin kullanımı (Düşük frekanslı giriş) Tasarlanan filtrenin kullanımı (Kesim frekansında giriş) Tasarlanan filtrenin kullanımı (Yüksek frekansta giriş) Tasarlanan filtrenin kullanımı (Artan frekanslı giriş) Tasarlanan filtrenin kullanımı (Kare dalga) Alternatif filtre türleri Alternatif filtre tasarım fonksiyonları Fourier dönüşümü örnekleri 1 MATLAB'da ayrık zamanlı Fourier dönüşümü için Fast Fourier Transform (FFT) algoritması kullanılır. Fourier dönüşümünün nasıl yapıldığını ve bazı örnek kullanımlarını görelim. Önce en basitinden bir sinüs sinyali oluşturalım ve Fourier dönüşümüne bakalım. fs = 1000 % Örnekleme frekansı fs Ts = 1/fs % Öernekleme periyodu Ts fu = 50 % Oluşturacağımız sinyalin frekansı (fs/2'den küçük olmalı!) fs = 1000 Ts = 1.0000e-003 fu = 50 t = 0:Ts:5/fu; % Zaman vektörü u1 = sin(2*pi*fu*t); % Frekansı fu olan sinüs

Oluşturduğumuz sinyali çizdirelim: plot(t,u1,'linewidth',2); title([num2str(fu) ' Hz lik sinüs sinyali']); xlabel('zaman (s)'); Fourier dönüşümü alma ve yorumlama MATLAB'da Fourier dönüşümü için fft komutu kullanılır. Oluşturduğumuz sinyalin Fourier dönüşümü alalım: U1 = fft(u1) U1 = Columns 1 through 5-0.0000 0.0064-0.2043i 0.0290-0.4652i 0.0850-0.9078i 0.2623-2.0974i Columns 6 through 10 7.7508-49.4343i -0.5343 + 2.8295i -0.3249 + 1.4685i -0.2590 + 1.0193i -0.2274 + 0.7910i Columns 11 through 15-0.2091 + 0.6506i -0.1974 + 0.5543i -0.1894 + 0.4835i -0.1835 + 0.4288i -0.1791 + 0.3850i Columns 16 through 20-0.1758 + 0.3490i -0.1731 + 0.3186i -0.1709 + 0.2926i -0.1692 + 0.2699i -0.1677 + 0.2500i

Columns 21 through 25-0.1665 + 0.2322i -0.1655 + 0.2162i -0.1646 + 0.2017i -0.1638 + 0.1885i -0.1632 + 0.1764i Columns 26 through 30-0.1626 + 0.1651i -0.1621 + 0.1547i -0.1616 + 0.1449i -0.1613 + 0.1358i -0.1609 + 0.1272i Columns 31 through 35-0.1606 + 0.1190i -0.1603 + 0.1112i -0.1601 + 0.1038i -0.1599 + 0.0968i -0.1597 + 0.0900i Columns 36 through 40-0.1595 + 0.0835i -0.1593 + 0.0772i -0.1592 + 0.0711i -0.1591 + 0.0652i -0.1589 + 0.0594i Columns 41 through 45-0.1588 + 0.0538i -0.1588 + 0.0483i -0.1587 + 0.0430i -0.1586 + 0.0377i -0.1586 + 0.0325i Columns 46 through 50-0.1585 + 0.0274i -0.1585 + 0.0223i -0.1584 + 0.0173i -0.1584 + 0.0123i -0.1584 + 0.0074i Columns 51 through 55-0.1584 + 0.0025i -0.1584-0.0025i -0.1584-0.0074i -0.1584-0.0123i -0.1584-0.0173i Columns 56 through 60-0.1585-0.0223i -0.1585-0.0274i -0.1586-0.0325i -0.1586-0.0377i -0.1587-0.0430i Columns 61 through 65-0.1588-0.0483i -0.1588-0.0538i -0.1589-0.0594i -0.1591-0.0652i -0.1592-0.0711i Columns 66 through 70-0.1593-0.0772i -0.1595-0.0835i -0.1597-0.0900i -0.1599-0.0968i -0.1601-0.1038i Columns 71 through 75-0.1603-0.1112i -0.1606-0.1190i -0.1609-0.1272i -0.1613-0.1358i -0.1616-0.1449i Columns 76 through 80

-0.1621-0.1547i -0.1626-0.1651i -0.1632-0.1764i -0.1638-0.1885i -0.1646-0.2017i Columns 81 through 85-0.1655-0.2162i -0.1665-0.2322i -0.1677-0.2500i -0.1692-0.2699i -0.1709-0.2926i Columns 86 through 90-0.1731-0.3186i -0.1758-0.3490i -0.1791-0.3850i -0.1835-0.4288i -0.1894-0.4835i Columns 91 through 95-0.1974-0.5543i -0.2091-0.6506i -0.2274-0.7910i -0.2590-1.0193i -0.3249-1.4685i Columns 96 through 100-0.5343-2.8295i 7.7508 +49.4343i 0.2623 + 2.0974i 0.0850 + 0.9078i 0.0290 + 0.4652i Column 101 0.0064 + 0.2043i U1'in karmaşık sayılardan oluştuğuna dikkat ediniz. Genel olarak bir fonksiyonun Fourier dönüşümünü aldığımızda sonuç karmaşık çıkacaktır. Kompleks düzlemde katsayıları çizdirebiliriz: plot(u1,'o'); % Karmaşık düzlemde katsayıları çizdir, araları çizgi lle % birleştirme, tek tek noktaları o ile işaretle. title('kompleks düzlemde Fourier katsayıları'); xlabel('re'); ylabel('im');

Ancak yukarıdaki çizimden bir anlam çıkarmak genelde zordur. Bunun yerine dönüşümden elde ettiğimiz karmaşık katsayıların büyüklüğüne bakmak genelde daha anlamlıdır: plot(abs(u1)); Burada katsayıların karşılık geldikleri frekansları etiketlemek şekli daha anlamlı kılacaktır. Katsayılar sırasıyla 0'dan fs'ye kadar olan frekansları temsil eder. O halde bir frekans vektörü oluşturalım ve buna karşı çizdirelim: f = linspace(0,fs,length(u1)); % Frekans vektörünü oluştur

% Çizdir plot(f,abs(u1)); title('fourier katsayılarının büyüklüğü'); xlabel('frekans (Hz)'); fs/2'den sonraki kısmın, önceki kısmın ayna görüntüsü olduğuna dikkat ediniz. Dolayısıyla sadece [0,fs/2]'lik kısmı görmemiz yeterli, diğer kısım ekstradan bilgi içermiyor. O halde sadece yarısını çizdirelim: n = floor(length(f)/2); % Vektörün uzunluğunun yarısı (buçuklu çıkma % ihtimaline karşı en küçük tamsayıyı aldık. % Çizdir plot(f(1:n),abs(u1(1:n)),'linewidth',2); title('fourier katsayılarının büyüklüğü'); xlabel('frekans (Hz)');

Fourier dönüşümünün bir sinyalin bünyesindeki frekans bileşenlerini ortaya çıkardığını hatırlayın. Yukarıdaki dönüşüm tek frekanslı bir sinüse ait olduğu için o frekansta tepe yapan bir şekil elde ettik. Fourier dönüşümü örnekleri 2 Üç sinüsoidal fonksiyon içeren bir sinyal oluşturalım: fs = 1000; % Örnekleme frekansı fs Ts = 1/fs; % Öernekleme periyodu Ts % Oluşturacağımız sinyaldeki frekanslar fu1 = 50; fu2 = 100; fu3 = 200; t = 0:Ts:5/fu1; % Zaman vektörü u2 = sin(2*pi*fu1*t)+2*cos(2*pi*fu2*t)+3*sin(2*pi*fu3*t); % Sinyali oluştur % Çizdir plot(t,u2,'linewidth',2); title([num2str(fu1) ', ' num2str(fu2) ' ve ' num2str(fu3)... 'Hz lik sinüsoidal sinyallerin toplamı']); xlabel('zaman (s)');

Fourier dönüşümünü elde et ve büyüklüğünü çizdir U2 = fft(u2); % Dönüşümü al f = linspace(0,fs,length(u2)); % Frekans vektörü n = floor(length(f)/2); % Vektörün uzunluğunun yarısı (buçuklu çıkma % ihtimaline karşı en küçük tamsayıyı aldık. % Dönüşümün büyüklüğünü çizdir plot(f(1:n),abs(u2(1:n)),'linewidth',2); title('fourier katsayılarının büyüklüğü'); xlabel('frekans (Hz)');

Filtre tasarımı örnekleri Bir sinyalin içindeki belirli özelliklere sahip bileşenleri koruyup diğerlerini bastırmak için filtreler kullanabiliriz. Birkaç örnekle filtrelerin nasıl oluşturulduğunu ve kullanıldığını görelim. Önce bir örnekleme frekansı ve periyodu belirleyelim: fs = 5000 % fs = 5000 Hz Ws = 2*pi*fs % Radyan cinsinden örnekleme frekansı = Ws Ts = 1/fs % Ts = 2e-4 saniye fs = 5000 Ws = 3.1416e+004 Ts = 2.0000e-004 Alçak geçirgen filtre tasarımı Filtre derecesi ve kesim frekansını belirleyelim: N = 5 % Derece N fc = 100 % Kesim frekansı fc

Wc = 2*pi*fc % Radyan cinsinden kesim frekansı = Wc Wn = Wc/(Ws/2) % Wc'nin Ws/2'ye göre normalize edilmişi N = 5 fc = 100 Wc = 628.3185 Wn = 0.0400 Not: 2*pi terimleri birbirini götüreceğinden Wn'yi aşağıdaki gibi de elde edebilirdik: Wn = fc/(fs/2) Wn = 0.0400 Derececesi N, normalize kesim frekansı Wn olan alçak geçirgen bir Butterwoth filtresi tasarlayalım, transfer fonksiyonunun pay (num) ve payda (den) katsayılarını elde edelim: [num, den] = butter(n, Wn, 'low'); % Filtreyi tasarla Tasarlanan filtrenin özellikleri ve ilgili çizimler Filtreye karşılık gelen sistemi oluştur: sysfilt = tf(num,den,ts) Transfer function: 8.042e-007 z^5 + 4.021e-006 z^4 + 8.042e-006 z^3 + 8.042e-006 z^2 + 4.021e-006 z + 8.042e-007 ----------------------------------------------------------------------- ----------------- z^5-4.593 z^4 + 8.455 z^3-7.795 z^2 + 3.599 z - 0.6657

Sampling time: 0.0002 Filtrenin frekans cevabını çizdir: bode(sysfilt); Daha kolay anlamak için frekansı Hz olarak ayarlayalım (Alternatif olarak şekle sağ tıklayıp -> Properties... -> Units sekmesinden de aşağıdaki ayarı yapabiliriz): P = bodeoptions P.FreqUnits = 'Hz'; % Frekansı Hz olarak göster bode(sysfilt,p); % Kılavuz çizgiler P = Title: [1x1 struct] XLabel: [1x1 struct] YLabel: [1x1 struct] TickLabel: [1x1 struct] Grid: 'off' XLim: {[1 10]} XLimMode: {'auto'} YLim: {[1 10]} YLimMode: {'auto'} IOGrouping: 'none' InputLabels: [1x1 struct] OutputLabels: [1x1 struct] InputVisible: {'on'} OutputVisible: {'on'} FreqUnits: 'rad/sec' FreqScale: 'log' MagUnits: 'db' MagScale: 'linear'

MagVisible: 'on' MagLowerLimMode: 'auto' MagLowerLim: 0 PhaseUnits: 'deg' PhaseVisible: 'on' PhaseWrapping: 'off' PhaseMatching: 'off' PhaseMatchingFreq: 0 PhaseMatchingValue: 0 Filtrenin kutup ve sıfırları: pzmap(sysfilt);

Tüm kutuplar birim çemberin içinde olduğu için filtrenin kararlı olduğu açıktır. Filtrenin birim dürtü cevabı: impulse(sysfilt); % Birim dürtü cevabı da filtrenin kararlı olduğu gerçeğini destekler % niteliktedir. Filtrenin birim basamak cevabı: step(sysfilt);

Tasarlanan filtrenin kullanımı (Düşük frekanslı giriş) Giriş için düşük frekanslı (10 Hz) bir sinüs sinyali üretelim: fu = 10; t = 0:Ts:10/fu; u = sin(2*pi*10*t); Sinyali oluşturduğumuz filtreden geçirerek çıkışı elde edelim: y = filter(num,den,u); Giriş ve çıkış sinyallerini çizdirelim plot(t,u,t,y,'linewidth',1.5); title('giriş ve filtrelenmiş çıkış'); xlabel('t (s)'); legend('10 Hz sinüs giriş','çıkış'); Tasarlanan filtrenin kullanımı (Kesim frekansında giriş) Giriş için kesim frekansında (100 Hz) bir sinüs sinyali üretelim: fu = 100; t = 0:Ts:10/fu; u = sin(2*pi*fc*t); Sinyali oluşturduğumuz filtreden geçirerek çıkışı elde edelim: y = filter(num,den,u);

Giriş ve çıkış sinyallerini çizdirelim plot(t,u,t,y,'linewidth',1.5); title('giriş ve filtrelenmiş çıkış'); xlabel('t (s)'); legend('100 Hz sinüs giriş','çıkış'); Tasarlanan filtrenin kullanımı (Yüksek frekansta giriş) Giriş için kesim frekansında (200 Hz) bir sinüs sinyali üretelim: fu = 200; t = 0:Ts:10/fu; u = sin(2*pi*200*t); Sinyali oluşturduğumuz filtreden geçirerek çıkışı elde edelim: y = filter(num,den,u); Giriş ve çıkış sinyallerini çizdirelim plot(t,u,t,y,'linewidth',1.5); title('giriş ve filtrelenmiş çıkış'); xlabel('t (s)'); legend('200 Hz sinüs giriş','çıkış');

Tasarlanan filtrenin kullanımı (Artan frekanslı giriş) Artan frekanslı sinüs (chirp sinyali) t = 0:Ts:1; u = chirp(t,10,0.9,200); Sinyali oluşturduğumuz filtreden geçirerek çıkışı elde edelim: y = filter(num,den,u); Giriş ve çıkış sinyallerini çizdirelim subplot(2,1,1); plot(t,u,'linewidth',1.5); title('10-200 Hz artan frekaslı sinüs'); xlabel('t (s)'); subplot(2,1,2); plot(t,y,'linewidth',1.5); %% title('filtrelenmiş Çıkış'); xlabel('t (s)');

Tasarlanan filtrenin kullanımı (Kare dalga) Frekansı 20 Hz olan bir kare dalga fu = 30; t = 0:Ts:10/fu; u = square(2*pi*fu*t,50); Sinyali oluşturduğumuz filtreden geçirerek çıkışı elde edelim: y = filter(num,den,u); Giriş ve çıkış sinyallerini çizdirelim subplot(2,1,1); plot(t,u,'linewidth',1.5); title('20 Hz Kare Dalga'); xlabel('t (s)'); subplot(2,1,2); plot(t,y,'linewidth',1.5); title('filtrelenmiş Çıkış'); xlabel('t (s)');

Yüksek geçirgen filtre tasarımı Filtre derecesi ve kesim frekansı: N = 5 % Derece fc = 100 % Kesim frekansı Wc = 2*pi*fc % Radyan cinsinden kesim frekansı = Wc Wn = Wc/(Ws/2) % Wc'nin Ws/2'ye göre normalize edilmişi N = 5 fc = 100 Wc = 628.3185 Wn = 0.0400 Not: 2*pi terimleri birbirini götüreceğinden Wn'yi aşağıdaki gibi de elde edebilirdik: Wn = fc/(fs/2) Wn =

0.0400 Derececesi N, normalize kesim frekansı Wn olan yüksek geçirken bir Butterwoth filtresi tasarlayalım, transfer fonksiyonunun pay (num) ve payda (den) katsayılarını elde edelim: [num, den] = butter(n, Wn, 'high'); % Filtreyi tasarla Tasarlanan filtrenin özellikleri ve ilgili çizimler Filtreye karşılık gelen sistemi oluştur: sysfilt = tf(num,den,ts) Transfer function: 0.8159 z^5-4.079 z^4 + 8.159 z^3-8.159 z^2 + 4.079 z - 0.8159 ----------------------------------------------------------------- z^5-4.593 z^4 + 8.455 z^3-7.795 z^2 + 3.599 z - 0.6657 Sampling time: 0.0002 Filtrenin frekans cevabını çizdir: subplot(1,1,1); % Yeniden tek şekil moduna geç bode(sysfilt); % Frekans cevabı Daha kolay anlamak için frekansı Hz olarak ayarlayalım (Alternatif olarak şekle sağ tıklayıp -> Properties... -> Units sekmesinden de aşağıdaki ayarı yapabiliriz): P = bodeoptions P.FreqUnits = 'Hz'; % Frekansı Hz olarak göster

bode(sysfilt,p); % Kılavuz çizgiler P = Title: [1x1 struct] XLabel: [1x1 struct] YLabel: [1x1 struct] TickLabel: [1x1 struct] Grid: 'off' XLim: {[1 10]} XLimMode: {'auto'} YLim: {[1 10]} YLimMode: {'auto'} IOGrouping: 'none' InputLabels: [1x1 struct] OutputLabels: [1x1 struct] InputVisible: {'on'} OutputVisible: {'on'} FreqUnits: 'rad/sec' FreqScale: 'log' MagUnits: 'db' MagScale: 'linear' MagVisible: 'on' MagLowerLimMode: 'auto' MagLowerLim: 0 PhaseUnits: 'deg' PhaseVisible: 'on' PhaseWrapping: 'off' PhaseMatching: 'off' PhaseMatchingFreq: 0 PhaseMatchingValue: 0 Filtrenin kutup ve sıfırları pzmap(sysfilt);

Filtrenin birim dürtü cevabı impulse(sysfilt); Filtrenin birim basamak cevabı step(sysfilt);

Tasarlanan filtrenin kullanımı (Düşük frekanslı giriş) Giriş için düşük frekanslı (10 Hz) bir sinüs sinyali üretelim: fu = 10; t = 0:Ts:10/fu; u = sin(2*pi*10*t); Sinyali oluşturduğumuz filtreden geçirerek çıkışı elde edelim: y = filter(num,den,u); Giriş ve çıkış sinyallerini çizdirelim plot(t,u,t,y,'linewidth',1.5); title('giriş ve filtrelenmiş çıkış'); xlabel('t (s)'); legend('10 Hz sinüs giriş','çıkış');

Tasarlanan filtrenin kullanımı (Kesim frekansında giriş) Giriş için kesim frekansında (100 Hz) bir sinüs sinyali üretelim: fu = 100; t = 0:Ts:10/fu; u = sin(2*pi*fc*t); Sinyali oluşturduğumuz filtreden geçirerek çıkışı elde edelim: y = filter(num,den,u); Giriş ve çıkış sinyallerini çizdirelim plot(t,u,t,y,'linewidth',1.5); title('giriş ve filtrelenmiş çıkış'); xlabel('t (s)'); legend('100 Hz sinüs giriş','çıkış');

Tasarlanan filtrenin kullanımı (Yüksek frekansta giriş) Giriş için kesim frekansında (200 Hz) bir sinüs sinyali üretelim: fu = 200; t = 0:Ts:10/fu; u = sin(2*pi*200*t); Sinyali oluşturduğumuz filtreden geçirerek çıkışı elde edelim: y = filter(num,den,u); Giriş ve çıkış sinyallerini çizdirelim plot(t,u,t,y,'linewidth',1.5); title('giriş ve filtrelenmiş çıkış'); xlabel('t (s)'); legend('200 Hz sinüs giriş','çıkış');

Tasarlanan filtrenin kullanımı (Artan frekanslı giriş) Artan frekanslı sinüs (chirp sinyali) t = 0:Ts:1; u = chirp(t,10,0.9,200); Sinyali oluşturduğumuz filtreden geçirerek çıkışı elde edelim: y = filter(num,den,u); Giriş ve çıkış sinyallerini çizdirelim subplot(2,1,1); plot(t,u,'linewidth',1.5); title('10-200 Hz artan frekaslı sinüs'); xlabel('t (s)'); subplot(2,1,2); plot(t,y,'linewidth',1.5); %% title('filtrelenmiş Çıkış'); xlabel('t (s)');

Tasarlanan filtrenin kullanımı (Kare dalga) Frekansı 20 Hz olan bir kare dalga fu = 30; t = 0:Ts:10/fu; u = square(2*pi*fu*t,50); Sinyali oluşturduğumuz filtreden geçirerek çıkışı elde edelim: y = filter(num,den,u); Giriş ve çıkış sinyallerini çizdirelim subplot(2,1,1); plot(t,u,'linewidth',1.5); title('20 Hz Kare Dalga'); xlabel('t (s)'); subplot(2,1,2); plot(t,y,'linewidth',1.5); %% title('filtrelenmiş Çıkış'); xlabel('t (s)');

Alternatif filtre türleri Alçak ve yüksek geçirgen filtrelerin haricinde bant geçirgen ve bant durduran filtreler de tasarlanabilir. Detaylar için ilgili filtre komutunun açıklamalarına bakabilirsiniz (Mesela doc signal/butter yazın.) Alternatif filtre tasarım fonksiyonları butter fonksiyonu dışında filtre tasarımı için kullanılabilecek pek çok fonksiyon vardır, örneğin cheby1, cheby2, ellip vs. Bunlarla aynı tasarım amaçları (alçak geçirgen, yüksek geçirgen, bant geçirgen/durduran) gerçekleştiribilir ancak hepsinin kendine özgü güçlü ve zayıf yanları vardır. Detaylı bilgi için her birinin yardım dosyasına doc veya help komutu ile ulaşabilirsizin. Bu tür fonksiyonların tümünü görmek için: doc signal -> Functions: By Category -> Digital Filtersyolunu izleyin. Örnek olarak butter, cheby1, cheby2 ve ellip fonksiyonları tarafından üretilen, aynı derece ve kesim frekansına sahip alçak geçirgen filtrelerin frekans cevabını kıyaslayalım. N = 5; % Filtrelerin derecesi fs = 5000; % Örnekleme frekansı fs = 5000 Hz fc = 1000; % Kesim frekansı fc = 1000 Hz Wn = fc/(fs/2); % Normalize kesim frekansı Alçak geçirgen Butterworth filtresi tasarımı [numb, denb] = butter(n, Wn); sysb = tf(numb,denb,ts);

Alçak geçirgen Chebyshev I filtresi tasarımı Rpass = 1; % Geçirme bandındaki dalgalanma sınırı (db) [numc1, denc1] = cheby1(n, Rpass, Wn); sysc1 = tf(numc1,denc1,ts); Alçak geçirgen Chebyshev II filtresi tasarımı Rstop = 50; % Durdurma bandındaki dalgalanma sınırı (db) [numc2, denc2] = cheby2(n, Rstop, Wn); sysc2 = tf(numc2,denc2,ts); Alçak geçirgen eliptik filtresi tasarımı [nume, dene] = ellip(n, Rpass, Rstop, Wn); syse = tf(nume,dene,ts); Frekans cevaplarının büyüklüklerini kıyaslayalım subplot(2,2,1); P = bodeoptions; P.FreqUnits = 'Hz'; % Frekansı Hz olarak göster bodemag(sysb,p); ylim([-200 10]); title('butterworth'); subplot(2,2,2); P = bodeoptions; P.FreqUnits = 'Hz'; % Frekansı Hz olarak göster bodemag(sysc1,p); ylim([-200 10]); title('chebyshev I'); subplot(2,2,3); P = bodeoptions; P.FreqUnits = 'Hz'; % Frekansı Hz olarak göster bodemag(sysc2,p); ylim([-200 10]); title('chebyshev II'); subplot(2,2,4); P = bodeoptions; P.FreqUnits = 'Hz'; % Frekansı Hz olarak göster bodemag(syse,p); ylim([-200 10]); title('eliptik');

Published with MATLAB 7.9