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
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