SORU
18 Temmuz 2011, PAZARTESİ


FFT çıktı anlayış yardıma ihtiyacım var

UYGULANDIĞINDA/FFT Hesaplaması çıkışını anlamak için yardıma ihtiyacım var biraz.

Ve bazı akıllı telefon ivme okumalar, asıl frekansları bulma gibi yorumlamak deneyimli yazılım mühendisi lazım. Ne yazık ki, üniversite EE derslerimi en üzerinden on beş yıl önce yattım, ama son birkaç gündür UYGULANDIĞINDA ve FFT (biraz boşuna, anlaşılan) hakkında bir kitap okuyorum.

Lütfen, hiç bir yanıt "EE bir kursa git". Aslında eğer patronum bana ödeyecek eğer bunu yapmayı planlıyorum. :)

İşte benim sorunum bu yüzden:

32 Hz bir sinyal yakaladım. Burada Excel belirledim 32 puan 1 ikinci bir örneği.

enter image description here

Ben o FFT code bazı Columbia Üniversitesi'nden Java ile yazılmış var (bir yazı önerileri takip sonra "Reliable and fast FFT in Java").

Bu programın çıktısı aşağıdaki gibidir. Yerinde bir FFT çalıştığı inanıyorum, onu yeniden kullanır hem giriş hem de çıkış için aynı tampon.

Before: 

Re: [0.887  1.645  2.005  1.069  1.069  0.69  1.046  1.847  0.808  0.617  0.792  1.384  1.782  0.925  0.751  0.858  0.915  1.006  0.985  0.97  1.075  1.183  1.408  1.575  1.556  1.282  1.06  1.061  1.283  1.701  1.101  0.702  ]

Im: [0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  ]

After: 

Re: [37.054  1.774  -1.075  1.451  -0.653  -0.253  -1.686  -3.602  0.226  0.374  -0.194  -0.312  -1.432  0.429  0.709  -0.085  0.0090  -0.085  0.709  0.429  -1.432  -0.312  -0.194  0.374  0.226  -3.602  -1.686  -0.253  -0.653  1.451  -1.075  1.774  ]

Im: [0.0  1.474  -0.238  -2.026  -0.22  -0.24  -5.009  -1.398  0.416  -1.251  -0.708  -0.713  0.851  1.882  0.379  0.021  0.0  -0.021  -0.379  -1.882  -0.851  0.713  0.708  1.251  -0.416  1.398  5.009  0.24  0.22  2.026  0.238  -1.474  ]

Yani, bu noktada, çıktı, yazı tura gelemeyeceğim. UYGULANDIĞINDA kavramları, gerçek kısmını bileşeni kosinüs dalgalarının genlik ve hayali bölümü gibi bileşen sinüs dalgalarının genlik olmanın ne demek olduğunu biliyorum. Aynı zamanda büyük kitaptan bu diyagram takip edebilirsiniz "The Scientist and Engineer's Guide to Digital Signal Processing": enter image description here

Benim belirli sorular şöyle:

  1. FFT çıktı, nasıl bulurum "en frekanslarda meydana gelen"? Bu ivme verileri analiz ederek bir parçasıdır. Gerçek (kosinüs) veya hayali (sinüs) diziler okumalı mıyım?

  2. 32 nokta giriş bir süre içinde etki alanı var. FFT çıktı hayali için 16 eleman gerçekte de Dizi ve 16 elemanlı bir dizi olması gerekmez mi? Neden Programın boyutu 32 gerçek ve hayali dizi çıktıları hem veriyor mu?

  3. Bir önceki soru ile ilgili, nasıl çıktı dizide dizinleri ayrıştırma mı? Bana verilen giriş 32 örnekleri örnek 32 Hz, bildiğim kadarıyla bu bir 16-elemanlı dizi çıkış olmalı endeksini eşit yaymak için 1/2 örnekleme oranı (32 Hz), ben doğru anlayış her elemanın dizi temsil eder (32 Hz * 1/2) / 16 = 1 Hz?

  4. Neden FFT çıktı negatif değerler var mı? Değerleri bir sinusoid genlik temsil düşündüm. Örneğin, Gerçek çıktı[ 3 ] = -1.075 frekans 3 kosinüs dalgası için -1.075 bir genlik demek gerekir. Bu doğru mu? Nasıl bir genlik negatif olabilir?

CEVAP
19 Temmuz 2011, Salı


  1. Bir karmaşık sayı gerçek ve hayali dizinizi ne olduğunu () gerçek ya da hayali kısmı için bakmak gerekir ne. Bunun yerine Karekök (gerçek * gerçek görüntü * görüntü) tanımlanan frekans büyüklüğü için bakmak istiyorum. Bu sayı her zaman pozitif olacaktır. Aramak için artık tüm maksimum değere (dizinin ilk girişi görmezden. Bu DC ofset ve frekans bağımlı bilgi taşır).

  2. Karmaşık, karmaşık bir FFT kullandığınızdan 32 32 gerçek ve hayali çıktılar. Sıfır hayali parçaları ile genişleterek 64 değerleri (veya 32 karmaşık değerler) 32 örnekleri dönüştürülmüş ettik unutmayın. Bu frekans sonucu iki kez oluştuğu simetrik FFT bir çıkış olur. Bir kez hazır kullanımda çıkışları 0 N/2 ve bir kez de yansıtılmış çıkışları N/2 N senin işin kolay göz ardı çıkışları N/2 N. ihtiyacın yok onlara, onlar sadece bir obje üzerine nasıl hesaplanır sizin FFT.

  3. Frekansı fft-bin denklemi (bin_id * frekans/2) / (N/2) frekans senin örnek frekans (aka 32 Hz, N boyutunu FFT). Senin durumunda bu bin başı 1 Hz kolaylaştırır. N bidonları N/2 negatif frekansları (garip bir kavram, biliyorum) temsil eder. Dava için/2 ilk N frekans sadece bir ayna oldukları için önemli bilgiler içerir yok.

  4. Her bin gerçek ve hayali parçaları bir karmaşık sayı oluşturur. Eğer gerçek ve hayali parçaları olumlu kendisi frekans büyüklüğü (1 soru için cevabım) ise negatif çıkarsa sorun kalmaz. Karmaşık sayılar okumanızı öneririm. Stackoverflow soru tek açıklamak mümkün ne olduğunu nasıl çalıştığını anlatan (ve yararlıdır neden) aşıyor.

Not: ayrıca özilinti ve sinyalinin temel frekans bulmak için kullanılır nasıl okumak isteyebilirsiniz. İstediğinin gerçekten bu olduğunu hissediyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chuck Testa

    Chuck Testa

    14 AĞUSTOS 2011
  • skiesofblack.net

    skiesofblack

    14 HAZİRAN 2009
  • Tinkernut

    Tinkernut

    28 Aralık 2006