Soru sorSes Sinyalini Fourier Serisi Kullanarak Elde Etme
enrique128 tarafından 4 yıl önce soruldu

Merhabalar. Mikrofonumdan aldığım kendi sesime, fourier serileri kullanarak yakınsamaya çalışacağım. Kendi sesimi alabiliyorum ancak bunu nasıl sinüslerin ve cosinüslerin toplamı biçiminde yazabileceğimi bilmiyorum. Aşağıdaki yere kadar ilerleyebildim, yardımlarınız için şimdiden teşekkür ederim.

recorder= audiorecorder(16000,8,2);
disp('please record your voice');
drawnow();
pause(1);
recordblocking(recorder, 3);
play(recorder);
data=getaudiodata(recorder);
plot(data)
6 Cevap
sayginer Yönetici tarafından 4 yıl önce cevaplandı

Merhaba,
Muhtemelen sizin de bulduğunuz kaynak 1'de önerildiği gibi elinizdeki ses sinyalinin frekans değerlerini bulmakla devam edebilirsiniz.
Yine de yapmaya çalıştığınız konu hakkında genel olarak yorum yapmam gerekirse:
Fourier Serisi yönetimiyle farklı frekans ve geniklerdeki dalgaları üst üste bindirerek (süperpozisyon) istediğimiz dalga formlarını elde edebiliriz.
Sizin yapmaya çalıştığınız çalışmada Fourier bileşenlerinin frekans ve dalgalarını ses sinyalinizin dalga formu ile eşleşecek şekilde belirlemeniz gerekiyor. Bu noktada yapmanız gereken ilk adım ses dalganızın spektral karakteristiğini belirlemek olmalı. Diğer bir deyişle ses sinyalinizin frekans bileşenlerini bulmalısınız. Bunu da FFT (Fast Fourier Transform) kullanarak zaman domeninden frekans domenine geçerek yapabilirsiniz.
Elde ettiğiniz baskın frekans değerlerinden yararlanarak da Fourier Serinizi oluşturabilirsiniz. Tabi ki bu doğrudan kolaylıkla yapılabilecek bir işlem değil. Çünkü ses sinyaline yakınsamak için muhtemelen çok fazla Fourier terimi eklemeniz gerekecek. Size tavsiyem Ses sinyaliniz ile yapay olarak oluşturduğunuz sinyal arasındaki mutlak mesafeyi hesaplayarak bir hata değeri oluşturun (Bir çeşit küçük kareler yöntemi ile eğri uydurmak gibi.) ve bu hata değerini azaltmayı  (sıfıra eşitlemeyi) hedefleyerek Fourier serisi terimlerini belirleyin.
Kolaylıklar
Kaynaklar

  1. https://it.mathworks.com/matlabcentral/answers/638810-how-to-obtain-fourier-series-of-human-sound
enrique128 tarafından 4 yıl önce cevaplandı

Hocam yazılan tüm bilgiler kuramsal bilgiler, dalganın elde edilmesi için süperpozisyon yöntemi uygulanacağını zaten biliyorum. :)
Benim sorum ise bu aldığım ses sinyalini MATLAB'da nasıl input olarak gösterip FFT dönüşümünü alabilirim gibi sorular.

sayginer Yönetici tarafından 4 yıl önce cevaplandı

Merhaba,
O zaman Fourier serisi oluşturmak için buradaki bağlantıdaki örnekleri uygulayabilirsiniz: https://it.mathworks.com/help/curvefit/fourier.html
Diğer sorularınız için de ayrı başlıklar oluşturabilirsiniz.

sayginer Yönetici tarafından 4 yıl önce cevaplandı

Aşağıdaki izleti konuyla ilgili yararlı olabilir.
https://www.youtube.com/watch?v=2Q8ReGPCzhg

sayginer Yönetici tarafından 4 yıl önce cevaplandı

Ekleme 1:

sayginer Yönetici tarafından 4 yıl önce cevaplandı

Ekleme 2: