Безкоштовна технічна бібліотека ЕНЦИКЛОПЕДІЯ РАДІОЕЛЕКТРОНІКИ ТА ЕЛЕКТРОТЕХНІКИ Аналогово-цифровий перетворювач із звукової карти. Енциклопедія радіоелектроніки та електротехніки Енциклопедія радіоелектроніки та електротехніки / Радіоаматор-конструктор Сьогодні кожен користувач ПЕОМ знайомий із терміном "мультимедіа". У багатьох він асоціюється із якісним звуком, анімацією тощо. Однак звукову карту Sound Blaster можна використовувати як аналого-цифровий та цифро-аналоговий перетворювач із виключно широкими можливостями обробки даних. Комп'ютер з такою картою можна використовувати як осцилограф, генератор або аналізатор сигналів. Справа в тому, що її серцем є цифровий сигнальний процесор DSP (Digital Signal Processor). Щоб використовувати його можливості, необхідно мати безпосередній доступ до буферів, що містять звукові дані і керуючим режимом роботи DSP, тобто. Використовувати інтерфейс низького рівня. У цій статті ми розглянемо пристрій звукової карти та формат стандартних типів файлів даних, в яких у пам'яті комп'ютера зберігаються дані, отримані в результаті оцифрування сигналів, що надходять на вхід звукової карти. Такі файли можна синтезувати програмно з метою отримання сигналів заданої форми. Як правило, звукова карта (рис.1) має два здвоєні (стереофонічні) входи і два такі ж виходи. Перший (лінійний) вхід розрахований на вхідні сигнали з амплітудою близько 1, другий - мікрофонний, для слабкіших сигналів. При використанні звукової карти як аналого-цифрового перетворювача можна використовувати будь-який з цих входів - залежно від рівня сигналу, що обробляється. Дані, що стосуються мультимедіа, зберігаються у файлах у так званому форматі RIFF (Resource Interchange File Format - формат файлу для обміну ресурсами) [1]. Файл формату RIFF містить вкладені фрагменти (chunk's). Зовнішній фрагмент складається з заголовка та області даних (рис.2). Перше подвійне слово заголовка містить чотирисимвольний код, що ідентифікує дані, що зберігаються у фрагменті. Друге подвійне слово заголовка - розмір області даних у байтах (без урахування розміру самого заголовка). Область даних має змінну довжину з умовою її вирівнювання на межу слова та доповнення наприкінці нульовим байтом до цілого числа слів у разі потреби. Формат RIFF не визначає формату даних. Практично файл RIFF може містити будь-які дані для мультимедіа, причому формат даних залежить від типу даних. Область, позначена на рис.2 як "Дані", можуть містити в собі інші фрагменти. Для файлу, в якому зберігаються звукові дані (wav-файл), ця область містить ідентифікатор даних "WAVE", фрагмент формату звукових даних "fmt" (три символи "fmt" та пробіл на кінці), а також фрагмент звукових даних (мал. 2). Файл може додатково містити фрагменти інших типів, тому слід думати, що заголовок wav-файла має фіксований формат. Наприклад, у файлі може бути фрагмент "LIST" або "INFO", що містить інформацію про права .копіювання та іншу додаткову інформацію. Розглянемо, як відбувається запис даних. Спочатку потрібно відкрити пристрій введення, вказавши формат звукових даних. Потім потрібно замовити один або кілька блоків пам'яті та підготувати їх для введення, викликавши спеціальну функцію. Після цього підготовлені блоки потрібно при необхідності передавати драйверу пристрою введення, який заповнює їх записаними звуковими даними. Для збереження записаних даних у wav-файлі додаток повинен сформувати та записати у файл заяловок wav-файлу та звукові дані з підготовлених заповнених драйвером пристроїв введення блоків пам'яті. Нижче наведено фрагмент програми, що дозволяє записати блок даних у файл, що необхідно при використанні звукової карти як аналого-цифрового перетворювача: uses SysUtils, MMSystem; type TWaveData = array[0..0) of word ;const Discret = 22050;WaveHdr:TWaveHdr=( lpData: nil;(address of waveform buffer) dwBufferLength: 0; dwUser: 0; dwFlags: 0; dwLoops: 0; IpMext: nil; reserved: 0 ) ;WaveFormat: BytesPerSec : Discret; nBllockAlign: 0; wBitsPerSample: 1; csSize: 1 ) ;var WaveDate: ^TWaveDate; HSoundDevice: HWaveIn; hfile: HMMIO; res: MMRsult; end; res : =waveInOpen (@HSoundDevice, WAVE_MAPPER, @WaveFormat, 8); res : =waveInPrepareHeader (HSoundDevice, @WaveHdr, SizeOf (WaveHdr)); res : =waveInUnprepareHeader (HSoundDevice, @WaveHdr,SizeOf(WaveHdr)) ; FreeMem (WaveData); res: =waveInStart (HSoundDevice) ; hfile:=mmio0pen ("d: \work\data_10. txt",nil, MMIO_CREATE or MMIO_READWRITE); mmioWrite(hfile, WaveHdr.IpData, WaveHdr, dwBytesRecorded); mmioClose(hfile,10); waveInReset(HSoundDevice) ; waveInClose(HSoundDevice) ;end. На відміну від інтерфейсу МСI, де багато параметрів приймаються за умовчанням, інтерфейс низького рівня вимагає уважного та ретельного обліку всіх деталей процесу запису та читання. В якості компенсації за додатково витрачені зусилля ви отримуєте велику гнучкість і можливість працювати не тільки зі звуком, але й довільними сигналами в реальному часі. література 1. Фролов А.В., Фролов Г.В. Мультимедіа для Windows. Посібник для програміста. - М, "ДІАЛОГ-МІФІ", 1994, 284 с. (Бібліотека системного програміста; Т. 15). Автор: О.Барановський, м.Мінськ; Публікація: Н. Большаков, rf.atnn.ru Дивіться інші статті розділу Радіоаматор-конструктор. Читайте та пишіть корисні коментарі до цієї статті. Останні новини науки та техніки, новинки електроніки: Машина для проріджування квітів у садах
02.05.2024 Удосконалений мікроскоп інфрачервоного діапазону
02.05.2024 Пастка для комах
01.05.2024
Інші цікаві новини: ▪ Водневе паливо з морської води ▪ Система рідинного охолодження Rosewill PB240-RGB ▪ Здоров'я людини залежить від дерев ▪ Поліпшення чистих метанольних паливних елементів Стрічка новин науки та техніки, новинок електроніки Цікаві матеріали Безкоштовної технічної бібліотеки: ▪ розділ сайту Інструкції з експлуатації. Добірка статей ▪ стаття Джон Стейнбек. Знамениті афоризми ▪ стаття Як бджоли роблять мед? Детальна відповідь ▪ стаття Хамемелюм благородний. Легенди, вирощування, способи застосування
Залишіть свій коментар до цієї статті: All languages of this page Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт www.diagram.com.ua |