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

przetwarzanie audio - cztero kanałowe wejscie audio

gn000 12 Paź 2011 14:40 1622 5
  • #1 10019261
    gn000
    Poziom 12  
    Witam kolegów
    w trakcie programowania urządzenie audio natrafiłem na ciekawy problem.
    Zamieszczam zdjęcie podzielone na trzy cześci : lewa - wykres, środek - odebrany bufor windows, prawa - wysłany bufor - dalej będę się odwolywał do tej fotki.

    przetwarzanie audio - cztero kanałowe wejscie audio

    Mianowicie zbudowałem układ wejścia audio USB które jest dostępne w systemie operacyjnym jako typowe wejscie mikrofonowe. W procesorze wygenerowałem przebieg prostokątny (fotka prawa str) wysłałem go do komputera pc win xp za pomocą USB na nim wyświetliłem w formie wykresu (lewa str) oraz wyświetliłem zwracany przez windows bufor z danymi (środek). Widać że jest tam zniekształcenie (te przesterowania czy przepięcia po zmianie poziomu) , na dodatek w buforze (srodek) są wartości jakich tam nie wysłałem, są one bliskie prawdy jednak nie identyczne z wysłanymi !
    Podkreślam że sygnał został wygenerowany sztucznie przez kod z prawej strony fotki, nie jest to wynik przetwarzania analogowo cyfrowego sygnału z generatora, lecz zestaw wartości najpierw +20000 potem -20000, oczywiście w budowanym urządzeniu nie ma bloków analogowych (na tym etapie) .
    Cyfrowy sygnał, cyfrowe USB, komputer PC (też cyfrowy).

    I tu pytanie co wprowadza to zniekształcenie ?
    Oczywiście sam myślałem nad rozwiązaniem problemu i wg. mnie możliwe są dwa scenariusze :
    - mikser audio w komputerze działa tak, że jest tam DAC kilka rezystorów i ADC, co wydaje się conajmniej zaskakującym podejściem bo poco cyfrowy sygnał kierować do bloków analogowych a następnie ponownie go próbkować ? Oczywiście poza łatwym miksowaniem zamiast DSP jest kilka rezystorów.
    - Sygnał jest celowo zniekształcany celem ochrony praw autorskich i blokady całkowicie cyfrowego przetwarzania audio.

    Może ktoś zna odpowiedz ?


    Proszę zapoznać się z zasadami umieszczania obrazków w postach,
    post poprawiony And!
  • #2 10019409
    __Grzegorz__
    Poziom 30  
    Powodem jest na 99,99% różnica w częstotliwości próbkowania urządzenia wejściowego i wyjściowego np 44,1kHz na wejściu i 48kHz na wyjściu
    (nawet przy ilorazie będącym liczbą całkowitą [48/8, czy 44100/11050] efekt się pojawi)...
    Resampling cyfrowy "dorobił" przerzuty...

    Postaraj się zrównać obie wartości i sprawdź ponownie...
  • #3 10019526
    gn000
    Poziom 12  
    Zaciekawiłeś mnie, zasadniczo nie zgadzałem się z tym bo urządzenie wejściowe to kod programu generujący próbki w procesorze ARM (bez przetwornika) a urządzenie wyjściowe to wykres. Jednak postanowiłem zrobić próbę i przy 22050, 44100,64000,96000,88200 problem występuje, ku mojemu zaskoczeniu przy 48000 próbki i wykres są idealne.

    Czy możesz to wyjaśnić dokładniej ?
    Czy oznacza to że mając próbki 200kHz resampling zawsze będzie robił mi takie psikusy, dodam że chciałem na najmłodzym bicie przekazać dodatkową informację - jeden bit ustawiany na 0 lub 1 w zależności od potrzeb, bit ten byłby zerowany w komputerze w efekcie chciałem mieć przetwornik 15 bitowy i mój bit.
  • Pomocny post
    #4 10019678
    __Grzegorz__
    Poziom 30  
    Pisząc o urządzeniach we/wy miałem na myśli urządzenia we/wy karty dźwiękowej.

    Z grubsza:
    Karta dźwiękowa zwykle ma kilka wejść i kilka wyjść.
    Każde z wejść może mieć inną częstotliwość próbkowania.

    Aby móc te sygnały dalej chociażby zsumować cyfrowo,
    karta dźwiękowa MUSI je wszystkie sprowadzić do jednej częstotliwości próbkowania, czyli o ile jest potrzeba, to karta sama zrobi resampling.

    Wszystkie operacje dostępne na karcie (equalizery, pogłosy itp) są robione na nazwijmy to "natywnej" częstotliwości próbkowania karty, przez procesor karty.

    Nowe karty dźwiękowe pozwalają wybrać "natywny" format pracy (44,1/48/96/192kHz + 16/24bit, nowsze operuja na floatach).

    Sygnał zsumowany, jest kierowany do wyjść (wyjścia) i znowu, jeżeli wyjście jest cyfrowe, może zajść potrzeba resamplingu.

    U Ciebie na wejściu podałeś "idealny" prostokąt.
    Niestety, jeżeli zajdzie jakakolwiek potrzeba resamplingu na nim,
    to dzięki panu Gibbsowi wiemy, że przerzutów i innych ciekawych efektów nie da się przy tym uniknąć.

    Przesyłanie informacji na najmłodszym bicie - cóż, karta przy sumowaniu sygnału z wielu źródeł (nawet jeżeli nie ma resamplingu), może ci ten bit w pewnych okolicznościach "zepsuć"...
    Jeżeli "zapiąłeś się" urządzeniem wyjściowym bezpośrednio na wejściu mikrofonowym USB, to raczej nic nie powinno sie temu bitowi stać (o ile nie wystąpi resampling)...
  • #5 10019860
    gn000
    Poziom 12  
    Rozumiem w takim razie że w moim wypadku Windows jeśli dostanie próbki inne niż 48kHz resampluje sobie je do częstotliwości 48kHz ?
    np. dla celów miksowania cyfrowego z innymi dzwiękami systemu.
  • #6 10026235
    gn000
    Poziom 12  
    Dziękuję z info to wiele rozwiązało , obecnie pracuję nad trochę inną koncepcją przesyłania danych.
REKLAMA