Gerçek zamanlı ses işlemeyi uygulamak için hangi platformun en iyi olduğuna nasıl karar verilir?


15

Ürün geliştirirken Matlab'da tüm algoritma tasarımımı yapıyorum. Genellikle oldukça basit, bir IIR veya FIR filtresi veya iki, birkaç FFT, vb. Bunlar gömülü bir ortama taşınmanın zamanı geldiğinde, onu hangi platformda çalıştıracağına karar vermekte her zaman zorlanırım. Genellikle şu (geniş) platformları düşünüyorum:

  • DSP çekirdeği
  • FPGA
  • Mikrodenetleyici
  • KOL

Bu kararı vermeye çalışırken hangi faktörleri göz önünde bulundurmalıyım?


2
Neden "ARM" yi "Mikrodenetleyici" den ayırıyorsunuz? TI'nin DSP + ARM parçalarını kategorilere ayırmaya mı çalışıyorsunuz? Düşük güçlü küçük şeyleri daha büyük mikroişlemcilerden ayırmaya mı çalışıyorsunuz? (Bu son durumda, muhtemelen MIPS ve satıcıya özgü 32 bit çekirdekler dahil edilmelidir)
Kevin Vermeer

Mikrodenetleyici düşündüğümde PIC, Atmel, vb. Düşünüyorum ama sanırım ARM de bunun altına düşebilir. Bunların tüm seçenekler olduğunu söylemeye çalışmıyordum, sadece hangi faktörlerin dikkate alınması gerektiğini soruyordum.
Kellenjb

1
"En iyi" yi ne seçersiniz? Güç ile sınırlı mısın? Maliyet? Programlama kolaylığı? Esneklik?
Oliver Charlesworth

@Oli Bütün soru bu, karar vermeye çalışırken hangi faktörlerin göz önüne alınması gerektiği.
Kellenjb

3
@Kellen: Şu anda, bu soru biraz daha fazla kısıtlama olmaksızın "Hangi arabanın en iyi olduğuna nasıl karar verilir?"
Oliver Charlesworth

Yanıtlar:


13

IIR, FIR, radix-2 veya 4 FFT (yani DSP mimarilerine çok fazla kontrol akışı olmadan iyi uyan şeyler) gibi "standart algoritmaları" tutuyorsanız, bunu deneyebilirsiniz:

Tüm algoritmalarınızda saniyede kaç tane "çarpma" yaptığınızı sayın.

  • <10 milyon muhtemelen işi yapmak için hızlı bir mikro denetleyici alabilirsiniz (veya <1M iseniz yavaş bir tane bile)
  • <100M kolay DSP bölgesidir
  • <1G'nin hızlı DSP bölgesi yapılabilir
  • 1G-10G, DSP ve FPGA arasındaki geçişin geldiği yerdir
  • > 10G birden fazla DSP veya FPGA

2
Bu aslında referans için çok güzel bir liste!
Kellenjb

3
Her iki yılda bir 10x ile çarpmayı unutmayın :)
Martin Thompson

Bir "hızlı mikrodenetleyici" örneği verebilir misiniz?
endolith

1
@endolith: bir dahaki sefere baktığımızda herhangi bir olasılıkla değil :) 2014'ün başlarında, belki LPC1768 (100MHz'de saatler - 10 MMACS için biraz iterek) gibi bir şey
Martin Thompson

@MartinThompson: LPC1700 için DSP kütüphanesi , Cortex-M3'ün "2 döngü (32x32) +32 -> 32 imzalı çarpma biriktiğini" söylüyor, yani 50 MMAC?
endolith

11

Bildiğim kadarıyla, ARM bir platformdan ziyade bir mimari olarak düşünülmelidir. Bununla birlikte, soru RT sinyali (bu durumda ses) işleme için hangi platformun kullanılacağı ile ilgilidir.

Aşağıdaki soruları katı sırayla değil, sorarak başlayabilirsiniz:

  • Uygulama için ne kadar zamanım var?
  • Güç kısıtlamalarım nelerdir?
  • Hangi matematiksel işlemlere ihtiyacım var? Paralel olarak çok sayıda çarpan gerektirebilir ve bu nedenle seçiminizi sınırlayabilirsiniz.
  • Ne kadar belleğe ihtiyacım var? (MCU'ların çoğu sınırlıdır)
  • [Önemli] Çalışma sıklığım nedir? Çalışma frekansını düşük tutarak numune alma süresi içinde ne kadar sıkabilirim?
  • Uygulama seçimim için hangi kütüphaneler mevcut?

İlk önce algoritmaya bakarak başlayacağım. Örneğin, çok sayıda FFT ve MAC işlemine ihtiyacınız varsa, çoğu mikrodenetleyiciyi ekarte edebilir ve DSP çekirdeklerine daha fazla odaklanabilirsiniz. Gömülü DSP çekirdeklerine sahip MCU'ların da olduğunu unutmayın.

Bir diğer önemli husus, uygulama alanındaki yeteneğiniz ve uzmanlığınız olacaktır. Uygulama için bir HDL kullanmanız gerektiğinden çoğu insan FPGA'dan uzak durur. FPGA'lardan uzak durmanın bir başka nedeni de güç gereksinimidir.


2

Sadece sağladığınız bilgilerle muhtemelen ARM, (basit IIR'ler ve FIR'lar), ancak güç gereksinimleri, IO gereksinimleri, uygulamayı beklediğiniz ek özellikler gibi dikkate alınması gereken başka faktörler var: Bu cihaz için ne kadar geliştirme süresinden tasarruf edersiniz? alanında DSP parametrelerini değiştirmek için bir ağ bağlantısı ve bir API vardı?

Seçenek yelpazenizi akıllı telefonlara veya Beagle Board gibi kompakt bilgisayarlara genişletmeyi düşündünüz mü? Sinyal işlemenin çözdüğünüz tüm sorunun sadece küçük bir kısmı olduğunu fark edebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.