Proje Aciklamasi

Transkript

Proje Aciklamasi
ELE 371
SİNYALLER VE SİSTEMLER
PROJE 1
Son Teslim Tarihi: 8 Şubat 2013
Konuşma Kaydında Bulunan bir Yankıyı Yok Etmek
Bu projede bir konuşma kaydında bulunan yankıyı yok etmek üzerinde çalışacağız. Öncelikle
işleyeceğiniz ses dosyasıni (lineup.mat) MATLAB’a yüklemeniz gerekmektedir. ELE 371
dersinin internet sitesinden gerekli ses dosyasını indirebilirsiniz. Kendi fonksiyonlarınızı
yazacağınız klasöre ses dosyasini kaydettikten sonra MATLAB’da load komutuyla
yükleyebilirsiniz:
>> load lineup.mat
İşleyeceğimiz konuşma sinyalinde değişken y olarak kaydedilmiştir. Konuşma kaydımız 8192
Hz örnekleme hızıyla kaydedildiği için konuşmaları dinleyebilmek için
>> sound(y, 8192)
komutu kullanmamız gerekmektedir. İngilizce olan “line up” ifadesini yankılanmış bir şekilde
duyabiliyor olmanız lazım.
Sinyalimiz y[n] matematiksel olarak şöyle gösterilebilir:
.
(1)
Burada x[n] bozulmamış ses sinyalidir. Asıl ses sinyalimize N ayrık zaman örneğiyle
geciktirilmiş ve genliği  < 1 ile azaltılmış bir kopyası – yani yankı – eklenmektedir. Bu
matematiksel model yankının duvar gibi sesi absorbe eden bir yüzeyden yansıması için iyi bir
modeldir. Eğer mikrofonumuzu odanın ortasına koyarsak ve bir kişi odanın bir tarafında
konuşuyorsa, kaydımız hem doğrudan konuşan kişiden mikrofona giden sesi içerir, hem de
odanın bir tarafından diğer tarafından gidip, duvardan yansıyıp mikrofona giden bir yankıyı da
içerir. Yankı daha uzun bir mesafe üzerinden mikrofona ulaştığı için sinyal zamanda
geciktirilecektir. Ayrıca, sinyal kısmi olarak duvar tarafından da absorbe edildiğinden genliği
daha az olacaktır. Modelimizi daha basit tutmak için herhangi başka yankıyı hesaba
katmayacağız.
Bu projede yankının gecikme süresi için N = 1000 ve söndürme faktörü için  = 0.5 değerleri
kullanılacaktır.
(a) Yankı sistemin (Denklem 1) dürtü yanıtını 0 ≤ n ≤ 1000 için hesaplayın ve çizdirin. Dürtü
yanıtını he isimli bir vektör olarak kaydedin.
(b) Şimdi aşağıdaki fark denklemi tarafından tanımlanan bir yankı yok edici bir sistemi ele
alalım:
(2)
Sistemin girdisi y[n] ve çıktısı z[n] – yankısı yok edilmiş sinyal. Orijinal konuşma sinyalimiz
x[n] ve işlenmiş sinyalimiz z[n] arasında ilişki kuran fark denklemini hesaplayarak denklem
(2)’nin denklem (1)’in tersi olduğunu gösteriniz. x[n] = z[n] bütün sistem için bir çözüm
müdür?
(c) Denklem (2) tarafından verilen yankı yok edici sistemin dürtü yanıtı sonsuz olacaktır. Eğer
N = 1000 ve  = 0.5 ise MATLAB’ın filter fonksiyonuyla dürtü yanıtını hesaplayınız.
Fonksiyonun girdisi olarak d=[1 zeros(1,4000)] kullanın. Hesapladığımız dürtü yanıtı
gerçek dürtü yanıtının bir yakınsamasıdır. Örnek sayısı 4001 olan dürtü yanıtımızı ‘her’
isimli bir vektör olarak kaydediniz.
(d) MATLAB’ın z = filter(1,a,y) komutuyla ses sinyalimizi yankı yok edici sistemiyle işleyelim.
Burada “a” denklem(2) tarafından verilen uygun katsayı vektörüdür. plot() fonksiyonuyla
çıktımızı çizdirin ve sound fonksiyonuyla işlenmiş sinyali dinleyin. Yankıyı artık duymuyor
olmalısınız.
(e) Kaydetmiş olduğumuz he ve her vektörlerin evrişimini hesaplayarak yankı sistemin (1) ve
yankı yok edici sistemin (2) seri bağlantısından oluşan toplam sistemin dürtü yanıtını
bulunuz. Sonucumuzu ‘hoa’ isimli bir vektör olarak kaydediniz. Toplam sistemin dürtü
yanıtını çizdiriniz. Neticemizin bir birim dürtü yanıtının olmadığı dikkatınızı çekmiştir. Vektör
‘her’’i ‘he’ vektörün tersi olarak hesapladığımıza göre bunun sebebi nedir?
(f) Şimdi diyelimki yankının gecikmesini (N) ve söndürme faktörü ()’yi önceden bilemiyorduk ki
genellikle bu parametreleri önceden bilmemiz istisnai bir durumdur. Bu değerleri tahmin
etmek için bir yöntem tasarlayınız.
İp ucu:
Yankı sistemin çıktısı olan y[n] sinyali
şeklinde ifade ederek
sinyali ele alınız. Ryy sinyali y[n] sinyalin otokorelasyonudur ve bu tip uygulamalarında çok
kullanılır. Şimdi Ryy sinyalini Rxx’e göre yazınız ve Ryy’yi çizdiriniz. MATLAB’ın hafıza
sınırlarının aşılmaması için Ryy[n]’ı kısaltmanız gerekecektir ama kısaltmış otokorelasyon
fonksiyonu yine de çoğu özelliğini korumaktadır.
Daha basit yankı problemleriyle de deneyler yapabilirsiniz. Örneğin:
>> NX = 100;
>> x = randn(1, NX);
>> N = 50;
>> alpha = 0.9;
>> y = filter([1 zeros(1,N) alpha] , 1 , x);
>> Ryy = conv(y, fliplr(y));
>> plot([-NX+1 : NX-1] , Ryy)
N, alpha ve NX değerleri değiştirmeyi deneyiniz.
(g) Ayrıca, lineup.mat dosyasını yüklediğinizde belki farketmişsinizdir iki ekstra vektörü de
yüklediniz: y2 ve y3. Vektör y2 de aynı “line up” ifadesi farklı bir gecikme süresi N ve
söndürme faktörü  ile kaydedilmiştir. Vektör y3 de ise aynı ifadeyi iki farklı yankıyla
kaydedilmiştir. Kayıt y2 için N ve ; kayıt y3 için N1, N2, 1, ve 2’yi tahmin ediniz.
RAPOR FORMATI
1) Bütün raporlar bilgisayarda yazılmalı. El yazmalı raporlar kabul edilmeyecektir.
2) Bütün proje sorularına cevap verilmeli, her sorunun cevabı için ayrı ve belirgin bir başlık
atılmalı. Gereken bütün açıklamalar, matematiksel çözümler, ve grafikler raporun ana
kısmında belirtilmeli.
3) Sonuçlara ulaşmak ve grafikleri çizdirmek için yazılmış bütün MATLAB kodu bir veya birden
fazla apendis olarak rapora eklenmeli. Hangi kod projenin hangi kısmıyle ilgili olduğu net bir
şekilde belirtilmeli.
4) Projenin teknik konuları üzerinde öğrencilerin birbirlerine danışmaları, konuyu tartışmaları
doğaldır, buna izin verilmektedir. Ancak hatırlatmalıyım projeler tek kişiliktir. Her öğrenci
çalışmalarıyla ilgili ayrı bir rapor vermeli, herkes kendi MATLAB kodunu yazmalı.
5) Eğer kopyacılıktan şüphelenilirse, hem kopyayı veren hemde kopyayı çeken öğrencilerin
proje notu sıfır olacaktır.
Başarılar dilerim.

Benzer belgeler

Proje 1 Raporu

Proje 1 Raporu ELE 371 SİNYALLER VE SİSTEMLER PROJE 1 RAPOR ÖĞRENCİNİN; ADI SOYADI: CAN DEMİRDAĞ NUMARASI: 091201016 DERSİN HOCASI: YRD. DOÇ. SEVGİ ZÜBEYDE GÜRBÜZ

Detaylı