DENEY 7: ÖRNEKLEME, AYRIK SİNYALLERİN SPEKTRUMLARI VE ÖRTÜŞME OLAYI 1. Deneyin Amacı Bu deneyde, sürekli sinyallerin zaman ve frekans uzaylarında örneklenmesi, ayrık sinyallerin spektrumlarının elde edilmesi ve örtüşme olayının öğrenilmesi hedeflenmektedir. 2. Örnekleme ve Ayrık Sinyaller Sürekli sinyallerden zaman ve/veya frekans uzayında ayrık ölçüm verilerinin elde edilmesi işlemine örnekleme denilmektedir. Zaman uzayında ideal örnekleme işleminin blok diyagramı Şekil 1’de görülmektedir. x (t ) xs (t ) ∞ ∫ x (t ) dt x ( n) s −∞ p(t ) = δ (t − nt s ); n = 0,1,… Şekil 1. Örnekleme blok diyagramı. Burada x(t ) zaman uzayında ölçümü alınacak olan sürekli sinyali, p (t ) darbe işaretini, ts örnekleme adım aralığını, x(n) ise örneklenmiş ayrık veriyi göstermektedir. Sürekli sinyalin darbe sinyali ile çarpımı xs (t ) = x(t )δ (t − nts ) ifadesini meydana getirmektedir. Bu ifadenin integral alıcıdan geçmesi neticesinde, örneklenmiş ölçüm verileri için, ∞ x (n) = ∫ x(t )δ (t − nt ) dt = x(t − nt ) s s (1) −∞ elde edilmektedir. Dikkat ediniz ki, örnekleme adım aralığı ts sıfıra yaklaştıkça, örneklenmiş veri sürekli sinyale yaklaşacaktır. Bu sebeple, daha küçük adım aralıkları örnekleme işleminin gerçek sinyali temsil etme miktarını arttıracaktır. Örnekleme adım aralığını belirleyen faktör örnekleme frekansı f s ’dir. Periyodik bir sinyalin örneklenmesi sırasında, periyot başına alınmak istenen ölçüm sayısı N p olsun. Bu durumda örnekleme frekansı f s = N p f 0 olmaktadır. Burada f 0 sürekli sinyalin frekansıdır. Dolayısıyla, örnekleme adım aralığı, ts = T 1 1 = = 0 f s N p f0 N p şeklinde yazılmaktadır. Burada T0 sürekli sinyalin periyodudur. (2) 2.1. Matlab Uygulaması Ölçümü alınacak sürekli bir sinyalin ifadesi x(t ) = cos(2π f0t ) olsun. Bu sinyal için f0 = 50 Hz, N p = [2, 4, 8,16] ve ölçüm alınan toplam periyot sayısı 2 olsun. Örneklenmiş ölçüm verilerinin zamana bağlı grafikleri aşağıdaki Matlab kodu ile elde edilebilir. clear all; close all; clc; f0 = 50; % Sürekli sinyalin frekansı N_per_period = [2,4,8,16]; % Periyod başına örnek sayısı N_period = 2; % Period sayısı figure; % Yeni grafik penceresinin açılması for ii = 1:length(N_per_period) fs = N_per_period(ii)*f0; % Örnekleme frekansı ts = 1/fs; % Örnekleme adım aralığı N = N_period*N_per_period(ii); % Toplam örnek sayısı t = 0:ts:(N-1)*ts; % Zaman uzayındaki örnekleme noktaları x = cos(2*pi*f0*t); % Örneklenmiş ölçüm verisi subplot(2,2,ii); stem(t*(1e+3),x,'k'); % Ayrık verinin grafiğinin çizilmesi hold on; plot(t*(1e+3),x,'k-'); xlabel('Zaman (ms)','FontSize',12); % x ekseninin isimlendirilmesi ylabel('Örneklenmiş veri','FontSize',12); % y ekseninin isimlendirilmesi title(['Örnekleme frekansı f_s=',num2str(N_per_period(ii)),'f_0']); end Örnekleme frekansı fs =4f0 Örneklenmiş veri 1 0.5 0 -0.5 -1 0 10 20 30 0 -0.5 -1 0 10 20 30 Zaman (ms) Örnekleme frekansı fs =16f0 0.5 0 -0.5 0 0.5 Zaman (ms) 1 -1 1 Örnekleme frekansı fs =8f0 Örneklenmiş veri Örneklenmiş veri Örneklenmiş veri Örnekleme frekansı fs =2f0 10 20 30 Zaman (ms) 40 40 1 0.5 0 -0.5 -1 0 10 20 30 Zaman (ms) Şekil 2. Ölçüm verilerinin zamana bağlı grafikleri. 40 Şekil 2’den görüleceği üzere, örnekleme frekansı arttıkça ölçüm verileri sürekli sinyali daha iyi temsil etmektedir. Öyle ki, örnekleme frekansı 2 f 0 ve 4 f 0 iken örneklenmiş veriler üçgen dalgaya benzemekte, örnekleme frekansı arttıkça sinüzoidal sinyale benzemektedir. 2.2. Ayrık Sinyallerin Spektrumları Sürekli bir sinyalin spektrumunu (frekans uzayı ifadesini) elde etmek için, zaman ve frekans uzaylarında sürekli olan, eşitlik (3)’deki Fourier dönüşümü kullanılmaktadır. ∞ ∫ x(t )e X(f ) = − j 2π ft dt (3) −∞ Eşitlik (3)’e göre, zaman değişkenine ait alt sınırın −∞ olması sebebiyle, bu ifade nedensel (causal) değildir. Buna ek olarak, integralin üst sınırının ∞ ve zaman değişkeninin sürekli olması sebebiyle, Fourier dönüşümü ayrık ölçüm verilerine uygulanabilir değildir. Ölçüm verilerinden sürekli frekans spektrumunu elde etmek için eşitlik ‘deki “Ayrık Zamanlı Fourier Dönüşümü (Discrete-Time Fourier Transform; DTFT)” kullanılmaktadır. N −1 X ( f ) = ∑ x(n)e − j 2π f ( t0 + nts ) , (4) n =0 burada N ölçüm sayısını, t0 ölçüme başlanılan ana ait zamanı göstermektedir. Frekans uzayının ∆f adım aralıklarıyla örneklenmesi neticesinde, hem zaman hem de frekans uzayında ayrık “Ayrık Fourier Dönüşümü (Discrete Fourier Transform; DFT) sürekli sinyale uygulanmış olmaktadır. Bilgisayar ortamında DFT işlemini daha hızlı yapabilmek için “Hızlı Fourier Dönüşümü (Fast Fourier Transform, FFT) kullanılmaktadır. Böylece, FFT işlemi sonucunda spektrumu elde edilmiş ayrık sinyal, N −1 X (k ) = ∑ x(n)e − j 2π fk (t0 + nts ) , (5) n=0 ifadesine sahip olmaktadır. Burada k frekans indisini, f k ise k indisindeki frekans değerini göstermek üzere, matematiksel ifadesi, fk = − fs f f : ∆f : s = − s + k ∆f ; k = 0,1,… , N FFT − 1 2 2 2 (6) şeklindedir. FFT işleminin N FFT noktada yapılması durumunda, frekans adım aralığı (çözünürlüğü) ∆f = f s N FFT ifadesine sahip olmaktadır. Zaman ve frekans nokta sayılarının eşit olduğu durumda frekans çözünürlüğü için, ∆f = fs 1 1 = = N FFT ts N FFT Tmax (7) geçerli olmaktadır. Burada Tmax zaman uzayında ölçüm alma süresini göstermektedir. Dolayısıyla, zaman uzayında daha fazla süre ölçüm alınması, frekans uzayında daha iyi çözünürlük elde edilmesini sağlamaktadır. Frekans uzayında daha iyi çözünürlüğe sahip olmak ayrık veriye ait spektrumun, sürekli sinyalin spektrumunu daha iyi temsil etmesini sağlamaktadır. Eşitlik (6) gereğince, frekans vektörünün en yüksek değeri f s 2 olmaktadır. Dolayısıyla, bant genişliği B olan bir sinyalin frekans spektrumunu elde edebilmek için örnekleme frekansı için f s > 2 B sağlanması gerekmektedir. Şekil 3’de ayrık bir sinyalin genlik spektrumunun temsili şekli görülmektedir. X(f ) fs − fs − B − fs fs fs − fs + B −B B fs − B fs fs + B f Şekil 3. Ayrık bir sinyalin genlik spektrumu. Şekil 3’de görüldüğü üzere, FFT ile elde edilen spektrum f s aralıkla kendisini tekrar etmektedir. Dolayısıyla, kendisini tekrar eden iki alt spektrum arasında örtüşme olmaması için, f s − B > B olması gerektiğinden dolayı, f s > 2 B; B < fs 2 (8) koşulu sağlanmalıdır. Buna Nyquist kriteri denilmektedir. Nyquist koşulunun sağlanmadığı bir örnekleme hızı ile ölçüm alınması, elde edilecek spektrumda örtüşme olmasına neden olmaktadır. Frekans uzayındaki ayrık bir sinyali zaman uzayına götürmek için eşitlik (9)’daki ters ayrık Fourier dönüşümü (inverse DFT) kullanılmaktadır. N −1 x(n) = ∑ X ( f )e j 2π fk (t0 + nts ) (9) k =0 Bu işlemi Matlab’da yapmak için IFFT (inverse FFT) kullanılmaktadır. Dikkat edilmesi gereken husus, Matlab’da FFT ile elde edilen spektrumun nokta sayısına bölünmesi gerektiğidir. Aksi takdirde, genlikler N FFT katı kadar yüksek elde edilmektedir. Bu sebeple, değeri nokta sayısına bölünmüş spektrumdan zaman uzayına geçerken, öncelikle spektrumu N FFT ile çarpmak gerekmektedir. 2.2.1. FFT ve IFFT için Matlab uygulaması Ölçümü alınacak sürekli bir sinyalin ifadesi x(t ) = cos(2π f0t ) olsun. Bu sinyal için f0 = 50 Hz, N p = [1, 2, 4, 8] ve ölçüm alınan toplam periyot sayısı 4 olsun. Örneklenmiş ölçüm verilerine ait genlik spektrumları aşağıdaki Matlab kodu ile elde edilebilir. clear all; close all; clc; f0 = 50; N_per_period = [1,2,4,8]; N_period = 4; figure; % Yeni grafik penceresinin açılması cnt = 0; % Grafik sayacı for ii = 1:length(N_per_period) fs = N_per_period(ii)*f0; % Örnekleme frekansı ts = 1/fs; % Örnekleme adım aralığı N = N_period*N_per_period(ii); % Toplam örnek sayısı t = 0:ts:(N-1)*ts; % Zaman uzayındaki örnekleme noktaları x = cos(2*pi*f0*t); % Örneklenmiş ölçüm verisi xf = fft(x)/N; % Frekans uzayına geçiş xf = fftshift(xf); % Simetrik spektrumun elde edilmesi df = fs/N; % Frekans çözünürlüğü f = -fs/2:df:fs/2-df; % Frekans noktaları cnt = cnt + 1; subplot(2,1,cnt); stem(f,abs(xf),'k'); % Ayrık verilere ait genlik spektrumunun çizilmesi xlabel('Frekans (Hz)','FontSize',12); % x ekseninin isimlendirilmesi ylabel('Genlik','FontSize',12); % y ekseninin isimlendirilmesi xlim([-1.1*fs/2 1.1*fs/2]); % x ekseninin limitlerinin belirlenmesi title(['Örnekleme frekansı f_s=',num2str(N_per_period(ii)),'f_0']); if ii == 2 figure; cnt = 0; end end Örnekleme frekansı fs =1f0 Genlik 1 0.5 0 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 40 50 Frekans (Hz) Örnekleme frekansı fs =2f0 Genlik 1 0.5 0 -50 -40 -30 -20 -10 0 10 20 Frekans (Hz) Şekil 4. Örtüşmeli genlik spektrumları. Örnekleme frekansı fs =4f0 0.8 Genlik 0.6 0.4 0.2 0 -100 -80 -60 -40 -20 0 20 40 60 80 100 Frekans (Hz) Örnekleme frekansı fs =8f0 0.8 Genlik 0.6 0.4 0.2 0 -200 -150 -100 -50 0 50 100 150 200 Frekans (Hz) Şekil 5. Örtüşmesiz genlik spektrumları. Örnekleme frekansı 8 f 0 olan sinyalin spektrumundan zaman uzayına geçmek için, yukarıdaki kodun altına aşağıdaki kod yazılabilir. xf = ifftshift(xf)*N; % Simetrik olmayan spektruma geçiş xt = ifft(xf); % Zaman uzayına geçiş figure; % Yeni pencerenin açılması plot(t,xt,'k*--'); % xt işaretinin grafiğinin çizdirilmesi hold on; % Önceki eğrinin üzerine başka eğrinin çizdirilmesi plot(t,x,'ko--'); % x işaretinin grafiğinin çizdirilmesi legend('IFT[X(f)]','x(t)'); % Eğrilerin isimlendirilmesi xlabel('Zaman (s)','FontSize',12); % x ekseninin isimlendirilmesi ylabel('Sinyal','FontSize',12); % y ekseninin isimlendirilmesi 1 IFT[X(f)] x(t) 0.8 0.6 0.4 Sinyal 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.01 0.02 0.03 0.04 0.05 Zaman (s) Şekil 6. Zaman uzayı grafikleri. 0.06 0.07 0.08 Teoride x(t ) = cos(2π f0t ) sinyalinin genlik spektrumu, ± f 0 frekanslarında birer Deltadirak fonksiyonundan oluşmaktadır. Fakat, Şekil 4’den görülebileceği üzere, Nyquist koşulunun sağlanmadığı durumlarda elde edilen spektrum örtüşmeli (hatalı) olmaktadır. Örneğin, Şekil 4’deki f s = f0 olduğu grafikte 0 frekansında dirak meydana gelmektedir. Örnekleme frekansının f s = 2 f 0 olduğu grafikte ise, f = − f 0 frekansında örtüşme meydana gelmekte, teoride 0.5 genlikli olması gereken diraklar toplanarak 1 genlikli tek bir dirak oluşturmaktadırlar. Nyquist frekansının sağlandığı Şekil 5’de elde edilen genlik spektrumları ise, teoride beklenen genlik spektrumları ile tutarlıdır. 3. Ön Hazırlık 3.1. Aşağıdaki sinyalde f0 = 100Hz, 500Hz , 1kHz ve örnekleme frekansı f s = 1kHz için, a) bu sinyalin grafiğini her bir frekans için farklı pencerelerde çizdiriniz, b) her periyotta kaçar örnek olduğunu bulunuz, c) (a) ve (b) şıklarında elde ettiğiniz sonuçlara bakarak, Nyquist şartının sağlanıp sağlanmadığını yorumlayınız. Bu koşulun sağlanmadığı durum varsa çözüm önerisinde bulununuz. f x1 ( n ) = cos 2π 0 n fs 3.2. Aşağıdaki sinyalde fs = 200Hz, 1.5kHz ve 3kHz ve FFT nokta sayısı 256 için, a) bu sinyalin genlik cevabını fft() komutu ile bulunuz ve grafiğini çizdiriniz, b) (a) şıkkında elde edilen grafiğe bakarak örtüşme (aliasing) olup olmadığını belirtiniz, c) FFT nokta sayısını değiştirerek, bu değerin frekans cevabına olan etkisini belirtiniz. 3 x2 ( n ) = ∑ 0.8 e i − j 2π fi n fs , f = [100, 500, 1000] i =1 3.3. Şekil 1 ve 2’de sırasıyla genlik modülatörü ve demodülatörü görülmektedir. Genlik modülasyonu ile haberleşme yapan A, B ve C isimli radyo istasyonlarının kullandığı taşıyıcı frekans değerleri sırasıyla f c = 86.5MHz, 97.2MHz ve 108MHz olmak üzere, haberleşme kanalına uygun hale getirilmek istenen mesaj işareti m(t ) = 4cos ( 2π f mt ) ifadesine ve BGm = 20kHz bant genişliğine sahiptir. Kanaldan gönderilen elektromanyetik dalgalar s ( t ) olmak üzere, İdeal BGF MF = f c BG = 2 BGm m(t ) cos(2π f c t ) Şekil 7. Genlik modülatörü. s (t ) s (t ) z (t ) İdeal BGF BG = BGm m′(t ) cos(2π f c t ) Şekil 8. Genlik modülatörü. a) örnekleme frekansı 1GHz iken m ( t ) işaretinin ve A, B, C radyo istasyonları için s ( t ) , z ( t ) ve m′(t ) işaretlerinin zamana bağlı grafiklerini ayrı pencerelerde çizdiriniz, b) (a) şıkkında belirtilen işaretlerin spektrumlarını bulunuz ve grafiklerini çizdiriniz, c) (a) şıkkında her radyo istasyonu için elde ettiğiniz m′(t ) işaretlerini mesaj işareti ile kıyaslayınız. d) Haberleşme kanalından gönderilen işaretin taşıyıcı frekansı 108MHz olmak üzere, MATLAB GUI kullanarak A, B ve C istasyonlarının dinlenmesini sağlayan arayüz programı yazınız. Tasarladığınız arayüz Şekil 9’deki görünüme sahip olmalıdır. Şekil 9. Kullanıcı arayüzü.