Waw dosyasını sese dönüştürme

Başlatan barisertekin, 02 Kasım 2015, 21:27:25

barisertekin

Wav formatının içeriğini okumak basit olduğundan bu formatı seçtim.





2 kanallı bir ses dosyasının ilk kanalını debug ederek screenshot aldım.

Resimde görünen bu 17, 15, 13 verileri genlik bilgisidir.

1) Bu verileri nasıl sese dönüştüreceğim?
2) Nasıl sinüs dalgası olarak ifade edebilirim?

Teşekkürler.

Karamel

baris hocam. oncelikle sinus sekline olmaz. cunku sine function farkli birsey. zamana gore yonu ve siddedi.degisen.tizlerde frequance i artan. bass tone larda frequance i azalan. high volume lerde peak to peak voltage i artan birsey cikacak.

burada  https://www.picproje.org/index.php/topic,60670.new.html#new microcontroller ile wav dosyasini hocalarim yardimi ile calabilmistik. 

barisertekin

Nasıl çalarızdan vazgeçtim :)

Tek bir sinüs olarak ifade edilemez zaten. Birden fazla sinüsün toplamı olarak ifade edilebilir diye düşünüyorum. (Fourier diyo ben demiyorum)

Bu ses dosyasının frekans spektrumunu çizmek istesem nasıl çizeceğim?

Örneğin; x = sin(2*pi*5*t)+2*sin(2*pi*50*t)+2*sin(2*pi*100*t); gibi bir ifadenin fourier transformasyonunu almak basit;
1 tane 1hz , 2 tane 50hz , 2 tane 100hz var diyecek.

Peki bu ses dosyasının içinde, atıyorum 1hz kaç tane sinyal var nasıl anlayabiliriz?

alicavuslu

#3
İstediğin frekanstaki sinyali band geçiren bir süzgeç tasarlaman gerekior. Bu şekilde istemediğin frekans bileşenlerini atabilirsin. 1 Hz kaçtane sinyal var şeklinde sorunun cevabı hakkın bi yorum yapamayacam. Aynı frekanstaki sinyaller üst üste toplanır. Ayırt etmek olur mu bilemiyorum.

Dördüncü toplam sinyalden 1. sinyali elde etmek gibi...


RaMu

Dijital olunca misal DFT Discrete Fourier Transform gibi yöntemler var,
MCU adc ile nyquist kriterine uyarak örnekler alıyorsun,
4 işleme tabi tutup, örneklediğin sinyalde hangi sinüs bileşenleri var görebiliyorsun,
sonuçlandıramamış olsamda, mantığını anlatmıştım:
https://www.picproje.org/index.php/topic,48884.msg366414.html#msg366414
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

barisertekin

Arkadaşlar Discrete Fourier Transform çok iyi biliyorum. Orada sorun yok.

Soru DFT algoritması girişine ne alıcak?

Yukarıda örnek verdim. Yine yazıyorum.

Örneğin; x = sin(2*pi*5*t)+2*sin(2*pi*50*t)+2*sin(2*pi*100*t);
x girişinin Ayrık Fourier Dönüşümünü yaparsak -> 1 tane 1hz , 2 tane 50hz , 2 tane 100hz var diyecek.

Ama ses dosyası için elimizde böyle bir x girişi yok. Yani var da biz bilmiyoruz şuan :D

tunayk

#6
Aslında mesele ses dosyasının örnekleme sıklığından. Eğer 44kHz ise sizin de bu frekansta buradaki genlik değerlerini DAC A göndermeniz gerek sanırım.
Sonuçta gerçek ses kaydedilirken sabit bir örnekleme frekansında adc den alınan değerler kaydediliyor

alicavuslu

#7
Bilmediğin bir sinyal içerisindeki istediğin  frekans değerindeki işareti filtreleyerek ayırırsın. FFT aldığını varsayalım. İstediğin frekanstaki bileşeni tut diğerlerini sıfırla. Ters FFT al istediğin siyanli elde edersin. Sayısını değil genliğini elde etmiş olursun...

mesaj birleştirme:: 02 Kasım 2015, 22:59:42

Aslında 3.şekilden 1. şekli elde etmek istiyorsun. Filtreleyerek 4. şekli elde etmen mümkün. Üzerinde çalışarak daha iyi sonuçlarda elde edebilirsin.


RaMu

Alıntı yapılan: barisertekin - 02 Kasım 2015, 22:26:55
Arkadaşlar Discrete Fourier Transform çok iyi biliyorum. Orada sorun yok.

