T.C.
SÜLEYMAN DEMİREL ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
Elektronik ve Haberleşme Mühendisliği Bölümü
EHM 382 SAYISAL HABERLEŞME
DÖNEM PROJESİ
MATLAB YARDIMIYLA
SAYISAL HABERLEŞME UYGULAMALARI
Mart 2014
Yrd. Doç. Dr. Mehmet Fatih ÇAĞLAR
Dr. Yılmaz KALKAN
1. Projenin amacı
Bu projenin amacı EHM 382 Sayısal Haberleşme dersi kapsamında
öğrenilen konuların MATLAB© ortamında üretilmesini sağlamak ve
böylelikle teorik bilgilerin pratik çalışma ile desteklenmesini sağlamaktır.
2. Projenin Tanımı
Dönem projesi kapsamında 5 değişik proje konusu önerilmiştir. Bu
konulardan sadece birisi seçilerek gerçekleştirilecektir. Proje iki kişilik
gruplar halinde yapılacaktır. Proje konuları şu şekilde belirlenmiştir:
1. Değişik olasılık dağılım fonksiyonlarına (probability distribution
function - pdf) sahip rastlantısal değişkenlerin üretilmesi ve
olasılık dağılım fonksiyonlarının elde edilmesi
o Normal (Gaussian) Dağılım
o Tekdüze (Uniform) Dağılım
o Üstel (Exponential) Dağılım
2. Darbe Genlik Modülasyonlu (PAM), Darbe Pozisyon
Modülasyonlu (PPM) ve Darbe Genişliği Modülasyonlu (PWM PDM) sinyallerin üretilmesi
3. Darbe Kod Modülasyonu (Pulse Code Modulation - PCM)
4. Delta Modülasyonu ve Demodülasyonu
5. Hat Kodlama (Line Coding)
Bu proje konuları ile ilgili detaylı bilgi ilerleyen sayfalarda verilmiştir.
Seçilen proje konusuyla ilgili teorik bilgi verildikten sonra MATLAB© da
uygulaması yapılacaktır. MATLAB© da kullanıcı arayüzü (Graphical
User Interface - GUI) hazırlanması da öngörülmektedir.
3. Proje Konuları
3.1.
Değişik olasılık dağılım fonksiyonlarına
(probability
distribution function - pdf) sahip rastlantısal değişkenlerin
üretilmesi:
Bu proje konusu kapsamında 3 değişik dağılıma (normal, tekdüze
ve üstel) sahip rastlantısal değişkenlerin üretilmesi gerekmektedir.
Normal dağılım için, belirli bir ortalama değerine (µ) sahip “N”
adet (N öğrenci tarafından belirlenecektir) rastlantısal değişken
üretilecektir. µ ve N değerlerinin değişken (kullanıcı tarafından
ayarlanabilir) olması gerekmektedir. Üretilen N adet rastlantısal
değişken kullanılarak olasılık dağılım fonksiyonunun normal
(Gaussian) olduğu gösterilecektir. (bknz: histogram). Ayrıca,
normal dağılım fonksiyonu (teorik olarak çıkartılan) da
çizdirilecektir. Şekil 1. de normal dağılım için istenilen ekran çıktısı
gösterilmiştir. Farklı “N” ve “µ” değerleri için sonuçlar
gösterilecektir.
Histogram of Normal Distribution
4000
elde edilen pdf
3500
teorik pdf
3000
2500
2000
1500
1000
500
0
-5
-4
-3
-2
-1
0
1
2
3
4
5
Şekil 1. Normal dağılıma sahip olasılık dağılım fonksiyonunun elde edilmesi
Aynı işlemlerin üstel ve tekdüze dağılımlar için de yapılması
gerekmektedir. Üstel dağılım için ortalama değer (µ) değişken
olmalıdır.
Sonraki adımda “N1” uzunlukta “N2” adet tekdüze dağılıma sahip
rastlantısal değişkenler üretilecektir. Bu “N2” adet vektörün toplamı
ile elde edilecek “N1” adet rastlantısal değişken yardımıyla bu yeni
elde edilen rastlantısal değişkenin olasılık dağılım fonksiyonu
üretilecektir. “N1” ve “N2” parametrelerinin değişimine göre elde
edilen sonuçlar karşılaştırılacak ve yorumlanacaktır.
Aynı işlem üstel ve normal dağılımlara sahip rastlantısal
değişkenler kullanılarak da tekrarlanacak ve sonuçlar
karşılaştırılacaktır.
Bütün işlemler MATLAB da gerçekleştirilecektir.
3.2.
Darbe Genlik Modülasyonlu (PAM), Darbe Pozisyon
Modülasyonlu (PPM) ve Darbe Genişliği Modülasyonlu (PWM
- PDM) sinyallerin üretilmesi
Bu proje konusu kapsamında PAM, PPM ve PWM (PDM)
sinyalinin
MATLAB
da
üretilmesi
ve
gösterilmesi
amaçlanmaktadır. Öncelikle sinüsoidal bir sinyal üretilip
örneklenecektir. Üretilen darbelerin genlikleri (PAM), süreleri
(PWM) ve pozisyonları (PPM), örneklenmiş sinyaldeki örnek
değerlerine bağlı olarak değiştirilerek darbe modülasyonlu sinyaller
üretilecektir. Şekil 2 de, darbe parametreleri gösterilmektedir.
Şekil 2. Darbe parametreleri
Üretilmesi gereken modülasyon türleri şunlardır:
o Darbe Genlik Modülasyonu - PAM: Örneklenen sinyalin
örnek değerlerine bağlı olarak, τ uzunluğundaki darbelerin
genlikleri değiştirilecektir.(t0 = 0)
o Darbe Pozisyon (Darbe Yeri) Modülasyonu – PPM:
Örneklenen sinyalin örnek değerlerine bağlı olarak, τ
uzunluğundaki darbelerin 0-T zaman aralığı içersindeki
başlangıç yerleri (t0) darbeden darbeye değiştirilecektir.(A =
1)
o Darbe Genişlik Modülasyonu – PWM: Örneklenen sinyalin
örnek değerlerine bağlı olarak, A genliğindeki darbelerin
süreleri (τ) darbeden darbeye değiştirilecektir.(A = 1, t0 = 0)
Ayrıca bu modülasyon türleri için, ortalama güç değerleri de
hesaplanacaktır. Elde edilmesi gereken örnek ekran çıktıları Şekil 3 ve
Şekil 4 de gösterilmiştir.
Original Signal
Amplitude
2
1
0
-1
-2
0.6
0.5
Time, t
Sampled Signal
0.7
0.8
0.9
1
12
10
Samples, n
14
16
18
20
0
0.1
0.2
0.3
0.4
0
2
4
6
8
Amplitude
2
1
0
-1
-2
Şekil 3. Bilgi Sinyali ve örneklenmiş bilgi sinyali.
PAM Signal
Amplitude
2
1
0
-1
-2
0
0.1
0.2
0.3
0.4
0.5
0.6
Time, t
PPM Signal
0.7
0.8
0.9
1
0
0.1
0.2
0.3
0.4
0.5
0.6
Time, t
PWM Signal
0.7
0.8
0.9
1
0
0.1
0.2
0.3
0.4
0.7
0.8
0.9
1
Amplitude
1
0.5
0
Amplitude
1
0.5
0
0.5
Time, t
0.6
Şekil 4. PAM, PPM ve PWM sinyalleri.
Darbe Kod Modülasyonu (Pulse Code Modulation - PCM):
Bu proje konusu kapsamında PCM sinyalinin MATLAB da
üretilmesi ve gösterilmesi amaçlanmaktadır. Öncelikle sinüsoidal
bir sinyal üretilip örneklenecektir. Daha sonra “τ” uzunluğunda
darbelerden oluşan bir darbe katarı üretilecektir. Darbe katarı ile
örneklenmiş sinyal kullanılarak PAM sinyali elde edilecek ve
gösterilecektir. Üretilen PAM sinyali kuantalanarak (M seviye)
voltaj seviyeleri sabit değerlere çekilecektir. Kullanılan kuantalama
seviyesine bağlı olarak ihtiyaç duyulacak PCM kodları ekranda
gösterilecektir. Burada M ve “τ” parametreleri ayarlanabilir
olmalıdır. Elde edilmesi gereken ekran çıktıları aşağıda
gösterilmiştir.
Original Signal
6
4
Amplitude
2
0
-2
-4
-6
0
0.1
0.2
0.3
0.4
0.5
Time, t
0.6
1
0.9
0.8
0.7
Şekil 5. Sinüs sinyali (1 Hz)
Sampled Signal
5
4.5
4
3.5
Amplitude
3.3.
3
2.5
2
1.5
1
0.5
0
0
5
10
15
20
30
25
Samples, n
35
Şekil 6. Örneklenmiş sinyal
40
45
Pulse Train
1
0.9
0.8
Amplitude
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0.05
0.1
0.15
Time, t
0.2
0.25
Şekil 7. Darbe katarı (darbeler τ genişliğinde)
PAM and Quantized Signals
6
PAM signal
Quantized signal
4
Amplitude
2
0
-2
-4
-6
0
0.1
0.2
0.3
0.4
0.5
Time, t
0.6
0.7
0.8
0.9
1
Şekil 8. PAM ve kuantalanmış (M = 4) sinyaller
4 seviye kuantalama (M = 4) işlemi için elde edilen kodlar
MATLAB ana ekranında aşağıdaki örnektekine benzer bir şekilde
gösterilmelidir.
Symbol Code
------- ---------1
0 0
2
0 1
3
1 0
4
1 1
Delta Modülasyonu / Demodülasyonu
Bu proje konusu kapsamında Delta Modülasyonu ve
Demodülasyonu MATLAB ortamında gerçeklenecektir. Üretilen
bir sinüsoidal sinyale delta modülasyonu uygulanacak ve delta
modüleli sinyalden tekrar bilgi sinyali elde edilecektir. Ayrıca ara
adımlarda elde edilen kestirimci çıkışındaki sinyal ve hata sinyali
de gösterilecektir. Delta modülasyonu için kullanılan adım boyutu
(∆) değişken olacaktır.
Original Signal
6
4
Amplitude
2
0
-2
-4
-6
0
0.1
0.2
0.3
0.4
0.5
Time, t
0.6
0.7
0.8
0.9
1
Şekil 9. Sinüs sinyali (1 Hz)
Delta Modulated Signal
2
1.5
1
0.5
Amplitude
3.4.
0
-0.5
-1
-1.5
-2
0
0.1
0.2
0.3
0.4
0.5
Time, t
0.6
0.7
0.8
Şekil 10. Delta modüleli sinyal
0.9
1
Original, Estimated and Error Signals (Modulator Side)
6
Original signal
Estimated Signal
Error Signal
4
Amplitude
2
0
-2
-4
-6
0
0.1
0.2
0.3
0.4
0.5
Time, t
0.6
0.7
0.8
0.9
1
Şekil 11. Bilgi sinyali, Kestirimci çıkışı ve hata sinyalleri
Original, Demodulated and LPFiltered Signals (Demodulator Side)
6
Original signal
Estimated Signal
Filtered Output
4
Amplitude
2
0
-2
-4
-6
0
0.1
0.2
0.3
0.4
0.5
Time, t
0.6
0.7
0.8
0.9
1
Şekil 12. Bilgi sinyali, Demodüle edilmiş sinyal ve filtre çıkışındaki sinyal
Hat Kodlama (Line Coding)
Bu proje konusu kapsamında hat kodları ve bunların güç spektral
yoğunluk fonksiyonları incelenecektir. Hat kodlama için
kullanılacak darbe sinyali ( p(t) ) 0-T aralığında tanımlanacak ve
darbe süresi τ ile sınırlı olacaktır (0-τ aralığında p(t) bulunacak τ-T
aralığı 0 olacaktır). Burada T ve τ değişken olacaktır. Girilecek N
uzunluğundaki bit dizisi kullanılarak hat kodlaması yapılacaktır.
Kullanılacak hat kodları şunlardır:





