8+ Kanal Analog Sinyal İşlenmesi

Başlatan SB7, 11 Eylül 2022, 20:00:51

SB7

Merhabalar,
Başlıkta da belirttiğim gibi 8 veya daha fazla ses girişi olan bir sistem düşünelim. Bu ses sinyalleri en iyi şekilde örnekleyip PC de işlemek istiyorum. Amacım Python ile sesleri tanımak. Python öğrenmek için bu projeyi yapıyorum. Aklıma gelen yöntemleri aşağıda sıraladım fakat artıları eksileri ne olur kestiremedim fikirlerinize ihtiyacım var.

-1 MCU kullanmak(STM32): Bu yöntemde DMA ile sırayla her kanalı örnekleyip bir diziye atarak verileri PC'ye göndermeyi planlıyorum. Ses tanıma işlemini PC de yapacağım. Ancak hız konusunda takıldım. Örneğin STM32f103c8 modelinde 1us 16 kanal 12 bit ADC çözünürlüğü var. 20kHz e kadar olan ses sinyallerini örneklemek istersem Nyquist'e göre 40kHz de örnekleme yapmam gerekiyor. Yani 25us de bir örnek alsam yetiyor. 8 mikrofon olsa her örnek 1us den 25us içinde her kanaldan 3 kez örnek alabilirim anlamına mı geliyor bu? Komut işleme süreleri ADC den ölçüm süresini ne kadar etkiler?

-Her kanal için 1 MCU: Örnek sayısını arttırmak ve denetleyiciyi tamamen örnek alıp veri göndermek üzerine programlamak.

-1 MCU ve MUX benzeri yapılar ve harici ADC donanımı ile örnekleme yapmak.

-DSP- FPGA vb sistemler(Hiç deneyimim yok)

Bunlar benim aklıma gelenler bu iş için hazır modüller veya entegreler varsa öğrenmek isterim.

Fikirlerinize ihtiyacım var, cevaplar için şimdiden teşekkürler.

-SB7

elektronik kassabı

Bu entegrelerin birbirleriyle çok iyi anlaşan gelişmiş çevre birimleri var. 40 KHz'lik bir zamanlayıcı ADC'yi tetiklesin. ADC için 8 tane "regular channel" ayarlamış olun. Bu 8 kanalın zamanlamasını 1/40k saniyeye verimli bir şekilde sığdırın ki örnekleme zamanını (sampling time-ölçüm kondansatörlerinin şarjı) uzatmaya zaman varsa uzasın, böylece sinyal empedans gereksinimi için tolerans biraz yükselsin. Bunları DMA kullanarak bir hafıza alanına yazın. Hatta double buffer kullanın. ADC bir yere yazılırken, sistem hiç kesintiye uğramadan diğer kısında veriyi işlersiniz. Kullandığınız entegrede double buffer özelliği yok ama hafıza bölgesinin ortasında interrupt oluşturan bir makenizma var, bundan faydalanabilirsiniz.

power20

Alıntı yapılan: SB7 - 11 Eylül 2022, 20:00:51en iyi şekilde örnekleyip
CD kalitesi, telefon kalitesi, stüdyo kalitesi... bunlar arasında çok fark var. Beklentiye göre uygun donanım seçmek gerekir.

MC_Skywalker

Konuyu merak ettim ve sormak istediğim birşey var niye 8+ kanal ses girişi?

fide

#4
Respeaker marka mic array boardları var. 2-4-6 kanal olanını biliyorum. 4 kanal olandan iki tane de kullanılabilir. Eğer kod çalışacaksanız bu mic array alıp spi ile pcye bağlayın. Yada f4-disco türü bir kart ile spi üzerinden micleri okuyun ve usbden pcye aktarın.

Yada işi raspberry pi üzerine planlayıp donanım ile hiç uğraşmayın. Kartlar pi 2-3-4 uyumlu belirteyim bu arada.

Respeaker 6 kanal var en fazla. Belki ikinci bir kart spi cs pini ile ilave edilebilir.

Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

SB7

Cevaplar için teşekkürler herkese.

@elektronik kassabı hocam ilk yöntemi anlatmışsınız. Denemeden artılarını eksilerini kestirmek zor galiba.

@Kılıç hocam üstdüzey bir beklentim yok CD kalitesi bile fazlasıyla işimi görür.

@MC_Skywalker hocam ses kaynağının yerini de tespit etmek istiyorum bu yüzden açılı şekilde dizilmiş mikrofonlardan gelen ses datalarına ihtiyacım var. 2 mikrofonla bile yapılabilir aslında ama mikrofon sayısı ile çözünürlük arasında doğru bir orantı var. Hem test amaçlı bir düzenek olacak, birşeyler öğrenmek istiyorum.

@fide hocam güzel bir öneri oldu çok sağ olun. Rasberry Pi ile hiç uğraşmadım. PC arayüz programları yazabilmek, Python ile veri analizi belki makina öğrenmesi gibi konulara giriş amaçlı bir proje olacak. İşin içinde bilgisayar da olsun istiyorum. Sadece bu işi yapmak için olsaydı, öneriniz (fiyatı dışında) güzel olurdu.


-SB7

fide

Alıntı yapılan: SB7 - 11 Eylül 2022, 21:56:29@fide hocam güzel bir öneri oldu çok sağ olun. Rasberry Pi ile hiç uğraşmadım. PC arayüz programları yazabilmek, Python ile veri analizi belki makina öğrenmesi gibi konulara giriş amaçlı bir proje olacak. İşin içinde bilgisayar da olsun istiyorum. Sadece bu işi yapmak için olsaydı, öneriniz (fiyatı dışında) güzel olurdu.


Raspberry pi 4 bir sbc de hem python hem makine öğrenmesi rahat çalışır. 
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com