Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Mikrofon elektretowy + mikrokontroler

memcuch 11 Paź 2013 16:50 2316 6
  • #1 11 Paź 2013 16:50
    memcuch
    Poziom 7  

    Witam, mam kilka pytań (wraz z pojawianiem się odpowiedzi mogą pojawić się kolejne).

    Ogólnie rzecz biorąc, chcę podłączyć mikrofon elektretowy do mikrokontrolera (najpewniej ATmega 32). Musi to być mikrofon o dużej czułości, a ja się kompletnie na tym nie znam i nie wiem jaki wybrać. Przekopałem google i nic szczególnego w sumie nie znalazłem. Więc ty pojawia się 1 pytanie: Czy ktoś zna się na tyle dobrze na mikrofonach, by móc mi polecić jakiś konkretny model?

    Druga sprawa, to kwestia przetwornika A/C. Czy wbudowany w ATmegę 8 bitowy przetwornik wystarczy, by operować na niewielkich sygnałach z mikrofonu? Myślałem, czy nie dołożyć do układu zewnętrznego, 16 lub 18 bitowego przetwornika typu Delta-Sigma, komunikującego się z uK przez SPI. A może wystarczy, jak wzmocnię sygnał z mikrofonu i przetwornik z ATmegi sobie poradzi?

    To na razie tyle, będę wdzięczny za wskazówki.

    Pozdrawiam

    0 6
  • #2 11 Paź 2013 17:57
    nsvinc
    Poziom 35  

    Zalezy co chcesz zrobić z sygnałem po digitalizacji... W sumie każda obróbka sygnału w domenie cyfrowej wymaga filtów antyaliasingowych. Potrzebujesz wzmocnić i odfiltrować sygnał z mikrofonu.
    Zaden ADC nie będzie prawidłowo konwertować sygnału z elektreta bez wzmacniacza mikrofonowego. Potrzebujesz siłą rzeczy mieć te kilkaset mVp-p aby zrobić cos uzytecznego z sygnałem...

    Nie wiem jak wydajnością tego biednego AVRa (co nawet mnożyć sprzętowo nie umie), ale na pewno nie nadaje sie on do DSP. To już CM0 lepszy...

    Ja zrobiłem tak:
    sygnał z elektreta wzmacniam klasycznym ukladem wzmacniacza mikrofonowego na tranzystorze. Dalej sygnał idzie na filtr anty aliasingowy 6-rzędu który obcina (próbuje obcinać) wszystko powyżej 10kHz. ADC nadpróbkuje sygnał x2 (więc Fs=40kHz), i juz w cyfrze jest kolejny etap wycinania aliasingu filtrem FIR 63tap Fc=10kHz. W efekcie dostaje ladny cyfrowy sygnał bez aliasów, nie musząc stosować analogowych filtrów 100000rzędu ;] Ale to jest na ARMie...

    Mam opory aby sądzić że obrobisz tym prockiem sensownie sygnał o częstotliwości wyższej niż kilka kHz. I to 8bitowy. A i to nawet nie ze względu na absolutny brak instrukcji przyspieszających operacje typowe dla DSP, czyli chociażby MAC (Multiple-Accumulate).
    O próbkach szerszych niż 8 bitów zapomnij na zawsze dopóki nie zmienisz procesora...

    A na rynku są gotowe przetworniki ADC Σ-Δ z wbudowanymi filtrami antyaliasingowymi, do zastosowań audio. Ale to co wypada z takiego przetwornika jest tak czy siak poza granicami mozliwosci AVRa...

    0
  • #3 11 Paź 2013 18:29
    memcuch
    Poziom 7  

    Przepraszam, że nie wyraziłem się jasno. Zagadnienie, z jakim się zmagam nawet nie ociera się o DSP ;) Chodzi o to, że ATmega sprawdza to, co jest na wyjściu mikrofonu i jeżeli przekroczy pewien, dopuszczalny poziom, wykonuje odpowiednie instrukcje. Chodzi tylko i wyłącznie o dokładną detekcję poziomu tego sygnału.

    0
  • #4 11 Paź 2013 18:37
    nsvinc
    Poziom 35  

    Co to znaczy 'dokładna detekcja'? Dla mnie dokładna detekcja to jest typowy envelope detector na podstawie transformaty Hilberta. To jest DSP poziom hard.
    Jesli to co robisz to jest np. detektor klaśnięcia, to potrzebujesz detektor szczytowy (peak detector), który da się zrealizować algorytmami bardzo prostymi bez kombinacji znanych z DSP ;] Wtedy mozesz sobie tez odpuscic wszelkiego rodzaju filtrowanie. A dokładność ogranicza ci rozdzielczość ADC i szumy (wzmacniacza, przetwornika,otoczenia). Nie wiedząc jakie jest zastosowanie układu, ciezko ocenić ile bitów przetwornika potrzebujesz...

    0
  • #5 11 Paź 2013 18:47
    memcuch
    Poziom 7  

    Tak, to ma być coś jak detektor klaśnięcia, tylko że ma wykrywać bardzo słabe "klaśnięcia", dlatego mam wątpliwości, czy wbudowany ADC sobie poradzi. I dlatego też potrzebny mi czuły mikrofon.

    0
  • #6 11 Paź 2013 18:50
    nsvinc
    Poziom 35  

    No to jeszcze powiedz jak krótkie impulsy układ ma wykywać? Ten wymóg narzuci minimalną częstotliwość próbkowania.
    Czuły mikrofon to jedno. Myslę ze do dźwiękuw typu klaśnięcie wystarczyłby jednak zwykły elektret z niskoszumnym wzmacniaczem i 16bitowy ADC. To będzie miało naprawdę duża czułość...

    0
  • #7 11 Paź 2013 19:30
    jarek_lnx
    Poziom 43  

    Z przetwornikiem 8 bit może być problem z dynamiką, jeśli chcesz wykorzystać całą rozdzielczość przydała by się automatyczna regulacja wzmocnienia, jeśli nie, ustawisz wzmocnienie tak aby głośniejsze dźwięki nie przesterowały ADC'a, a te cichsze zarejestrujesz z mniejszą rozdzielczością.
    Przy przetworniku 16bit można sobie pozwolić na pewną stratę, przy 8 bit nie bardzo jest z czego.

    EDIT: choć jeśli chcesz wykrywać tylko klaskanie, to może te 8 bit wystarczy.

    0
  Szukaj w 5mln produktów