On – Off
Polar
Bipolar
Duobinary
Split-phase (Manchester)
kodlanmış sinyalin gösterimi yapıldıktan sonra, yukarda adı geçen
hat kodlarının güç spektral yoğunluk (Power Spectral Density PSD) fonksiyonları çizdirilerek avantajları ve dezavantajları
tartışılacaktır. “1 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0” şeklinde bit dizisi
için, beklenen ekran çıktıları şu şekilde olmalıdır.
On-Off Signaling
Polar Signaling
2
Amplitude
Amplitude
2
0
-2
0
0.2
0.4
0.6
time [sec]
BiPolar Signaling
Amplitude
Amplitude
0
0.2
0
0.2
0.8
0
0.2
0.4
0.6
0.8
time [sec]
Split Phase (Manchester) Signaling
0
-2
2
0
-2
0.4
0.6
time [sec]
Duobinary Signaling
2
0
-2
0
-2
0.8
2
Amplitude
3.5.
0
0.2
0.4
time [sec]
0.6
0.8
Şekil 13. Hat kodlaması
0.4
time [sec]
0.6
0.8
PSD of different Line Codes
0.03
Polar codes
Bipolar codes
Duobinary codes
Splitphase Code
0.025
Amplitude
0.02
0.015
0.01
0.005
0
0
50
100
150
200
250
w
Şekil 14. Değişik hat kodları için güç spektral yoğunluk (PSD) fonksiyonları.
4. Matlab da kullanıcı arayüzü (GUI) hazırlama
Proje kapsamında MATLAB da kullanıcı arayüzü (Graphical User
Interface - GUI) hazırlanması gerekmektedir. Seçilen proje
konusuna göre belirlenecek parametreler GUI üzerinden kontrol
edilebilmelidir. GUI kolay anlaşılabilir ve kolay kontrol edilebilir
olmalıdır.
5. Raporlama
Dönem projesinin değerlendirilmesinde öncelikle projenin istenilenleri
gerçekleştirip gerçekleştiremediğine bakılacaktır. Bunun için bir rapor
hazırlanıp sonuçlar bu raporda sunulmalıdır. Her grup sadece bir rapor
hazırlayacaktır, grup üyeleri tarafından ayrı ayrı rapor hazırlanmayacaktır.
Rapor formatı ve içeriği şu şekilde olmalıdır:
• Öncelikle rapor kapağı olmalı, bu kapakta raporu hazırlayan
kişinin/kişilerin ad, soyad ve öğrenci numaraları yazılmalıdır.
• Raporun ilk kısmında seçilen proje konusuyla ilgili teorik bilgiler
verilmeli ve kısaca açıklanmalıdır. MATLAB© da sinyallerin
üretilmesi için kullanılacak matematiksel modeller açıkça
verilmelidir. Bu teorik kısım 2 sayfayı geçmemelidir.
• Sonraki bölümde MATLAB© kullanılarak elde edilen ekran
çıktıları verilmelidir. Bu çıktılarda eksen isimleri ve her şeklin
bir başlığı olması gerektiği unutulmamalıdır.
• Son olarak sonuç kısmı ile rapor sonlandırılmalıdır. Sonuç
kısmında öncelikle elde edilen sonuçlar hakkında yorumlar ve
tartışmalara yer verilmelidir. Bununla yanında bu projede
karşılaşılan zorluklar ve nasıl çözüldüğü açıklanmalı ayrıca
projenin öğrenciye katkısından (olumlu/olumsuz) bahsedilmelidir.
• Kaynakça kısmında yararlanılan kaynakların sıralanması
gerekmektedir. İnternet kaynakları için de, yararlanılan sitelerin
adresi mutlaka verilmelidir.
NOT : Rapor tek bir dosya olarak hazırlanmalı, her kısım ayrı
ayrı gönderilmemelidir. Rapor .doc, .docx veya .pdf
formatlarından birinde hazırlanmalıdır.
6. Değerlendirme
Projenin değerlendirilme aşamasında öğrenci tarafından hazırlanan
MATLAB© kodları ve proje raporu incelenecektir. “Proje raporu” ve
“MATLAB©kodları” 16/05/2014, saat 23:59‘a kadar e-posta ile
“Sayısal
Haberleşme
Dönem
Projesi”
konu
başlığı
ile
[email protected] adresine gönderilecek ayrıca basılı rapor
verilmeyecektir.Her grup sadece bir e-posta atacak ve bir rapor ve bir kod
gönderecektir. MATLAB© kodlarında, her satırın yanında açıklaması
olmalıdır. Ayrıca kodların ve raporun e-posta ile gönderilmesinden sonra,
her grup 10 dk.lık sözlü sunuma çağrılacaktır (sunum programı bölüm
web sayfasından duyurulacaktır). Bu aşamada veya herhangi bir aşamada
öğrencinin kodları kendisinin hazırlamadığı tespit edilirse KOPYA işlemi
yapılacak ve o grubun proje notu 0 (sıfır) olarak verilecektir. Bu
nedenle projenin grup üyeleri tarafından hazırlanması ve konuya hakim
olmaları önemlidir. Tam olmayan, sadece belli sonuçları içeren raporlar
kısmi değerlendirilecektir. Rapor hazırlanmadan gönderilen MATLAB©
kodları değerlendirmeye alınmayacaktır.
Not : Matlab kodları tek bir “.m” uzantılı dosya şeklinde hazırlanmalı ve
sadece bu dosya gönderilmelidir. GUI hazırlandıysa, bu GUI ye ait
“.fig” uzantılı dosyanın da gönderilmesi gerektiği unutulmamalıdır.
7. Referanslar
Bu proje ile hem derste öğrenilen bilgilerin pratiğinin yapılması hem de
MATLAB© kullanımına teşvik edilmesi amaçlanmıştır. Sayısal
Haberleşme konularında, ders notları başta olmak üzere aşağıdaki
referanslar önerilmektedir:
 Sayısal Haberleşme ders notları
 “İletişim Sistemlerinin Temelleri”, Çeviri:Halis Altun, Ertan
