katzenjammer
Guest
Thu Jul 20, 2006 12:06 pm
Witam!
Zaczynam od tej grupy bo narazie nie mam pomysłu gdzie indziej pytać...
Chodzi o to iż chciałbym stworzyć softwarowy zestaw algorytmów
przetwarzających sygnał audio w określony sposób (między innymi modulacja
FM, kodowanie PWM). Średnio się orientuje w gamie programów umozliwiających
takie "zabawy", matlab jako pierwszy przyszedł mi do głowy. Problem tkwi w
tym że sygnał wyjściowy chciałbym wyprowadzić na zewnątrz komputera, zapewne
przez RS232 tak aby mógł w czasie rzeczywistym sterować wzmacniaczem i
podłączonym do niego przetwornikiem piezo. Zakres częstoitliwości
analogowego sygnału końcowego (0-70k)Hz
Przykładowo, wprowadzam plik audio, który ulega w czasie rzeczywistym
przetwarzaniu i w zmienionej postaci jest wyprowadzony do układów
zewnętrznych.
Pytam sie więc, czy tędy wogóle droga, czy jest to możliwie, jakie są inne
możliwości, programy itepe itede... Pytanie dość ogólne i otwarte bo i
problem jest narazie dość otwarty, za wszelkie porady, wskazówki,
podpowiedzi będę wdzięczny.
Pozdrawiam, Marcin
Piotr \"PitLab\" Laskowsk
Guest
Thu Jul 20, 2006 1:29 pm
Quote:
Chodzi o to iż chciałbym stworzyć softwarowy zestaw algorytmów
przetwarzających sygnał audio [...] Problem tkwi w
tym że sygnał wyjściowy chciałbym wyprowadzić na zewnątrz komputera,
zapewne
przez RS232 tak aby mógł w czasie rzeczywistym sterować wzmacniaczem i
podłączonym do niego przetwornikiem piezo. [...]
Przykładowo, wprowadzam plik audio, który ulega w czasie rzeczywistym
przetwarzaniu i w zmienionej postaci jest wyprowadzony do układów
zewnętrznych.
Może obrób i zapisz do pliku a odtwarzaj w klasyczny sposób. Do obróbki
matlab będzie odpowiednim programem.
Jeżeli te 70kHz jest krytyczne to mamiast karty dźwiękowej trzeba będzie
zrobić specjalizowane urządzenie np. covox.
--
Piotrek.
http://www.pitlab.pl
katzenjammer
Guest
Thu Jul 20, 2006 1:32 pm
Quote:
Może obrób i zapisz do pliku a odtwarzaj w klasyczny sposób. Do obróbki
matlab będzie odpowiednim programem.
Jeżeli te 70kHz jest krytyczne to mamiast karty dźwiękowej trzeba będzie
zrobić specjalizowane urządzenie np. covox.
Jest to jakaś opcja. Do pliku zapisać mogę, natomiast klasycznie odtwarzac
nie mogę gdyż właśnie musze wyjść poza zakres częstotliwości karty
dźwiekowej.
Pozdrawiam, Marcin
Marcin Stanisz
Guest
Thu Jul 20, 2006 1:53 pm
Dnia Thu, 20 Jul 2006 14:06:18 +0200, katzenjammer napisał(a):
Quote:
Problem tkwi w
tym że sygnał wyjściowy chciałbym wyprowadzić na zewnątrz komputera, zapewne
przez RS232 tak aby mógł w czasie rzeczywistym sterować wzmacniaczem i
^^^^^
podłączonym do niego przetwornikiem piezo. Zakres częstoitliwości
analogowego sygnału końcowego (0-70k)Hz
^^^^^^^^^
Coś mi tu nie pasuje. Załóżmy, że na próbkę będziesz miał 16 bitów, mono,
pomijamy narzut na protokoły. Daje nam to ponad 1,1Mbps. RS chyba nie
pociągnie?
Pozdrawiam
Marcin Stanisz
--
"A lie will go round the world before the truth has got its boots on"
Terry Pratchett, "Truth"
katzenjammer
Guest
Thu Jul 20, 2006 1:59 pm
Quote:
Coś mi tu nie pasuje. Załóżmy, że na próbkę będziesz miał 16 bitów, mono,
pomijamy narzut na protokoły. Daje nam to ponad 1,1Mbps. RS chyba nie
pociągnie?
No właśnie, widzisz bo ja się na tym nie znam za bardzo, dlatego też pytam
czy to ma sens:)
A jeśli nie ma sensu to o alternatywy. Czyli RS odpada.
Pozdrawiam, Marcin
Marek Dzwonnik
Guest
Thu Jul 20, 2006 2:01 pm
Użytkownik "katzenjammer" <katzenjammerWYTNIJTOTO@tlen.pl> napisał w
wiadomości news:e9nvcr$u8e$1@mx1.internetia.pl
Quote:
Problem tkwi w tym że sygnał wyjściowy
chciałbym wyprowadzić na zewnątrz komputera, zapewne przez RS232 tak
aby mógł w czasie rzeczywistym sterować wzmacniaczem i podłączonym do
niego przetwornikiem piezo. Zakres częstoitliwości analogowego
sygnału końcowego (0-70k)Hz
Hmmm...
Jaką chcesz mieć dynamikę sygnału wyjściowego? 8 bitów? 10? 12? więcej?
Pomyślałbym raczej o ścieżce:
USB -> FTDI -> Jakaś ATMega obsługująca komunikację przez FTDI-a, buforująca
strumień danych i synchronizująca wystawianie ich na przetwornik ->
przetwornik DAC.
Jeżeli chcesz mieć pasmo sygnału wyjściowego sięgające 70kHz to w praktyce
będziesz musiał próbkowac min. jakieś 200kHz. Czyli przy 8bit/próbkę
przepchnąć przez łącze min. 200KB/s + ew. narzuty. Przez RS-a nie ma szans,
zatem pozostaje USB. A także dobranie przetwornika D/A o odpowiednim
przełożeniu rozdzielczość/szybkość/cena. (AD1851? Nie kosztuje majątku a na
pierwszy rzut oka miałby szanse się wyrabiać)
--
Marek Dzwonnik, GG: #2061027 - zwykle jako 'niewidoczny'
(Uwaga Gadu-Gadulcowicze: Nie odpowiadam na anonimy.)
J.F.
Guest
Thu Jul 20, 2006 2:02 pm
On Thu, 20 Jul 2006 14:06:18 +0200, katzenjammer wrote:
Quote:
Zaczynam od tej grupy bo narazie nie mam pomysłu gdzie indziej pytać...
Chodzi o to iż chciałbym stworzyć softwarowy zestaw algorytmów
przetwarzających sygnał audio w określony sposób (między innymi modulacja
FM, kodowanie PWM). Średnio się orientuje w gamie programów umozliwiających
takie "zabawy", matlab jako pierwszy przyszedł mi do głowy.
Matlab sie chyba srednio do tego nadaje - bedzie dobrze dzialal
na plikach wav, ale czy sobie poradzi "online" ? Chyba ze to
niepotrzebne.
Quote:
Problem tkwi w
tym że sygnał wyjściowy chciałbym wyprowadzić na zewnątrz komputera, zapewne
przez RS232 tak aby mógł w czasie rzeczywistym sterować wzmacniaczem i
podłączonym do niego przetwornikiem piezo. Zakres częstoitliwości
analogowego sygnału końcowego (0-70k)Hz
Zapomnij. Port szeregowy w komputerze przepuszcza jakies 10KB/s.
Niektore komputery pozwalaja 4x szybciej.
Byc moze udaloby sie to na porcie rownoleglym [staly strumien danych
bedzie pewnym problemem], ale bezpieczniej od razu pomyslec
o USB. Lub ethernet.
Albo od razu sobie zrobic przystawke z FPGA ...
J.
katzenjammer
Guest
Thu Jul 20, 2006 2:40 pm
Quote:
Matlab sie chyba srednio do tego nadaje - bedzie dobrze dzialal
na plikach wav, ale czy sobie poradzi "online" ? Chyba ze to
niepotrzebne.
Do rozważenia jest jeszcze kwestia czy ma być to obróbka "online".
Quote:
Zapomnij. Port szeregowy w komputerze przepuszcza jakies 10KB/s.
Niektore komputery pozwalaja 4x szybciej.
Tak, to już wiem, RS odpada.
Quote:
Byc moze udaloby sie to na porcie rownoleglym [staly strumien danych
bedzie pewnym problemem], ale bezpieczniej od razu pomyslec
o USB. Lub ethernet.
Albo od razu sobie zrobic przystawke z FPGA ...
USB brzmi jakoś tak najbardziej przyjaźnie;)
Pozdrawiam, Marcin
katzenjammer
Guest
Thu Jul 20, 2006 2:50 pm
Quote:
Jaką chcesz mieć dynamikę sygnału wyjściowego? 8 bitów? 10? 12? więcej?
Teoretycznie im większa tym lepsza, natomiast na parametr ten w dużej mieże
wpływa koszt wykonania i komplikacja, jako że jest to w ramach pracy mgr...
Quote:
Pomyślałbym raczej o ścieżce:
USB -> FTDI -> Jakaś ATMega obsługująca komunikację przez FTDI-a,
buforująca
strumień danych i synchronizująca wystawianie ich na przetwornik -
przetwornik DAC.
Dziękuję, konkretne rozwiązanie.
Quote:
AD1851? Nie kosztuje majątku a na
pierwszy rzut oka miałby szanse się wyrabiać)
Dzięki za kolejną podpowiedź:)
Mam teraz przynajmniej nad czym mysleć.
Pozdrawiam, Marcin
mIrO
Guest
Thu Jul 20, 2006 3:59 pm
Użytkownik "katzenjammer" napisał w wiadomości
Quote:
USB brzmi jakoś tak najbardziej przyjaźnie;)
ROTFL

