라디오 전자 및 전기 공학의 백과사전 사운드 카드의 아날로그-디지털 변환기. 무선 전자 및 전기 공학 백과사전 무선 전자 및 전기 공학 백과사전 / 라디오 아마추어 디자이너 오늘날 모든 PC 사용자는 "멀티미디어"라는 용어에 익숙합니다. 많은 사람들에게 고품질 사운드, 애니메이션 등과 관련이 있습니다. 그러나 Sound Blaster 사운드 카드는 탁월한 처리 기능을 갖춘 아날로그-디지털 및 디지털-아날로그 변환기로 사용할 수 있습니다. 이러한 카드가 있는 컴퓨터는 오실로스코프, 발생기 또는 신호 분석기로 사용할 수 있습니다. 사실 그 "심장"은 디지털 신호 처리기 DSP(Digital Signal Processor)입니다. 그 기능을 사용하려면 오디오 데이터와 DSP의 제어 모드를 포함하는 버퍼에 직접 액세스할 수 있어야 합니다. 저수준 인터페이스를 사용하십시오. 이 기사에서는 사운드 카드의 입력에서 수신 된 신호를 디지털화 한 결과 얻은 데이터가 컴퓨터 메모리에 저장되는 사운드 카드의 장치와 표준 유형의 데이터 파일 형식을 고려할 것입니다. 주어진 모양의 신호를 얻기 위해 동일한 파일을 프로그래밍 방식으로 합성할 수 있습니다. 일반적으로 사운드 카드(그림 1)에는 1개의 듀얼(스테레오) 입력과 XNUMX개의 동일한 출력이 있습니다. 첫 번째(라인) 입력은 진폭이 약 XNUMXV인 입력 신호용으로 설계되었으며, 두 번째는 약한 신호용으로 설계되었습니다. 사운드 카드를 아날로그-디지털 변환기로 사용할 때 처리된 신호의 레벨에 따라 이러한 입력 중 하나를 사용할 수 있습니다. 멀티미디어와 관련된 데이터는 이른바 RIFF 형식(Resource Interchange File Format - 자원 교환을 위한 파일 형식)[1]의 파일로 저장된다. RIFF 파일은 중첩된 청크(청크)를 포함합니다. 외부 조각은 헤더와 데이터 영역으로 구성됩니다(그림 2). 헤더의 첫 번째 더블 워드에는 조각에 저장된 데이터를 식별하는 XNUMX자리 코드가 포함되어 있습니다. 헤더의 두 번째 dword는 데이터 영역의 크기(바이트 단위)입니다(헤더 자체의 크기 제외). 데이터 영역은 가변 길이를 가지며 단어 경계에 대한 정렬 조건과 필요에 따라 XNUMX바이트에서 정수 단어 수로 끝에 패딩됩니다. RIFF 형식은 데이터 형식을 설명하지 않습니다. 실제로 RIFF 파일에는 멀티미디어용 데이터가 포함될 수 있으며 데이터 형식은 데이터 유형에 따라 다릅니다. 그림 2에서 "데이터"라고 표시된 영역은 그 안에 다른 조각을 포함할 수 있습니다. 사운드 데이터를 저장하는 파일(wav 파일)의 경우 이 영역에는 데이터 식별자 "WAVE", 사운드 데이터 형식 "fmt"의 조각(2개의 문자 "fmt" 및 끝에 공백) 및 소리 데이터 조각(그림 XNUMX). 파일에는 다른 유형의 조각이 추가로 포함될 수 있으므로 wav 파일의 헤더 형식이 고정되어 있다고 생각해서는 안 됩니다. 예를 들어, 파일에는 .copy 권한 및 기타 추가 정보에 대한 정보가 포함된 "LIST" 또는 "INFO" 조각이 포함될 수 있습니다. 데이터가 어떻게 기록되는지 봅시다. 먼저 오디오 데이터 형식을 지정하여 입력 장치를 열어야 합니다. 그런 다음 특수 함수를 호출하여 입력을 위해 하나 이상의 메모리 블록을 주문하고 준비해야 합니다. 그 후 준비된 블록은 녹음된 오디오 데이터로 채우는 입력 장치 드라이버에 필요에 따라 전달되어야 합니다. 녹음된 데이터를 wav 파일에 저장하려면 응용 프로그램이 드라이버 입력 장치에 의해 채워진 준비된 메모리 블록에서 wav 파일 및 사운드 데이터를 생성하고 응용 프로그램 파일에 기록해야 합니다. 다음은 사운드 카드를 아날로그-디지털 변환기로 사용할 때 필요한 데이터 블록을 파일에 쓸 수 있게 해주는 프로그램 조각입니다. SysUtils, MMSystem을 사용합니다. type TWaveData = 단어의 배열[0..0) ;const Discret = 22050;WaveHdr:TWaveHdr=( lpData: nil;(파형 버퍼의 주소) dwBufferLength: 0;(버퍼의 길이, 바이트 단위) dwBytesRecorded: 0;(버퍼에 있는 데이터의 양) dwUser: 0; dwFlags: 0; dwLoops: 0; IpMext: nil; reserved: 0 ) ec : Discret; nBllockAlign: 1; wBitsPerSample: 1; csSize: 8 ) ;var WaveDate : ^TWaveDate; HSoundDevice: HWaveIn; 파일: HMMIO; res: MMResult;WaveHdr로 시작 시작됨wBufferLehgth : =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. Bolshakov, rf.atnn.ru 다른 기사 보기 섹션 라디오 아마추어 디자이너. 읽고 쓰기 유용한 이 기사에 대한 의견. 과학 기술의 최신 뉴스, 새로운 전자 제품: 광신호를 제어하고 조작하는 새로운 방법
05.05.2024 프리미엄 세네카 키보드
05.05.2024 세계 최고 높이 천문대 개관
04.05.2024
다른 흥미로운 소식: ▪ Seagate Mobile Barracuda 및 Firecuda 모바일 하드 드라이브 ▪ 태양 굴뚝 무료 기술 라이브러리의 흥미로운 자료: ▪ 기사 낙뢰로 인한 사망과 낙뢰로 인한 사망 중 어느 쪽이 더 가능성이 높습니까? 자세한 답변 ▪ 기사 주거 경보. 무선 전자 및 전기 공학 백과사전 ▪ 기사 Tsvetnaya voditsa. 포커스 시크릿 이 페이지의 모든 언어 홈페이지 | 도서관 | 조항 | 사이트 맵 | 사이트 리뷰 www.diagram.com.ua |