Soru DFT algoritması girişine ne alıcak?
...
Demekki çok iyi bilmiyorsun.
DFT nin radix2 gibi yöntemlerinde:
Ses vesayire, herhangibir sinyali ADC ye girdin veya
belirli zaman aralıklarında genliğini ölçtün,
(ne kadar sık ölçersen o kadar yüksek frekansdaki sinyalleri görebilirsin-örnekleme frekansı-, nyquist)
işte bunlar DFT nin giriş örnekleri oluyor.
Verdiğim linkdeki konuda yazmıştım, örnekle açıklamıştım, zaten.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

barisertekin

Sen bana dft bilmiyorsun dersen ayıp edersin. Dft'nin çalışma prensibi gayet basittir.
Bu konu burda kapansın. Ben kendim hallederim. Teşekkür ettim.

peko

#10
@barisertekin

Maalesef forumda son zamanlarda bu tarz konuşmaların yer aldığına fazlasıyla şahit oluyorum.
Onu bilmiyorsun, bunu bilmiyorsun, demek ki bilmiyorsun, şu değilsin, bu değilsen vb..

Herkes kendinin kibirli olup olmadığını anlayabilir.
Mesela şunlar varsa kibirlidir:

1- İstişare etmiyorsa, danışmıyorsa, soramıyorsa, peki diyemiyorsa, hatasını kabul edemiyorsa, özür dileyemiyorsa, kimseden dua isteyemiyorsa, vara yoğa öfkeleniyorsa, başkalarını beğenmiyorsa,
birine yol sorarken bile çekiniyorsa,

2- Üzerinde hakkı bulunanları, fakirleri, garipleri ziyaret etmiyorsa,

3- Hep kendini haklı kabul ediyorsa, kendi görüşünün doğru olduğunu anlatmaya çalışıyorsa, haklı olduğunu ispat için deliller buluyorsa,
(Şu kitaplarda şöyle diyor, falanca büyük zat böyle buyurdu) diyerek kendisinin haklı olduğunda ısrar ediyorsa,

4- (Benim dediğim doğru) veya (Benim dediğim olacak) diyerek tartışmaya giriyorsa,

5- Kibrini örtmek için mütevazı ve edepli gözükmeye çalışıyorsa, (bendeniz), (bu günahkâr), (Biz bu işlerden anlamayız) gibi şeyler söylüyorsa,

6- Emr-i maruf yapılınca, kabul etmeyen, (Allah'tan kork şunu yap, şunu yapma!) denince, eğer kabul etmezse, o kişi nefsine mağlup olmuş, kibre düşmüş demektir.

7- Herkese sıkıntı veriyor, herkesi şikâyet ediyorsa, [Mütevazı olan ne şikâyet eder, ne şikâyet edilir. Mütevazı ölü demektir. Ölü, kimseyi şikâyet etmez; ölüyü de şikâyet eden olmaz.]

8- Herkeste kusur, kabahat arıyorsa, onları bilgisiz, cahil, kendini onlardan üstün görüyorsa,

9- Fırsat buldukça rütbesinden, faziletinden bahsediyorsa. [Mesela, (Ben yüzbaşı iken erlerin namaz kılmasına izin verirdim), (Kaymakamken fakirlere yardım ederdim), (Doktorluğumda, çok garibana ücretsiz baktım, ilaçlarını verdim) diye övünüyorsa vaziyeti iyi değildir.]

10- Bir kimse, biraz bilgiliyse, ibadet de yapıyorsa, böyle olmayan insanı, adam yerine koymaz, helâk olmuş zavallı biri gibi görür.
Kendisi için sevdiğini başkası için sevemez. Hakkı ve hakikati başkalarından duysa kabul etmez.
Onların nasihatine, tavsiyesine uymayı nefsine yediremez.

Kaynak:http://www.dinimizislam.com/detay.asp?Aid=4672

(Edit: Bireysel olarak kimseye atıfta bulunmuyorum, özellikle belirtmek istedim yanlış anlamaya sebep olmamak için)
" Bazıları zeka'sını iş'i zorlaştırmak için, bazıları ise kolaylaştırmak için kullanır.. "

harti212

Sesi Hoparlörden mi alıcan onu anlamayamadım?
Sesin frekansı var İnsan kulağının duyabileceği band genişliği var bunlara çalışman lazım.
Bi yere ileteceksen taşıyıcı frekans şart, genelde GM(AM) kullanılır Taşıyıcı dalga ile ses dalgasının çarpılması.(X geçişi)
Digital Analog Dönüştürücü entegreler var DAE(Digital Analog Encoder) çözücü olarak DAC burdaki C konverter oluyor.
Örnekleme frekasının genliği Sinüzoidal e çevriliyor (Kareler e benzeyen sinüsler çiziliyor)

barisertekin

Ben o işi hallettim. Wav dosyasını yanlış okuyormuşum. Matlab'taki ile aynı değerleri elde edebildiğimde çözüldü.

İlgin için teşekkür ederim.