logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

DFT sygnału audio z telefonu i generatora - różnice w reakcji układu

robiw 03 Sty 2021 11:00 789 23
  • #1 19155354
    robiw
    Poziom 26  
    Witajcie,
    Ostatnio wykonałem prosty układzik, który liczy DFT sygnału doprowadzanego do wejścia przetwornika ADC wbudowanego w mikrokontroler. Maksymalna amplituda sygnału wejściowego to 2.5V (5Vpp), zaś częstotliwość to 12kHz. BIN wynosi 200Hz. Okazuje się, że układ bardzo ładnie liczy moce sygnału dla poszczególnych częstotliwości, gdy podaję na jego wejście sygnał sinus z generatora arbitralnego, gdzie dowolnie przestrajam częstotliwość. Układ reaguje bardzo selektywnie na częstotliwość z generatora, natomiast po podłączeniu "rzeczywistego" sygnału audio z wyjścia słuchawkowego telefonu komórkowego prawie nie ma reakcji. Rozumiem, że to wyjście nie osiąga poziomu amplitudy sygnału 2.5V, ale i tak powinno działać to trochę lepiej. Dopiero, gdy programowo "wzmocnię" sygnał liczony przez funkcję DFT to wskazania dążą do tych z generatora. Czy to wyłącznie kwestia amplitudy, impedancji wejściowej czy jeszcze coś innego? robiw
  • #2 19155411
    ArturAVS
    Moderator
    robiw napisał:
    sygnału audio z wyjścia słuchawkowego telefonu komórkowego prawie nie ma reakcji

    Zwróć uwagę że większość wzmacniaczy w urządzeniach przenośnych ma "wzmacniacze cyfrowe" (klasa D) i na wyjściu nie uświadczysz typowego przebiegu audio. Spróbuj podać sygnał z analogowego źródła (np. wyjście słuchawkowe typowego magnetofonu czy CD playera) i wtedy sprawdź efekty.
  • #3 19156164
    Konto nie istnieje
    Poziom 1  
  • #4 19156218
    robiw
    Poziom 26  
    Sprawdzę, jak tylko dorwę nową ATmegę, bo stara raczej padła...niemniej jednak to nie pierwszy układ, który zrobiłem liczący DFT bardzo ładnie, gdy podamy mu sinus z generatora. Działa to wtedy bardzo selektywnie, powiedziałbym wzorcowo. Jak tylko podłączę go do wyjścia słuchawkowego komórki dzieje się wielka lipa, prawie nie reaguje wcale i do tego, gdy tylko wejście jest podłączone do komórki nie grającej w tej chwili niczego to na najniższych rejestrach (BIN = 200Hz lub 400Hz) pokazuje dość dużą moc sygnału. Testowałęm też na aplikacji generatora sinusa na komórce - działa dużo lepiej, nie tak dobrze, jak na generatorze arbitralnym, ale dużo lepiej niż, gdy puszczam (głośno) muzykę. Żeby osiągnąć podobny efekt z muzyką jak z generatorem arbitralnym to muszę zwiększyć czułość funkcji liczącej DFT od 32x do 64x (aż tyle). Nie wiem, dlaczego tak się dzieje...robiw
  • #5 19156308
    jarek_lnx
    Poziom 43  
    robiw napisał:
    gdy tylko wejście jest podłączone do komórki nie grającej w tej chwili niczego to na najniższych rejestrach (BIN = 200Hz lub 400Hz) pokazuje dość dużą moc sygnału.
    To może być aliasing nośnej wzmacniacza klasy D, spróbował bym dołożyć filtr dolnoprzepustowy.

    Ciekaw jestem jak masz zrobiona polaryzację wejścia ADC, potrzebne jest odcięcie składowej stałej przez kondensator i polaryzacja na Vcc/2
  • #6 19156322
    robiw
    Poziom 26  
    jarek_lnx napisał:
    potrzebne jest odcięcie składowej stałej przez kondensator i polaryzacja na Vcc/2


    Dokładnie, na wejściu filtr LPF nas 12kHz z op-ampa spolaryzowanego połową napięcia referencji (2.5V). Tak, jak pisałem, z generatorem arbitralnym działa doskonale, z generatorem z komórki już gorzej, z muzyką z komórki prawie wcale...r
  • #7 19156346
    ArturAVS
    Moderator
    robiw napisał:
    z generatorem z komórki już gorzej, z muzyką z komórki prawie wcale...r

    Dołóż jeszcze jakieś obciążenie w postaci rezystora kilkadziesiąt omów, te wzmacniaczy nie są konstruowane do wysokiej impedancji obciążenia.
  • #8 19156372
    robiw
    Poziom 26  
    ArturAVS napisał:
    Dołóż jeszcze jakieś obciążenie w postaci rezystora kilkadziesiąt omów


    Dokładałem 10k. Ale spróbuję mniejszy...R
  • #9 19156404
    ArturAVS
    Moderator
    Poniżej 100 omów przynajmniej, 10k to jakby go wcale nie było.
  • #10 19157837
    robiw
    Poziom 26  
    Hejka,
    Sprawdziłem układ na urządzeniu docelowym, jakim jest podłączony odtwarzacz CD. Działa to bardzo ładnie, niemniej jednak dla najniższej, analizowanej częstotliwości (400Hz) musiałem zmniejszyć czułość funkcji DFT 16x by nie zgłaszała zbyt dużej mocy sygnału. Podejrzewam, że jest to spowodowane bliskością częstotliwości 0Hz, czyli obecnością składowej stałej w sygnale na poziomie 0.5Vref (w celu umożliwienia przetwarzania sygnału przez ADC). Także podejrzenie odnośnie sygnału z złącza słuchawkowego komórki i jego cyfrowego charakteru zdają się być słuszne. Wszystkim dziękuję za udział w dyskusji... robiw
  • #11 19157846
    Konto nie istnieje
    Poziom 1  
  • #12 19157847
    robiw
    Poziom 26  
    Dokładnie, masz rację. Odejmuję 0.5Vref. W takim razie nie wiem, skąd taka zwiększona czułość najniższego pasma...a może po prostu tych częstotliwości jest najwięcej (400Hz)...R
  • #13 19157861
    ArturAVS
    Moderator
    robiw napisał:
    może po prostu tych częstotliwości jest najwięcej (400Hz)...R


    Podejrzyj analizatorem widma składowe częstotliwości sygnału audio... Zdziwisz się jakie są różnice poziomów.
  • #14 19157872
    robiw
    Poziom 26  
    Chodzi Ci o wpływ 50Hz i aliasów? R
  • #15 19157879
    ArturAVS
    Moderator
    Nie, o zawartość wyższych częstotliwości w sygnale. Widać to nawet na "zwykłym" analizatorze widma akustycznego.
  • #16 19157887
    robiw
    Poziom 26  
    Hmm, z wyższymi nie mam problemu, działa to bardzo ładnie. Problem jest z tymi kilkaset Hz... R
  • #17 19157894
    ArturAVS
    Moderator
    robiw napisał:
    Problem jest z tymi kilkaset Hz...

    Po prostu jest ich więcej, musiałbyś zrobić jakiś pre-amp korekcyjny lub korygować programowo poziomy dla niskich f. Pokaż schemat bo być może "niechcąco" wyszedł Ci filtr podbijający niskie częstotliwości.
  • #18 19157895
    CYRUS2
    Poziom 43  
    robiw napisał:
    Okazuje się, że układ bardzo ładnie liczy moce sygnału dla poszczególnych częstotliwości, gdy podaję na jego wejście sygnał sinus z generatora arbitralnego
    Um²/2R to żaden problem
    robiw napisał:
    natomiast po podłączeniu "rzeczywistego" sygnału audio z wyjścia słuchawkowego telefonu komórkowego prawie nie ma reakcji. Rozumiem, że to wyjście nie osiąga poziomu amplitudy sygnału 2.5V
    Nie, to program mierzący moc jest źle zrobiony.
    Proszę obejrzeć sygnał rzeczywisty na oscyloskopie.
    To przebieg bardzo "odkształcony" (w odniesieniu do sinusa).
  • #19 19157899
    robiw
    Poziom 26  
    CYRUS2 napisał:
    Nie, To program mierzący moc jest źle zrobiony.


    Program to zwykłe liczenie mocy przy użyciu tzw, twiddle factors, czyli współczynników wektora rotującego... R
  • #20 19157904
    jarek_lnx
    Poziom 43  
    Pomocne mogło by być wyświetlenie kształtu przebiegu zanim zrobisz z niego DFT.
  • #21 19157920
    Konto nie istnieje
    Poziom 1  
  • #22 19157924
    CYRUS2
    Poziom 43  
    robiw napisał:
    Program to zwykłe liczenie mocy przy użyciu tzw, twiddle factors, czyli współczynników wektora rotującego... R
    Moc w rzeczywistym przebiegu audio jest tylko w niskich częstotliwościach.
    Większe częstotliwości to zmiana kształtu zbocza.
    Moc dla rzeczywistego przebiegu audio to nie jest "zwykłe"liczenie".
    "Witort" 50 lat temu podawał pojęcie "mocy muzycznej"
  • #23 19163116
    __Grzegorz__
    Poziom 30  
    Tylko przypomnę, że widzimy i słyszymy "logarytmicznie"...

    Zatem pokazywanie binów proponuję jeszcze zlogarytmować jakimś szybkim algorytmem, niekoniecznie super dokładnym....

    Prosty przykłąd:
    Amplituda bina (moc sygnału w tym binie) liniowo spadnie 10 razy i już po niej w skali liniowej,
    a w mierze logarytmicznej to będzie -10dB, co w skali powiedzmy 48dB (~8Bit), da zmniejszenie tylko ~1/5 skali.

    I to co będzie widać będzie bardziej intuicyjne...
  • #24 19163184
    robiw
    Poziom 26  
    Oczywiście zastosowałem logarytmiczne przekształcenie, bo sygnał o dość dużej dynamice pokazuje na 10-diodowej linijce, więc taki zabieg był konieczny, żeby miało to sens... R

Podsumowanie tematu

W dyskusji poruszono problem różnic w reakcji układu DFT sygnału audio z telefonu komórkowego i generatora arbitralnego. Użytkownik zauważył, że układ działa dobrze z sygnałem sinusoidalnym z generatora, ale ma problemy z sygnałem audio z telefonu, który nie osiąga wymaganej amplitudy 2.5V. Uczestnicy sugerowali użycie analogowego źródła sygnału, dodanie filtru dolnoprzepustowego oraz obciążenia o niższej impedancji. Wskazano również na możliwość aliasingu oraz konieczność przesunięcia składowej stałej w sygnale. Użytkownik potwierdził, że z odtwarzaczem CD układ działa lepiej, ale nadal wymaga dostosowania czułości dla niskich częstotliwości. Zastosowanie logarytmicznego przekształcenia dla wyświetlania mocy sygnału również zostało omówione.
Podsumowanie wygenerowane przez model językowy.
REKLAMA