Soru sorYeniden örnekleme ve nicemleme ( Resampling and Quantization )
beratberat78 tarafından 4 yıl önce soruldu

Kaç gündür bir ödev için uğraşıyoruz . Dün bi şekilde yaptık attık hocaya böyle bir mail geldi . Hatamızı düzeltmeye çalıştık araştırdık fakat bulamadık . hocanın attığı mail de bu ;
In order to change the sampling frequency from 44100 to 8000 you must find the lcm, and interpolate and decimate with factors less than 10 (or equal to).
Regarding quantization, you mistake the number of bits with the number of quantization levels. Also your signal is bipolar (not uni polar), think about that. Check the theory again.
Google Translate = Örnekleme frekansını 44100'den 8000'e değiştirmek için lcm'yi(ekok) bulmalı ve 10'dan (veya eşit) daha az faktörle interpolate ve decimate yapmalısınız.
Nicemleme(quantization) ile ilgili olarak, nicemleme seviyelerinin sayısı ile bit sayısını karıştırırsınız. Ayrıca sinyaliniz bipolar (uni polar değil), bunu düşünün. Teoriyi tekrar kontrol edin.

7 Cevap
ekremt Yönetici tarafından 4 yıl önce cevaplandı

Merhaba,
Kodunuzu veya ilgili kısmını da paylaşabilir misiniz ? İnceleyecek olanlar için bir fikir oluşturması açısından daha faydalı olacaktır.
Çünkü, sorunuza bir kişinin sadece ekok buldunuz mu, interpolasyon işleminizi 10 basamakla sınırlandırın gibi bir cevap yazılması pek size yardımcı olmayacaktır.

beratberat78 tarafından 4 yıl önce cevaplandı

Açıkça söylemesi gerekirse biz matlabdan anlamıyoruz ve internetten bulabildiğimiz kod bu . Ekok bulmamız gerektiğini bilmiyorduk bile . Yanıtınız için teşekkürler .
Fs2=Fs/5.5125; (44100/5.5125, which is equal to 8000Hz)
‘Fs2’ indicates the new frequency value.

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

Fs2=Fs/5.5125; (44100/5.5125, which is equal to 8000Hz)
‘Fs2’ indicates the new frequency value.

Bu kısımda gördüğünüz gibi verilen frekans değerini dönüşümle yeni frekans değerine çevirisini yapmış.
Ancak anladığım kadarıyla hocanız bu dönüşümü hazır olarak yapmanızı istemiyor ve LCM(EKOK) kullanarak ve 10 itirasyon ile bulmanızı istiyor olabilir. Sinyalinizde altörnekleme(downsampling-decimation) yapmanızı da bekliyor olabilir.
Yanlış yönledirme yapmak istemem tekrar hocanız ile görüşmenizi de tavsiye ederim. 

beratberat78 tarafından 4 yıl önce cevaplandı

Hocamızdan cevap geldi . LCM kullanarak ve 10 iterasyon ile bulmamızı istiyor . 
[x, fs, bits] = wavread('hallo.wav')
fsin = fs;
fsout = 8000;
m = lcm(fsin,fsout);
up = m/fsin;
down = m/fsout
x_8 = resample(x,up,down);
wavwrite(['hallo', '_8000', '.wav'], 'new');
Bu kodla ekoku 3528000 olarak bulduk . bunun devamında iterasyon yapmamız gerekiyor . Bunu nasıl yapabiliriz .

beratberat78 tarafından 4 yıl önce cevaplandı

Hocamızdan cevap geldi . LCM kullanarak ve 10 iterasyon ile bulmamızı istiyor . 
[x, fs, bits] = wavread('hallo.wav')
fsin = fs;
fsout = 8000;
m = lcm(fsin,fsout);
up = m/fsin;
down = m/fsout
x_8 = resample(x,up,down);
wavwrite(['hallo', '_8000', '.wav'], 'new');
Bu kodla ekoku 3528000 olarak bulduk . bunun devamında iterasyon yapmamız gerekiyor . Bunu nasıl yapabiliriz .

beratberat78 tarafından 4 yıl önce cevaplandı

Öncelikle yanıtınız için teşekkür ederim . Ama sanırım hocanın bizden tam olarak istediği komut bu değil . Bizden bu ses sinyalini EKOK (lcm ) kullanarak ve 10 iterasyon kullanarak resampling yapmamızı istiyor .