無線電子工学および電気工学の百科事典 サウンドカードからのアナログ - デジタル コンバーター。 無線エレクトロニクスと電気工学の百科事典 無線電子工学と電気工学の百科事典 / アマチュア無線デザイナー 今日、すべての PC ユーザーは「マルチメディア」という用語に精通しています。 多くの人にとって、それは高品質のサウンド、アニメーションなどに関連付けられています. ただし、Sound Blaster サウンド カードは、並外れた処理能力を持つアナログ - デジタルおよびデジタル - アナログ コンバータとして使用できます。 このようなカードを搭載したコンピューターは、オシロスコープ、ジェネレーター、またはシグナルアナライザーとして使用できます。 事実、その「心臓部」はデジタルシグナルプロセッサDSP(デジタルシグナルプロセッサ)です。 その機能を使用するには、オーディオ データと DSP の制御モードを含むバッファに直接アクセスする必要があります。 低レベルのインターフェースを使用します。 この記事では、サウンドカードのデバイスと、サウンドカードの入力で受信した信号をデジタル化した結果得られたデータがコンピューターのメモリに保存される標準タイプのデータファイルの形式について検討します。 特定の形状の信号を取得するために、同じファイルをプログラムで合成できます。 原則として、サウンド カード (図 1) には 1 つのデュアル (ステレオ) 入力と XNUMX つの同一の出力があります。 最初の(ライン)入力は、振幅が約XNUMX Vの入力信号用に設計されており、XNUMX番目のマイクは弱い信号用に設計されています。 サウンド カードをアナログ - デジタル コンバーターとして使用する場合、処理された信号のレベルに応じて、これらの入力のいずれかを使用できます。 マルチメディアに関連するデータは、いわゆる RIFF 形式 (Resource Interchange File Format - リソース交換用のファイル形式) でファイルに格納されます [1]。 RIFF ファイルには、ネストされたチャンク (チャンク) が含まれています。 外側のフラグメントは、ヘッダーとデータ領域で構成されます (図 2)。 ヘッダーの最初のダブル ワードには、フラグメントに格納されているデータを識別する XNUMX 文字のコードが含まれています。 ヘッダーの XNUMX 番目の dword は、データ領域のサイズ (バイト単位) です (ヘッダー自体のサイズを除く)。 データ領域は可変長で、必要に応じて、ワードの境界に位置合わせされ、最後に XNUMX バイトから整数ワードまでパディングされます。 RIFF 形式では、データ形式は記述されていません。 実際には、RIFF ファイルにはマルチメディア用の任意のデータを含めることができ、データの形式はデータの種類によって異なります。 図 2 の「データ」とラベル付けされた領域には、その中に他のフラグメントが含まれている場合があります。 音声データを格納するファイル(wavファイル)の場合、この領域にはデータ識別子「WAVE」、音声データ形式「fmt」の断片(「fmt」の2文字と末尾のスペース)、および音データの断片 (図 XNUMX)。 ファイルには、他のタイプのフラグメントが追加で含まれている可能性があるため、wav ファイルのヘッダーの形式が固定されているとは考えないでください。 たとえば、ファイルには、.copy rights に関する情報やその他の追加情報を含む "LIST" または "INFO" フラグメントが含まれている場合があります。 データがどのように書き込まれるかを見てみましょう。 まず、オーディオ データ形式を指定して、入力デバイスを開く必要があります。 次に、メモリの XNUMX つまたは複数のブロックを順序付けて、特別な関数を呼び出して入力用に準備する必要があります。 その後、準備されたブロックを必要に応じて入力デバイス ドライバーに渡す必要があります。入力デバイス ドライバーは、ブロックに録音されたオーディオ データを入力します。 記録されたデータを wav ファイルに保存するには、アプリケーションは、ドライバー入力デバイスによって満たされた準備済みのメモリ ブロックから、wav ファイルとサウンド データを生成し、アプリケーション ファイルに書き込む必要があります。 以下は、サウンド カードをアナログ - デジタル コンバーターとして使用する場合に必要な、データのブロックをファイルに書き込むためのプログラム フラグメントです。 SysUtils、MMSystem を使用します。 type TWaveData = array[0..0) of word ;const Discret = 22050;WaveHdr:TWaveHdr=( lpData: nil;(波形バッファのアドレス) dwBufferLength: 0;(バッファの長さ、バイト単位) dwBytesRecorded: 0;(バッファー内のデータ量) dwUser: 0; dwFlags: 0; dwLoops: 0; IpMext: nil; 予約済み: 0 ) ec : Discret; nBllockAlign: 1; wBitsPerSample: 1; csSize: 8 ) ;var WaveDate : ^TWaveDate; Hサウンドデバイス: HWaveIn; hファイル: HMMIO; res: MMResult;WaveHdr で開始 do begindwBufferLehgth : =round(Discret/0);dwBytesRecorded: =round(Discret/10);GetMem(WaveData, dwBytesRecorded);lpData : =PChar(WaveData); 終わり; 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 または MMIO_READWRITE); mmioWrite(hfile,WaveHdr.IpData, WaveHdr,dwBytesRecorded); mmioClose(hfile,1); waveInReset(HSoundDevice) ; waveInClose(HSoundDevice) ;終了。 デフォルトで多くのパラメータが想定される MCI インターフェイスとは異なり、低レベル インターフェイスでは、書き込みおよび読み取りプロセスのすべての詳細を慎重に検討する必要があります。 余分な労力を補うために、柔軟性が向上し、オーディオだけでなく任意の信号をリアルタイムで処理できるようになります。 文学 1. Frolov A.V.、Frolov G.V. Windows 用のマルチメディア。 プログラマーズ ガイド。 -M、「DIALOGUE-MEPhI」、1994年、284ページ。 (システム プログラマのライブラリ; V. 15)。 著者: O. Baranovsky、ミンスク; 出版物: N. ボルシャコフ、rf.atnn.ru 他の記事も見る セクション アマチュア無線デザイナー. 読み書き 有用な この記事へのコメント. 科学技術の最新ニュース、新しい電子機器: 交通騒音がヒナの成長を遅らせる
06.05.2024 ワイヤレススピーカー Samsung ミュージックフレーム HW-LS60D
06.05.2024 光信号を制御および操作する新しい方法
05.05.2024
その他の興味深いニュース: ▪ ライトとモーターを制御するためのチップ ST25DV02K-W ▪ 目の虹彩が ATM の PIN コードに取って代わります 無料の技術ライブラリの興味深い資料: ▪ サイトの「通話とオーディオ シミュレーター」セクション。 記事の選択 ▪ 記事フィルム包装機タイプDEM-L8-12、4255-SAなどでの作業。典型的な労働保護指導 ▪ 記事 小口径エアロナイザー。 無線エレクトロニクスと電気工学の百科事典 このページのすべての言語 ホームページ | 図書館 | 物品 | サイトマップ | サイトレビュー www.diagram.com.ua |