Öztürk, Yusuf Erkan Yenice, Nobel Akademi Yayıncılık, 2010.
 “CommunicationSystemEngineering”, J. G. Proakis, M. Salehi,
Prentice-HallInc., 1994
 “Modern Digitaland Analog CommunicationSystems”, B. P. Lathi,
Oxford UniversityPress, 1998
MATLAB© kullanımı için en temel kaynak MATLAB©ın kendisidir. Çok
geniş ve kullanışlı yardım hizmeti vermektedir. “help” komutu ile her
komutun ne işe yaradığı ve nasıl kullanıldığı bilgisine kolaylıkla
ulaşılabilmektedir. Örneğin “plot” komutunun nasıl kullanıldığına dair
“help” komutu çalıştırılırsa (MATLAB© ana ekranda “help plot” yazıp
enter a basılırsa), şu açıklama ekrana gelir:
Help plot
PLOT Linearplot.
PLOT(X,Y) plots vector Y versus vector X. If X or Y is a matrix ,then the
vector is plotted versus the rows or columns of the matrix, which ever
lineup. If X is a scalar and Y is a vector, disconnected line objects are
created and plotted as discrete points vertically at X.
Bunun yanında en yaygın kullanılan MATLAB© komutu “lookfor” dur.
Bu
komut
sayesinde
yaptırılmak
istenilen
işlemin
hangi
©
MATLAB komutu tarafından yapılabileceği kolaylıkla bulunur. Örneğin
ekrana bir figür çizmek için hangi komut kullanılacağını öğrenmek için
“lookfor figure” komutu yazılıp çalıştırıldığında MATLAB© ana ekranda
içinde “figure” sözcüğü geçen tüm komutlar, açıklamalarıyla birlikte
listelenecektir. Bu sayede kullanılacak komut kolaylıkla seçilerek “help”
komutu ile de kullanımı öğrenilebilecektir.
Projeyle ve MATLAB© ile ilgili her türlü sorunuz için Dr. Yılmaz
Kalkan’a danışabilirsiniz. Danışma saatleri Çarşamba 10.30 – 11:30 ile
sınırlıdır ve bu saatlerin dışında öğrenci kabul edilmeyecektir
8. Proje Kapsamında Kullanılacak bazı MATLAB© komutları
help
lookfor
figure
plot
title
xlabel
ylabel
: Komutların ne işe yaradığını öğrenmek için kullanılır
: Girilen sözcüğün içinde geçtiği komutları listeler
: Figür çizmek için pencere açar
: İki vektörü birbirine göre çizer
: Figüre başlık ekler
: Figürün x eksenine yazı ekler
: Figürün y eksenine yazı ekler
Dr. Yılmaz KALKAN, 18.03.2014
Download

ehm 382 sayısal haberleşme dönem projesi