Nie wiem czy tak do konca, moze na FTDI jest latwe, ale tam chyba tez jest
ograniczenie predkosci?
A "normalne" USB to wcale nie jest taka fajna sprawa...
--
Pzdr,
mIrO
Maksymilian Dutka
Guest
Thu Jul 20, 2006 7:50 pm
mIrO napisał(a):
Quote:
A "normalne" USB to wcale nie jest taka fajna sprawa...
To zależy :)
Jeżeli:
1) Posiada się 2 komputery (inaczej debugować sterowników w C się nie
da, przynajmniej jeżeli się korzysta z WinDBG)
2) Umie się w miarę dobrze programować w C,
3) Ma się dużoooooo cierpliwości w szczególności do bluescreen-ów,
4) Ma się dostęp do DKK i wie z czym to się je,
To napisanie sterownika po stronie PC-a na Win2k, WinXP nie jest zbyt
trudne, na win98 już się sprawa komplikuje: trzeba jeszcze znać
assemblera i najlepiej mieć SoftICE (innych sensownych narzędzi nie znam
do debugowania sterowników pod Win98)
Pozostaje jeszcze kwestia napisania programu do uC to też nie jest
sprawą prostą.
Napisanie sterowników na PC można ominąć jeżeli podszyjesz się pod
jakieś urządzenie, ale niestety nie przychodzi mi do głowy jakie by to
miało być (dla Twojego zastosowania).
Pozdrawiam
MD
Górski Adam
Guest
Fri Jul 21, 2006 10:28 am
Użytkownik katzenjammer napisał:
Quote:
Witam!
Zaczynam od tej grupy bo narazie nie mam pomysłu gdzie indziej pytać...
Chodzi o to iż chciałbym stworzyć softwarowy zestaw algorytmów
przetwarzających sygnał audio w określony sposób (między innymi modulacja
FM, kodowanie PWM). Średnio się orientuje w gamie programów umozliwiających
takie "zabawy", matlab jako pierwszy przyszedł mi do głowy. Problem tkwi w
tym że sygnał wyjściowy chciałbym wyprowadzić na zewnątrz komputera, zapewne
przez RS232 tak aby mógł w czasie rzeczywistym sterować wzmacniaczem i
podłączonym do niego przetwornikiem piezo. Zakres częstoitliwości
analogowego sygnału końcowego (0-70k)Hz
Przykładowo, wprowadzam plik audio, który ulega w czasie rzeczywistym
przetwarzaniu i w zmienionej postaci jest wyprowadzony do układów
zewnętrznych.
Pytam sie więc, czy tędy wogóle droga, czy jest to możliwie, jakie są inne
możliwości, programy itepe itede... Pytanie dość ogólne i otwarte bo i
problem jest narazie dość otwarty, za wszelkie porady, wskazówki,
podpowiedzi będę wdzięczny.
Pozdrawiam, Marcin
Nowe sound blastery to chyba miały możliwość odtwarzania do 96KHz i są
chyba wersje na USB
Adam
katzenjammer
Guest
Fri Jul 21, 2006 11:51 am
Quote:
Nowe sound blastery to chyba miały możliwość odtwarzania do 96KHz
....mozliwość odtwarzania nagrań o rozdzielczości (44,1-96)kHz
Nie ło to cho.
Pozdrawiam, Marcin
Portal
Guest
Fri Jul 21, 2006 4:46 pm
Quote:
Zaczynam od tej grupy bo narazie nie mam pomysłu gdzie indziej pytać...
Chodzi o to iż chciałbym stworzyć softwarowy zestaw algorytmów
przetwarzających sygnał audio w określony sposób (między innymi modulacja
FM, kodowanie PWM). Średnio się orientuje w gamie programów
umozliwiających
takie "zabawy", matlab jako pierwszy przyszedł mi do głowy.
Matlab i przetwarzanie "szybkiego" strumienia danych na żywo = kiepski
pomysł.
Quote:
Problem tkwi w
tym że sygnał wyjściowy chciałbym wyprowadzić na zewnątrz komputera,
zapewne
przez RS232 tak aby mógł w czasie rzeczywistym sterować wzmacniaczem i
podłączonym do niego przetwornikiem piezo. Zakres częstoitliwości
analogowego sygnału końcowego (0-70k)Hz
Przykładowo, wprowadzam plik audio, który ulega w czasie rzeczywistym
przetwarzaniu i w zmienionej postaci jest wyprowadzony do układów
zewnętrznych.
Ale rozumiem, że chcesz "wyprowadzać" w postaci cyfrowej - zależy Ci na
zachowaniu jakiegoś standardu audio (I2S, S/PDIF) ?
Jakie urządzenie ma tak właściwie ten sygnał dalej przechwytywać?
Quote:
Pytam sie więc, czy tędy wogóle droga, czy jest to możliwie, jakie są inne
możliwości, programy itepe itede... Pytanie dość ogólne i otwarte bo i
problem jest narazie dość otwarty, za wszelkie porady, wskazówki,
podpowiedzi będę wdzięczny.
Gdyby nie takie srogie wymagania na pasmo (skoro to audio, to po co tak
szeroko - nietoperze chcesz tym straszyć?

), to możnaby zastosować np.
PCM2706 Texasa i przesyłać próbki przez USB na przetworniku uzyskując sygnał
analogowy, strumień I2S albo S/PDIF (ale niestety "tylko" do 48 kHz/16 bit).
Jeżeli koniecznie chcesz próbkować szybciej, dajmy na to 192 kHz, to po
pierwsze odpada tu już S/PDIF (bo obsługuje do 48 kHz), czyli trzeba by
skonwertować się pewnie do I2S, który łyknie większość współczesnych
przetworników i innych tego typu urządzeń.
Problem w tym, że raczej nie znajdziesz gotowego sprzętu którym przejdziesz
ze strumienia USB do I2S - trzeba by samemu zrobić - a to już z deczka
problem.
Wobec powyższego - nie prościej po prostu wyposażyć się w kartę muzyczną
obsługującą próbkowanie 192 kHz?
Pozdrav
Portal
Phoenix
Guest
Thu Jul 27, 2006 7:23 pm
Dnia 20-07-2006 o 14:06:18 katzenjammer <katzenjammerWYTNIJTOTO@tlen.pl>
napisał:
Quote:
Witam!
Zaczynam od tej grupy bo narazie nie mam pomysu gdzie indziej pyta...
Chodzi o to i chciabym stworzy softwarowy zestaw algorytmów
przetwarzajcych sygna audio w okrelony sposób (midzy innymi modulacja
FM, kodowanie PWM). rednio si orientuje w gamie programów
umozliwiajcych
takie "zabawy", matlab jako pierwszy przyszed mi do gowy. Problem tkwi
w
tym e sygna wyjciowy chciabym wyprowadzi na zewntrz komputera,
zapewne
przez RS232 tak aby móg w czasie rzeczywistym sterowa wzmacniaczem i
podczonym do niego przetwornikiem piezo. Zakres czstoitliwoci
analogowego sygnau kocowego (0-70k)Hz
Przykadowo, wprowadzam plik audio, który ulega w czasie rzeczywistym
przetwarzaniu i w zmienionej postaci jest wyprowadzony do ukadów
zewntrznych.
Ewentualnie zapisać do bufora i odtworzyć po kilku sekundach
Quote:
Pytam sie wic, czy tdy wogóle droga, czy jest to moliwie,
a co dziś nie jest możliwe? ;)
Quote:
s inne
moliwoci, programy itepe itede... Pytanie do ogólne i otwarte bo i
problem jest narazie do otwarty, za wszelkie porady, wskazówki,
podpowiedzi bd wdziczny.
polecam zajrzeć na
www.matlab.pl - powinien znaleźć się ktoś kto rozwieje
wątpliwości co do MATLABa
pzdr