Professional Documents
Culture Documents
2-Sinyaller Ve Sistemler PDF
2-Sinyaller Ve Sistemler PDF
BENZETİMİ
2.1. Sinyal Üretimi
Sürekli zamanlı bir sinyal olan X c (t ) ’yi N boyutlu bir vektör ile örneklenmiş ve kuantalanmış
(bölütlenmiş) olarak [X c (t 0 ) X c (t1 ) ... X c (t N -1)] şeklinde ifade edilebilir. Burada sinyalin
zaman aralığı to ile t N −1 arasındadır. Örnekleme aralığı Ts =t i+1 -t i ifadesiyle belirtilmektedir.
Örnekleme aralığı yeteri kadar büyük seçilmelidir ki MATLAB’ de sinyal sürekli zaman gibi
görülebilsin. Sinyalin en büyük frekansının yaklaşık 10 katı bir değer (örnekleme frekansı)
işlemler için yeterli olacaktır. Ancak sinyalin fazının çizdirilmesi işleminde alınacak değer
100 katı olması yapılacak işlemin doğruluğunu artıracaktır.
%program ch2_1.m
close all % Ekranda daha önce çizilmiş şekil varsa bu şekilleri kapatır.
clear all % Daha önceden yapılmış bir işlem varsa hafızayı temizler.
clc % Komut penceresi ekranını temizler.
fm=10; % İşaretin frekansı 10 Hz
fs=100*fm; %Sinyalin örnekleme frekansı Hz;
ts=1/fs;
n=[0:(1/fs):1]; % Sinyal 0'dan 1 saniyeye kadar
faz=0; %30
tsy=cos(2*pi*n*fm+faz); % İşaretimiz
plot(n,tsy, 'k' ); %işaretin zaman izgesinde çizimi
title('Cosinus dalgasi')
xlabel('saniye');
ylabel('genlik');
12
Şekil 2.1: Kosinüs Dalgası
+∞
(2.1)
X (e ) = ∫ X c (t )e− jwt dt
jw
−∞
∞
(2.2)
X (e jw ) = ∫
−∞
x(n)e− jwn
Denklem (2.1) Sürekli Zamanlı Fourier Dönüşümü, Denklem (2.2) ise Ayrıklı Zamanlı
Fourier Dönüşümü’ nü göstermektedir. MATLAB’ de kullandığımız dönüşüm ise hem
zamanda hem de frekansta ayrık olduğu için DFT ve IDFT kullanırız.
N −1
2π (2.3)
X (k ) = ∑ x(n)e − jwk n wk = k
n=0 N
1 N −1 (2.4)
x ( n) =
N
∑ X ( k )e
n =0
− jwk n
Denklem (2.3) Ayrık Fourier Dönüşümü (DFT), Denklem (2.4) ise Ters Ayrık Fourier
Dönüşümü (IDFT)’ dür.
13
Bu dönüşüm hesaplamaları maalesef çok masraflı hesaplamalardır. Hızlı Fourier dönüşümü
tekniği, bir yandan hesaplamalar sürerken, bir yaklaşım olarak ilk elde edilen değerlerin
kullanıma sunulduğu bir alternatif yazılım tekniğidir.
%program ch2_2.m
fm=10; % Isaretin frekansi
fs=1000*fm; %Sinyalin ornekleme frekansi
ts=1/fs;
n=[0:(1/fs):1]; % Sinyal 0'dan 1 saniyeye kadar
faz=0 %-60;%30
tsy=sin(2*pi*n*fm+faz); % isaretimiz
% cos((pi/2)-a)=cos(a-(pi/2))
tsyf=fft(tsy)/length(tsy); % Sinyalin frekans izgesinde gösterilimi
tsyfm=abs(tsyf); % Sinyalin fourier dönüşümü yapılınca karmaşık
%faz temizle%
for i=1:(fs+1);
if abs(tsyf(i))<0.01;
tsyf(i)=0;
end
end
tsyfa=angle(tsyf);
figure
SUBPLOT(2,1,1)
plot(tsyfm);
AXIS([0 100 0 1])
title('Sekil 2a');
%text(3000,0.3,'-pi +pi araligi için ')
SUBPLOT(2,1,2)
plot(tsyfa);
AXIS([0 100 -2 2])
title('Sekil 2b');
xlabel('Hertz');
% Sinyalin frekansının bulunması
[A,B]=max(tsyfm(1:(fs/2)));
disp('Sinyalin frekansi')
disp(B-1)
tsyfa(B)
Şekil 2.2.a.’ da sinyalin frekans cevabının mutlak değeri çizilmişken Şekil 2.2.b.’ de faz
cevabı çizilmiştir. Burada dikkat edilmesi gereken husus faz cevabı bulunurken örnekleme
frekansının yeterince büyük seçilmesinin gerekliliğidir.
14
Şekil 2.2 a) Sinyalin Frekans Cevabının Mutlak Değeri b) Sinyalin Faz Cevabı
Süzgeçler yapılarına göre Sonlu Dürtü Yanıtlı (FIR, Finite Impluse Response) ve Sonsuz
Dürtü Yanıtlı (IIR, Infinite Impluse Response) süzgeçler olmak üzere ikiye ayrılır. Ayrıca
süzgeçler verdikleri frekans cevabına göre Alt Geçiren (LP, Low Pass), Üst Geçiren (HP,
High Pass), Band Geçiren (BP, Band Pass), Band Bastıran ‘Geçirmeyen’ (BR, Band eject),
Tüm Geçiren (AP, All Pass) şeklinde ayrılmaktadır.
Bu bölümde Butterworth süzgeç tasarımı verilecektir. Örnekte verilen tasarım alt geçiren
süzgeç tasarımıdır ancak %’li kısımlar kaldırılarak diğer tasarımların da nasıl yapılabileceği
görülebilir.
15
%program ch2_5.m
close all
[N,Wn]=buttord(wg,wd,gddb,sddb);
[B,A] = BUTTER(N,Wn);
fs=1000;
[H,W] = FREQZ(B,A,1000);
Hg=20*log10(abs(H));
plot(W/pi,Hg)
grid on
AXIS([0 1 -40 5])
xlabel('W/pi');
ylabel('Kazanç,dB');
title('IIR,Buttordworth Alt Geçiren Süzgeç')
figure
plot(abs(H));
grid on
xlabel('Hz');
ylabel('Kazanç');
AXIS([0 1000 0 1.2])
for i=1:(length(H));
if abs(H(i))<0.01;
H(i)=0;
end
end
Ha=angle(H);
figure
plot((Ha/pi)*180);
xlabel('Hz');
ylabel('Faz');
grid on
16
Şekil 2.3: Butterworth Alt Geçiren Süzgecin Kazanç Eğrisi (dB)
17
Şekil 2.5: Butterworth Alt Geçiren Süzgecin Faz Cevabı
Butter: Butterworth sayısal ve analog süzgeç tasarımı N. dereceden alt geçiren süzgeç tasarlar
ve N+1 uzunluğunda B (pay) ve A (payda) süzgeç katsayılarını verir. Katsayılar kaydırmalı
yapı düşünülerek z’ in sıfırın kuvvetinden N+1. kuvvetine kadar gider. Ayrıca kesim frekansı
Wn ‘0.0 < Wn < 1.0’ arasındadır. Burada 1.0 örnekleme hızının yarısını göstermektedir.
Eğer Wn iki bileşenden oluşuyorsa Wn = [W1 W2] 2N dereceli geçiş bandı W1 < W < W2
şeklinde olan süzgeç olur. Ayrıca üst geçiren süzgeç [B,A] = butter(N,Wn,'high') ile bant
durduran süzgeç ise [B,A] = butter(N,Wn,'stop') ile tasarlanabilir.
18
2.3.2. Sonlu Dürtü Yanıtlı Süzgeç Tasarımı
FIR süzgeçlerin getirisi doğrusal faz cevabına sahip olmalarıdır. Ancak bu süzgeç yapılarında
istenen frekans cevabını elde etmek için gerekli olan süzgeç uzunluğu oldukça fazladır.
Dahası FIR tasarımında geçiş bandı ile durdurma bandı arası olan dönüşüm bandı IIR
süzgeçler kadar keskin olmamasıdır.
FIR süzgeçlerde çeşitli tasarım metotları vardır. Bunlar pencereleme, remez algoritması, en
küçük kareler yöntemi gibi çeşitli yöntemlerdir. Bu bölümde bir pencereleme yöntemi ile
yapılan süzgeç tasarımını vereceğiz. Bu tasarım varsayılan olarak hamming pencereleme
yöntemini kullanmaktadır.
%program ch2_6.m
close all
Wn=[0.2]; % Alt geçiren
N=150;
B = FIR1(N,Wn,'low')
fs=1000;
[H,W] = FREQZ(B,1,1000);
Hg=20*log10(abs(H));
plot(W/pi,Hg)
grid on
AXIS([0 1 -100 5])
xlabel('W/pi');
ylabel('Kazanç,dB');
title('SDC,Hamming Pencereleme Yöntemiyle Alt Geçiren Süzgeç Tasarimi')
figure
plot(abs(H));
grid on
xlabel('Hz');
ylabel('Kazanç');
AXIS([0 1000 0 1.2])
for i=1:(length(H));
if abs(H(i))<0.01;
H(i)=0;
end
end
Ha=angle(H);
figure
plot((Ha/pi*180));
xlabel('Hz');
ylabel('Faz');
grid on
19
Şekil 2.6: FIR Alt Geçiren Süzgecin Kazanç eğrisi (dB)
20
Şekil 2.8: FIR Alt Geçiren Süzgecin faz cevabı
Unwrap: Daha önce FIR süzgeç yapısı doğrusal bir faz cevabı verirken IIR yapılar bu cevabı
veremez demiştik. Bu ifade çizdirilen faz grafiklerinde tam olarak görülememektedir. Bu
yüzden unwrap denilen π ’ den büyük atlama fazlarını 2π ’ nin katlarına dolayan işlev
kullanılır ve sürekli hali görüntülenebilir.
Şekil 2.9: Sonlu Dürtü Cevaplı Süzgeç İçin Faz Cevabı Düzenlenmiş Eğri
21
Şekil 2.10: Sonsuz Dürtü cevaplı Süzgeç İçin Faz Cevabı Düzenlenmiş Eğri
close all
clear all
hold on
fs=10000; % pi=5000 %Sinyalin ornekleme frekansi
ts=1/fs;
n=[0:(1/fs):1]; % Sinyal 0'dan 1 saniyeye kadar
22
tsy=A1*cos(2*pi*n*fm1+faz1)+A2*sin(2*pi*n*fm2+faz2); % isaretimiz
%gy2=A2*sin(2*pi*n*fm2+faz2); süzgeçleme isleminden sonra istenen sinyal
tsyf=fft(tsy)/length(tsy);
tsyfm=abs(tsyf);
%faz temizle%
for i=1:(fs+1);
if abs(tsyf(i))<0.1;
tsyf(i)=0;
end
end
tsyfa=angle(tsyf);
%...............
% 0-2 pi araliginda olan izgeyi -pi +pi araligina goturme islemi
tsyfm=fftshift(tsyfm);
tsyfa=fftshift(tsyfa);
eks=[-fs/2:1:fs/2];
gddb=1;
sddb=40;
[N,Wn]=buttord(wg,wd,gddb,sddb);
[B,A] = BUTTER(N,Wn);
%B=0;
[H,W] = FREQZ(B,A,fs/2+1);
eH=flipud(H);
H=[eH(1:fs/2);H];
%...............................
%..............................
figure
subplot(2,1,1);
plot(eks,abs(H));grid on
AXIS([0 500 0 1.2])
%.............faz temizle
23
for i=1:(fs+1);
if abs(H(i))<0.1;
H(i)=0;
end
end
subplot(2,1,2)
plot(eks,angle(H)),grid on
AXIS([0 500 -10 10]);
xlabel('Hertz');
%...................................
SUBPLOT(2,1,2)
plot(eks,(tsyfa/pi)*180);
AXIS([-500 500 -180 180]);
hold on
%.......................
plot(eks,angle(H));grid on
%AXIS([0 500 -5 5]);
xlabel('Hertz');
%.......Süzgeçleme islemi.........
suz_tsy=filter(B,A,tsy);
%.................................
suz_tsyf=fft(suz_tsy)/length(tsy);
for i=1:(fs+1);
if abs(suz_tsyf(i))<0.1;
suz_tsyf(i)=0;
end
end
suz_tsyfa=angle(suz_tsyf);
suz_tsyfm=abs(suz_tsyf);
suz_tsyfm=fftshift(suz_tsyfm);
suz_tsyfa=fftshift(suz_tsyfa);
%.............Sekillerin çizdirimi........
figure
SUBPLOT(2,1,1)
plot(eks,suz_tsyfm);grid on
AXIS([-500 500 0 2]);
24
SUBPLOT(2,1,2)
plot(eks,(suz_tsyfa/pi)*180);
AXIS([-500 500 -180 180]);grid on
xlabel('Hertz')
figure
plot(suz_tsy);
gy2=A2*sin(2*pi*n*fm2+faz2);
hold on
plot(gy2,'r');
AXIS([0 1000 -5 5]);
xlabel('Örnek Sayisi, Toplam 0.1 saniye')
25
Şekil 2.13: Y(F)’İn Genlik Ve Faz Cevabı Üzerine Kullanılan Süzgecin Genlik Ve Faz Cevabının
Gösterimi
26
Şekil 2.15: Süzgeçlenmiş Ve Gerçek İşaretin Gösterimi
27