İlk adım, hem başlangıç numune oranınızın hem de hedef numune oranınızın rasyonel sayılar olduğunu doğrulamaktır . Tamsayı oldukları için otomatik olarak rasyonel sayılardır. Bunlardan biri rasyonel bir sayı olmasaydı, örnekleme oranını değiştirmek yine de mümkün olurdu, ama bu çok daha farklı bir süreç ve daha zordur.
Bir sonraki adım, iki numune hızını hesaba katmaktır. Başlangıç örnek oranı, bu durumda, etkileyen 44100'dür . Hedef örnek oranı, 16000, 2 7 ∗ 5 3'ü etkiler . Bu nedenle, başlangıç numune hızından hedef hıza dönüştürmek için 3 2 ∗ 7 2 ile ara vermeli ve 2 5 ∗ 5 ile enterpolasyon yapmalıyız .22∗ 32∗ 52∗ 7227∗ 5332∗ 7225∗ 5
Verileri nasıl yeniden örneklemek istediğinizden bağımsız olarak önceki adımların gerçekleştirilmesi gerekir. Şimdi FFT'lerle nasıl yapılacağı hakkında konuşalım. FFT'lerle yeniden örneklemenin hilesi, her şeyin iyi çalışmasını sağlayan FFT uzunluklarını seçmektir. Bu, decimation oranının katı olan bir FFT uzunluğunun seçilmesi anlamına gelir (bu durumda 441). Örnek uğruna, 441'lik bir FFT uzunluğu seçelim, ancak 882 veya 1323'ü veya 441'in herhangi bir pozitif katını seçebilirdik.
Bunun nasıl çalıştığını anlamak görselleştirmeye yardımcı olur. Frekans alanında, aşağıdaki şekle benzeyen bir ses sinyali ile başlarsınız.
İşleminiz bittiğinde, örnek hızını 16 kHz'e düşürmek istiyorsunuz, ancak mümkün olduğunca az bozulma istiyorsunuz. Başka bir deyişle, yukarıdaki resimdeki her şeyi -8 kHz'den +8 kHz'ye kadar tutmak ve diğer her şeyi bırakmak istersiniz. Bu aşağıdaki resim ile sonuçlanır.
Örnekleme oranlarının ölçeklendirilmediğini, sadece kavramları göstermek için orada olduklarını lütfen unutmayın.
25∗ 5
Şüphelendiğiniz gibi, birkaç potansiyel sorun var. Her birini gözden geçireceğim ve nasıl üstesinden gelebileceğinizi açıklayacağım.
Verileriniz belirleme faktörünün hoş bir katı değilse ne yaparsınız? Verilerinizin sonunu, belirleme faktörünün bir katı yapmak için yeterli sıfırla doldurarak bunu kolayca aşabilirsiniz. Veriler FFT'den önce doldurulur.
Açıkladığım yöntem çok basit olsa da, zaman alanında zil ve diğer kötü eserler sunabilmesi de ideal değildir. Yüksek frekanslı verileri bırakmadan önce frekans alanı verilerini filtreleyerek bundan kaçınabilirsiniz. Bunu, l uzunluk filtrenizi FFT 'yaparak yapabilirsiniz.l verilerinizi (FFT' 'den önce) en az ile doldurarak yaparsınız.l - 1sıfırlar (lütfen veri örneklerinin sayısının ve dolgu örneklerinin sayısının İKİ belirleme faktörünün pozitif bir katı olması gerektiğini unutmayın - bu kısıtlamayı karşılamak için dolgu uzunluğunu artırabilirsiniz), yastıklı verileri FFT'leme, frekans alanını çarpma veri ve filtre ile yüksek frekans (> 8 kHz) örtüştükten sonra yüksek frekanslı sonuçlar düşmeden önce düşük frekanslı (<8 kHz) sonuçlara dönüşür. Ne yazık ki, frekans alanında filtreleme kendi başına büyük bir konu olduğundan, bu cevapta daha fazla ayrıntıya giremeyeceğim. Bununla birlikte, verileri birden fazla yığın halinde filtreliyor ve işliyorsanız, filtrelemeyi sürekli hale getirmek için Çakışma ve Ekle veya Çakışma ve Kaydet'i uygulamanız gerektiğini söyleyeceğim .
Umarım bu yardımcı olur.
DÜZENLEME: Sonuçların negatif tarafı ile sonuçların pozitif tarafından aynı sayıda örneği kaldırabilmeniz için, sıklık etki alanı örneklerinin başlangıç sayısı ile hedef sıklık etki alanı örnekleri arasındaki farkın eşit olması gerekir. Örneğimizde, örneklerin başlangıç sayısı, decimation oranı veya 441'dir ve hedef numune sayısı, enterpolasyon oranı veya 160'tır. Aradaki fark 279'dur. Çözüm, FFT uzunluğunu 882'ye iki katına çıkarmaktır, bu da hedef örnek sayısının da 320'ye iki katına çıkmasına neden olur. Şimdi fark eşittir ve uygun frekans alanı örneklerini sorunsuz bırakabilirsiniz.