SORU
2 Mart 2009, PAZARTESİ


Ses kullanılarak Hızlı Fourier Dönüşümü analiz etmek

Python ile grafik bir spektrum analizi oluşturmak için çalışıyorum.

1024 bayt ses akış hızı okumakta ve birlikte 2 kanal genlik ortalama duyuyorum. Şimdi 256 imzalı şort bir dizi var. Ben şimdi bu dizi üzerinde bir fft ürününün, numpy gibi bir modül kullanarak, başlamak için hangi grafik spektrum çözümleyici oluşturmak için sonuç sadece 32 bar olacak.

Hızlı Fourier Dönüşümü ve Ayrık Fourier Dönüşümü hakkında wikipedia makaleleri okudum ama yine de elde edilen dizinin temsil ettiği belirsiz duyuyorum. Bu dizi benim dizi numpy kullanarak: bir fft ben ürününün sonra böyle gözüküyor

   [ -3.37260500e 05  0.00000000e 00j   7.11787022e 05  1.70667403e 04j
   4.10040193e 05  3.28653370e 05j   9.90933073e 04  1.60555003e 05j
   2.28787050e 05  3.24141951e 05j   2.09781047e 04  2.31063376e 05j
  -2.15941453e 05  1.63773851e 05j  -7.07833051e 04  1.52467334e 05j
  -1.37440802e 05  6.28107674e 04j  -7.07536614e 03  5.55634993e 03j
  -4.31009964e 04 -1.74891657e 05j   1.39384348e 05  1.95956947e 04j
   1.73613033e 05  1.16883207e 05j   1.15610357e 05 -2.62619884e 04j
  -2.05469722e 05  1.71343186e 05j  -1.56779748e 04  1.51258101e 05j
  -2.08639913e 05  6.07372799e 04j  -2.90623668e 05 -2.79550838e 05j
  -1.68112214e 05  4.47877871e 04j  -1.21289916e 03  1.18397979e 05j
  -1.55779104e 05  5.06852464e 04j   1.95309737e 05  1.93876325e 04j
  -2.80400414e 05  6.90079265e 04j   1.25892113e 04 -1.39293422e 05j
   3.10709174e 04 -1.35248953e 05j   1.31003438e 05  1.90799303e 05j...

Bu rakamlar neyi temsil ve 32 bar her bir yükseklik yüzdesi bu numaraları dönüştürmek istiyorum nasıl merak ediyorum. Ayrıca, birlikte 2 kanalları ortalama olayım?

CEVAP
3 Mart 2009, Salı


Gösteriyoruz dizi ses sinyali Fourier katsayıları Dönüşümü. Bu katsayılar Ses frekans içeriği almak için kullanılabilir. FFT giriş karmaşık değerli fonksiyonlar için tanımlanmış, dışarı katsayıları giriş tüm gerçek değerleri olsa bile, sanal sayılar olacak. Her frekans güç miktarı elde etmek için, her bir frekans için FFT katsayısının büyüklüğünü hesaplamak gerekir. Budeğilsadece katsayısı gerçek bileşeni, gerçek ve hayali bileşenlerinin karelerinin toplamına Kare kökünü hesaplamak gerekir. Yani, eğer senin katsayısı b*j ise, o zaman onun büyüklüğü Karekök (^2 b^2).

Her FFT katsayıları büyüklüğü hesaplanmış bir kez, her FFT katsayısı ait olduğunu öğrenmeliyiz. N noktası FFT sana aralıklı frekansları, 0'dan başlayarak eşit N sinyal frekans içeriği verecektir. Örnekleme frekansı olmasıdır 44100 örnek / sn. ve FFT nokta sayısı 256, frekans aralığı vardır 44100 / 256 = 172 Hz (yaklaşık)

Dizinizi ilk katsayısı 0 frekans katsayısı olacak. Bu temelde tüm frekanslar için ortalama güç seviyesi. Senin katsayıları kalan 128 kadar katları 172 Hz 0-Kont. Bir FFT, sadece frekansları yarısına kadar örnek puan ölçebilirsiniz. Okuyun bu bağlantıları Nyquist Frequency Nyquist-Shannon Sampling Theorem Eğer bir obur için ceza ve bilmemize gerek, ama temel sonucu alt frekanslara sahip olacağız çoğaltılmış veya aliased yüksek frekans kovalar. Frekanslar N - 1 katsayısı kadar her katsayı için 0, 172 Hz artış/2 N katsayı başlangıç, 172 Hz küçült o zaman.

Bu işe başlamanız için yeterli bilgi olmalıdır. Eğer Wikipedia'da verilen daha FFTs için çok daha ulaşılabilir bir giriş istiyorsanız, Understanding Digital Signal Processing: 2nd Ed. deneyebilirsiniz. Benim için çok faydalı oldu.

Bu sayılar neyi temsil edilir. Yükseklik yüzdesi dönüştürme tüm bileşen büyüklükleri toplamı ile her bir frekans bileşeni büyüklüğü Ölçekleme tarafından yapılabilir. Bu sadece göreli frekans dağılımı temsil verecek olsa da, her frekans için gerçek güç değil. Frekans bileşeni için maksimum büyüklük Olası Ölçekleme deneyebilirsiniz, ama bu çok iyi görüntüler emin değilim. Uygulanabilir bir ölçeklendirme etkeni bulmak için en hızlı yolu yüksek sesle ve yumuşak ses sinyalleri doğru ayarı bulmak için deney.

Son olarak, eğer bir bütün olarak tüm ses sinyallerinin frekans içeriğini göstermek istiyorsanız birlikte iki kanal, ortalama olmalıdır. Mono ses içine stereo ses karıştırma ve kombine frekansları gösteriyoruz. Eğer sağ ve sol frekanslar için iki ayrı görüntüler istiyorsanız, her kanal üzerinde Fourier analizi ayrı ayrı yapmak gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dumb Stupid Videos

    Dumb Stupid

    26 Kasım 2013
  • kindlechatmail

    kindlechatma

    25 AĞUSTOS 2010
  • MrChiCity3

    MrChiCity3

    14 NİSAN 2008