Professional Documents
Culture Documents
2.1. Sinyal retimi Bu laboratuarda analog sinyaller ve sistemlerin saysal bir ortamda benzetimini yapacamz iin rneklenmi sinyaller zerinde ilem yapacaz. Srekli zamanl bir sinyal olan X c (t ) yi N boyutlu bir vektr ile rneklenmi ve kuantalanm (bltlenmi) 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 arasndadr. rnekleme aral Ts =t i+1 -t i ifadesiyle belirtilmektedir. rnekleme aral yeteri kadar byk seilmelidir ki MATLAB de sinyal srekli zaman gibi grlebilsin. Sinyalin en byk frekansnn yaklak 10 kat bir deer (rnekleme frekans) ilemler iin yeterli olacaktr. Ancak sinyalin faznn izdirilmesi ileminde alnacak deer 100 kat olmas yaplacak ilemin doruluunu artracaktr. rnekleme frekans ile rnekleme zaman aral arasndaki bant f s = 1/ Ts dir. f s = 10 Hz lik bir sinzoidal sinyal aadaki gibi retilir:
%program ch2_1.m close all % Ekranda daha nce izilmi ekil varsa bu ekilleri kapatr. clear all % Daha nceden yaplm bir ilem varsa hafzay temizler. clc % Komut penceresi ekrann 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' ); %iaretin zaman izgesinde izimi title('Cosinus dalgasi') xlabel('saniye'); ylabel('genlik');
12
ekilden grlecei zere 1 saniyede 10 adet kosins dalgas vardr. 2.2. Fourier Dnm Fourier dnm yntemi sinyalin iindeki bilgilerin elde edilebilmesi iin, sinyallerin ilenmesinde kullanlan ok nemli bir yntemdir. Bu bilgiler, Fourier dnm ile MATLAB tarafndan yeniden kullanlmaya uygun bir veri formatna evrilir. Fourier dnmyle bir sinyal, farkl genlik, frekans ve fazlarda kosins ve sins temel bileenlerinin toplam olarak ifade edilir. Her bileenin frekans ve genlii ile birlikte tablolamas, bilgisayarla verilerin ilenmesi srasnda kolaylk salar.
+
X (e ) =
jw
(2.1) (2.2)
X (e jw ) =
Denklem (2.1) Srekli Zamanl Fourier Dnm, Denklem (2.2) ise Ayrkl Zamanl Fourier Dnm n gstermektedir. MATLAB de kullandmz dnm ise hem zamanda hem de frekansta ayrk olduu iin DFT ve IDFT kullanrz.
X (k ) = x(n)e jwk n x ( n) = 1 N
n=0 N 1 n =0
N 1
wk =
2 k N
(2.3) (2.4)
X ( k )e
jwk n
Denklem (2.3) Ayrk Fourier Dnm (DFT), Denklem (2.4) ise Ters Ayrk Fourier Dnm (IDFT) dr.
13
Bu dnm hesaplamalar maalesef ok masrafl hesaplamalardr. Hzl Fourier dnm teknii, bir yandan hesaplamalar srerken, bir yaklam olarak ilk elde edilen deerlerin kullanma sunulduu bir alternatif yazlm tekniidir.
%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 gsterilimi tsyfm=abs(tsyf); % Sinyalin fourier dnm yaplnca karmak %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 iin ') SUBPLOT(2,1,2) plot(tsyfa); AXIS([0 100 -2 2]) title('Sekil 2b'); xlabel('Hertz'); % Sinyalin frekansnn bulunmas [A,B]=max(tsyfm(1:(fs/2))); disp('Sinyalin frekansi') disp(B-1) tsyfa(B)
ekil 2.2.a. da sinyalin frekans cevabnn mutlak deeri izilmiken ekil 2.2.b. de faz cevab izilmitir. Burada dikkat edilmesi gereken husus faz cevab bulunurken rnekleme frekansnn yeterince byk seilmesinin gerekliliidir.
14
ekil 2.2 a) Sinyalin Frekans Cevabnn Mutlak Deeri b) Sinyalin Faz Cevab
Sinyalin Fourier dnmnden sonra sfra yakn saylar olumaktadr. Bu saylarn oluumundan dolay faz cevab anlalr ekilde kmamtr. Bu problemin zlebilmesi iin DFT ileminden sonra sfra yakn saylar sfrlanr. Bu ilem verilen rnekte faz temizleme ile ksmnda gerekletirilmitir.
Szgeler yaplarna gre Sonlu Drt Yantl (FIR, Finite Impluse Response) ve Sonsuz Drt Yantl (IIR, Infinite Impluse Response) szgeler olmak zere ikiye ayrlr. Ayrca szgeler verdikleri frekans cevabna gre Alt Geiren (LP, Low Pass), st Geiren (HP, High Pass), Band Geiren (BP, Band Pass), Band Bastran Geirmeyen (BR, Band eject), Tm Geiren (AP, All Pass) eklinde ayrlmaktadr.
2.3.1. Sonsuz Drt Yantl Szge Yaplar
Bu blmde Butterworth szge tasarm verilecektir. rnekte verilen tasarm alt geiren szge tasarmdr ancak %li ksmlar kaldrlarak dier tasarmlarn da nasl yaplabilecei grlebilir.
15
%program ch2_5.m close all wg=[0.25]; wd=[0.5]; %wg=[0.5] %wd=[0.1] %wg=[0.25 0.5]; %wd=[0.1 0.7]; %wg=[0.25 0.5]; %wd=[0.1 0.7]; gddb=1; sddb=40; % Alt geiren % st geiren % Band geiren % Band Durduran
[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 Geiren Szge') 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
17
Elliptic
szgeleri
de
verilen
MATLAB
fonksiyonlar
ile
buttord: Gei bandnda Rp (dB) deerinden fazla olmayan ve durdurma bandnda en az Rs (dB) deeri kadar g yetirimini veren en dk dereceli saysal Butterworth szgecin derecesini verir. Wg ve Wd gei ve durdurma bandnn 0 ile 1 arasnda normalize edilmi ke frekanslarn gstermektedir. Fonksiyonun k olan Wn ise istenen zellikte szge iin gerekli olan doal frekans vermektedir.
Wp=0.1 Ws=0.2; Wp=0.2 Ws=0.1; Wp=[0.2 0.7], Ws=[0.1,0.8]; Wp=[0.1 0.8], Ws=[0.2 0.7];
Butter: Butterworth saysal ve analog szge tasarm N. dereceden alt geiren szge tasarlar ve N+1 uzunluunda B (pay) ve A (payda) szge katsaylarn verir. Katsaylar kaydrmal yap dnlerek z in sfrn kuvvetinden N+1. kuvvetine kadar gider. Ayrca kesim frekans Wn 0.0 < Wn < 1.0 arasndadr. Burada 1.0 rnekleme hznn yarsn gstermektedir.
Eer Wn iki bileenden oluuyorsa Wn = [W1 W2] 2N dereceli gei band W1 < W < W2 eklinde olan szge olur. Ayrca st geiren szge [B,A] = butter(N,Wn,'high') ile bant durduran szge ise [B,A] = butter(N,Wn,'stop') ile tasarlanabilir.
cheb1ord: Birinci eit Chebyshev szge derecesi bulma cheby: Chebyshev birinci eit saysal ve analog szge tasarm cheb2ord: kinci eit Chebyshev szge derecesi bulma cheby2: Chebyshev ikinci eit saysal ve analog szge tasarm ellipord: Elliptic szge derecesi bulma ellip: Elliptic veya Cauer saysal ve analog szge tasarm
18
FIR szgelerin getirisi dorusal faz cevabna sahip olmalardr. Ancak bu szge yaplarnda istenen frekans cevabn elde etmek iin gerekli olan szge uzunluu olduka fazladr. Dahas FIR tasarmnda gei band ile durdurma band aras olan dnm band IIR szgeler kadar keskin olmamasdr. FIR szgelerde eitli tasarm metotlar vardr. Bunlar pencereleme, remez algoritmas, en kk kareler yntemi gibi eitli yntemlerdir. Bu blmde bir pencereleme yntemi ile yaplan szge tasarmn vereceiz. Bu tasarm varsaylan olarak hamming pencereleme yntemini kullanmaktadr.
%program ch2_6.m close all Wn=[0.2]; % Alt geiren 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 Yntemiyle Alt Geiren Szge 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
20
Unwrap: Daha nce FIR szge yaps dorusal bir faz cevab verirken IIR yaplar bu cevab veremez demitik. Bu ifade izdirilen faz grafiklerinde tam olarak grlememektedir. Bu yzden unwrap denilen den byk atlama fazlarn 2 nin katlarna dolayan ilev kullanlr ve srekli hali grntlenebilir.
Ha=angle(H); komutundan sonra Ha=unwrap(Ha); komutu kullanlarak yaplrsa sonlu ve sonsuz darbe cevapl szgeler iin aadaki ekiller elde edilebilir. Buradan grlebilecei zere sonsuz darbe cevapl szgecin faz erisi dorusal iken bu eri sonlu drt cevapl szge iin dorusala yakn ancak dorusal deildir.
ekil 2.9: Sonlu Drt Cevapl Szge in Faz Cevab Dzenlenmi Eri
21
ekil 2.10: Sonsuz Drt cevapl Szge in Faz Cevab Dzenlenmi Eri
eklinde
verilen
y (t )
sinyalini
ile w g = [ 0.036 0.044] , w d = [ 0.02 0.06] olarak bulunur. Burada nemli bir nokta bu
A1 = 3, A2 = 5, f1 = 10 Hz, f 2 = 300 Hz , 1 = 30, 2 = 0 deerleri iin benzetimini yaparak daha sonradan yk (t ) = A1.cos(2 f1c t ) sinyalini elde etmek iin alt geiren sonlu cevapl szgeten geirelim. Dikkat edilmesi gereken husus szge tasarm yaparken szge tasarm kriterini 0 ile arasnda gz nne alnmasdr. rnein rnekleme frekansmz 10000 olsun ve kullanacamz szge bant geiren olsun ve geirme frekanslar da 180 ile 220 Hz arasnda olsun, bu durumda durdurma frekanslarn da 100 ile 300 seelim. Szgecimizin en byk frekans f s / 2 olacak ekilde almamz gereken deerler basit bir oran orant
tasarmda bile setiimiz deerlere karlk gelen B deerinin ok kk olmasdr. Bu adan dar bantl bir szge tasarmnn ve gerekletirilmesinin zor olduu grlmektedir. rnein tasarmda B nin deeri direkt sfr olarak alnrsa szge almaz.
% Sinyal uretimi ve filtreleme islemi 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 fm1=10; %150 fm2=200; faz1=(pi/6); faz2=0; A1=4; A2=3; % Isaretin frekansi
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); szgeleme isleminden sonra istenen sinyal %.....................Sekil 1: sinyalin zaman izgesinde izimi plot(tsy); AXIS([0 2000 -10 10]); xlabel('rnek sayisi, Toplam 0.2 saniye'); ylabel('Genlik Degeri,Volt'); %..................... 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]; %.......Szge Tasarimi..........(Burada szgein frekans iziminin %gsterimi iin gerekli islemler yapilmaktadir.) wg=[0.036 0.044]; % Band geiren wd=[0.02 0.06]; 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'); %................................... %.......................y(t) sinyali'nin cizimi........... figure SUBPLOT(2,1,1) plot(eks,tsyfm); hold on plot(eks,abs(H));grid on AXIS([-500 500 0 2]) hold on 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');
%.......Szgeleme 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 Kullanlan Szgecin Genlik Ve Faz Cevabnn Gsterimi
26
27