Bezpłatna biblioteka techniczna ENCYKLOPEDIA RADIOELEKTRONIKI I INŻYNIERII ELEKTRYCZNEJ Przetwornik analogowo-cyfrowy z karty dźwiękowej. Encyklopedia elektroniki radiowej i elektrotechniki Encyklopedia radioelektroniki i elektrotechniki / Projektant radioamatorów Dzisiaj każdy użytkownik komputera PC zna termin „multimedia”. Dla wielu kojarzy się z wysokiej jakości dźwiękiem, animacją itp. Jednak karta dźwiękowa Sound Blaster może być używana jako konwerter analogowo-cyfrowy i cyfrowo-analogowy o wyjątkowych możliwościach przetwarzania. Komputer z taką kartą może służyć jako oscyloskop, generator lub analizator sygnału. Faktem jest, że jego „sercem” jest cyfrowy procesor sygnału DSP (Digital Signal Processor). Aby wykorzystać jego możliwości konieczne jest posiadanie bezpośredniego dostępu do buforów zawierających dane audio oraz trybu sterowania DSP, tj. użyj interfejsu niskiego poziomu. W tym artykule rozważymy urządzenie karty dźwiękowej i format standardowych typów plików danych, w których dane uzyskane w wyniku digitalizacji sygnałów odbieranych na wejściu karty dźwiękowej są przechowywane w pamięci komputera. Te same pliki można programowo syntetyzować w celu uzyskania sygnałów o określonym kształcie. Z reguły karta dźwiękowa (rys. 1) ma dwa podwójne (stereo) wejścia i dwa identyczne wyjścia. Pierwsze (liniowe) wejście przeznaczone jest dla sygnałów wejściowych o amplitudzie około 1 V, drugie - mikrofonowe, dla słabszych sygnałów. Używając karty dźwiękowej jako przetwornika analogowo-cyfrowego, można wykorzystać dowolne z tych wejść – w zależności od poziomu przetworzonego sygnału. Dane dotyczące multimediów przechowywane są w plikach w tzw. formacie RIFF (Resource Interchange File Format - format pliku do wymiany zasobów) [1]. Plik RIFF zawiera zagnieżdżone porcje (porcje). Zewnętrzny fragment składa się z nagłówka i obszaru danych (rys. 2). Pierwsze podwójne słowo nagłówka zawiera czteroznakowy kod, który identyfikuje dane przechowywane we fragmencie. Drugim słowem nagłówka jest rozmiar obszaru danych w bajtach (z wyłączeniem rozmiaru samego nagłówka). Obszar danych ma zmienną długość z warunkiem wyrównania na granicy słowa i uzupełnienia na końcu bajtem zerowym do całkowitej liczby słów, jeśli to konieczne. Format RIFF nie opisuje formatu danych. W praktyce plik RIFF może zawierać dowolne dane do multimediów, a format danych zależy od rodzaju danych. Obszar oznaczony „Dane” na rysunku 2 może zawierać w sobie inne fragmenty. W przypadku pliku przechowującego dane dźwiękowe (plik wav), obszar ten zawiera identyfikator danych „WAVE”, fragment formatu danych dźwiękowych „fmt” (trzy znaki „fmt” i spacja na końcu) oraz znak fragment danych dźwiękowych (rys. 2). Plik może dodatkowo zawierać fragmenty innych typów, więc nie należy sądzić, że nagłówek pliku wav ma ustalony format. Na przykład plik może zawierać fragment „LISTA” lub „INFO” zawierający informacje o prawach .copy i inne dodatkowe informacje. Zobaczmy, jak zapisywane są dane. Najpierw musisz otworzyć urządzenie wejściowe, określając dla niego format danych audio. Następnie jeden lub więcej bloków pamięci musi być uporządkowany i przygotowany do wprowadzenia przez wywołanie specjalnej funkcji. Następnie przygotowane bloki należy w razie potrzeby przekazać do sterownika urządzenia wejściowego, który wypełnia je nagranymi danymi dźwiękowymi. Aby zapisać zarejestrowane dane w pliku wav, aplikacja musi wygenerować i zapisać do pliku aplikacji plik wav oraz dane dźwiękowe z przygotowanych bloków pamięci wypełnionych przez urządzenia wejściowe sterownika. Poniżej fragment programu, który pozwala na zapisanie bloku danych do pliku, co jest niezbędne w przypadku korzystania z karty dźwiękowej jako przetwornika analogowo-cyfrowego: używa SysUtils, MMSystem; wpisz TWaveData = array[0..0) słowa ;const Discret = 22050;WaveHdr:TWaveHdr=( lpData: nil;(adres bufora przebiegów) dwBufferLength: 0;(długość bufora w bajtach) dwBytesRecorded: 0;(Ile danych jest w buforze) dwUser: 0; dwFlags: 0; dwLoops: 0; IpMext: nil; Reserved: 0 ) ec : Discret; nBllockAlign: 1; wBitsPerSample: 1; csSize: 8 ) ;var WaveDate : ^Data fali; HSoundDevice: HWaveIn; plik h: HMMIO; res: MMResult;begin with WaveHdr do begindwBufferLehgth : =round(Discret/0);dwBytesRecorded: =round(Discret/10);GetMem(WaveData, dwBytesRecorded);lpData : =PChar(WaveData); koniec; res : =waveInOpen (@HSoundDevice, WAVE_MAPPER, @WaveFormat, 10); res : =waveInPrepareHeader(HSoundDevice, @WaveHdr, SizeOf(WaveHdr)); res : =waveInUnprepareHeader (HSoundDevice, @WaveHdr,SizeOf(WaveHdr)) ; FreeMem(WaveData); res:=waveInStart(HSoundDevice) ; hfile:=mmio0,0,0pen("d: \work\data_0.txt",nil, MMIO_CREATE lub MMIO_READWRITE); mmioWrite(hfile,WaveHdr.IpData, WaveHdr,dwBytesRecorded); mmioClose(hfile,1); waveInReset(HSoundDevice) ; waveInClose(HSoundDevice) ;koniec. W przeciwieństwie do interfejsu MCI, gdzie domyślnie pobieranych jest wiele parametrów, interfejs niskopoziomowy wymaga starannego rozważenia wszystkich szczegółów procesu zapisu i odczytu. Aby zrekompensować dodatkowy wysiłek, zyskujesz większą elastyczność i możliwość pracy nie tylko z dźwiękiem, ale także z dowolnymi sygnałami w czasie rzeczywistym. literatura 1. Frolov A.V., Frolov G.V. Multimedia dla Windows. Przewodnik programisty. - M, „DIALOG-MEPhI”, 1994, 284 s. (Biblioteka programisty systemowego; V.15). Autor: O. Baranowski, Mińsk; Publikacja: N. Bolszakow, rf.atnn.ru Zobacz inne artykuły Sekcja Projektant radioamatorów. Czytaj i pisz przydatne komentarze do tego artykułu. Najnowsze wiadomości o nauce i technologii, nowa elektronika: Nowy sposób kontrolowania i manipulowania sygnałami optycznymi
05.05.2024 Klawiatura Primium Seneca
05.05.2024 Otwarto najwyższe obserwatorium astronomiczne na świecie
04.05.2024
Inne ciekawe wiadomości: ▪ Mobilne dyski twarde Seagate Mobile Barracuda i Firecuda ▪ Industrializacja zmieniła klimat planety ▪ Męskie i kobiece postrzeganie kolorów ▪ Szybki czujnik 4K firmy Sony Wiadomości o nauce i technologii, nowa elektronika Ciekawe materiały z bezpłatnej biblioteki technicznej: ▪ sekcja witryny Oświetlenie. Wybór artykułu ▪ artykuł Położnictwo i ginekologia. Kołyska ▪ artykuł Pracownik detaliczny. Standardowe instrukcje dotyczące ochrony pracy ▪ artykuł Alarm mieszkaniowy. Encyklopedia elektroniki radiowej i elektrotechniki ▪ artykuł Tsvetnaya voditsa. Sekret ostrości
Zostaw swój komentarz do tego artykułu: Wszystkie języki tej strony Strona główna | biblioteka | Artykuły | Mapa stony | Recenzje witryn www.diagram.com.ua |