함수 > 파일 읽기 및 쓰기 > 예제: WAV 파일 작업 및 스펙트로그램 만들기
  
예제: WAV 파일 작업 및 스펙트로그램 만들기
READWAVGETWAVINFO 함수를 사용하여 WAV 파일에서 형식 정보를 읽고 가져옵니다.
WAV 정보 얻기
1. GETWAVINFO를 사용하여 사운드 파일의 정보를 얻습니다. 이 사운드 파일은 돌고래 소리 샘플입니다. 원하는 음악 재생기를 사용하여 이 파일을 재생할 수 있습니다.
이 식을 복사하려면 클릭
이 벡터에는 오디오 재생기가 실시간으로 오디오를 재생하기 위해 필요한 채널 수, 표본 비율, 해상도(표본당 비트 수) 및 평균 초당 비트 수가 들어 있습니다.
2. 벡터 변수를 계산합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
사운드 파일 읽기
1. READWAV 함수를 사용하여 사운드 파일을 읽고 벡터에 저장합니다.
이 식을 복사하려면 클릭
READWAV는 개별 데이터 채널을 나타내는 연속적인 열인 행렬을 구합니다.
2. length 함수를 사용하여 총 표본 수를 계산합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
3. 신호를 도표화합니다.
이 식을 복사하려면 클릭
4. match, maxmin 함수를 사용하여 최대 및 최소 강도의 표본을 구한 다음 해당하는 표본 시간을 구합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
5. 25000개 표본을 도표화하고 마커를 사용하여 최대 강도의 표본을 표시합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
스펙트로그램 만들기
데이터를 작은 시간 간격으로 분할하고 각 시간 간격의 주파수 성분을 확인하여 사운드 데이터를 분석합니다. 이 예제에서는 128개 표본 간격을 사용합니다.
1. 2의 거듭곱으로 구성된 슬라이스 크기의 벡터를 정의합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
여기서 ss는 슬라이스 행렬의 행 수입니다.
2. 0-90% 사이에서 10씩 증가하는 중첩 계수의 벡터를 정의합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
중첩(overlap)이 100%일 수 없습니다.
3. 중첩 계수를 설정하고 floorceil 함수를 사용하여 행렬의 크기를 정의합니다.
이 식을 복사하려면 클릭
중첩이 0으로 설정되어 있으면 Data 벡터가 ss 길이의 청크 수로 분할됩니다. 다음 방정식에서 볼 수 있는 것처럼, 중첩이 증가하면 ss 길이의 청크 수도 증가합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
슬라이스 크기 및 중첩 계수의 각 조합마다 슬라이스 행렬 치수가 달라집니다.
이 식을 복사하려면 클릭
ss=128overlap=40%를 사용하면 작성과 도표화에 매우 긴 시간이 걸리는 128x2602 행렬이 생성됩니다.
4. 벡터 TI를 생성하여 ti 값보다 작거나 같은 10개 값 중 한 값으로 ti를 쉽게 설정할 수 있게 만듭니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
5. tiTI의 중간 요소 중 하나로 설정하고 워크시트 아래쪽에 있는 등고선도를 관찰합니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이제 새 슬라이스 행렬 치수는 다음과 같습니다.
이 식을 복사하려면 클릭
6. Hamming 창함수로 각 슬라이스에 창을 씌웁니다.
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
이 식을 복사하려면 클릭
7. log 함수를 사용하여 주파수를 데시벨 단위로 표시합니다.
이 식을 복사하려면 클릭
8. dft(또는 더 이상 사용되지 않는 fft) 함수를 사용하여 슬라이스의 푸리에 변환을 구합니다.
이 식을 복사하려면 클릭
더 이상 사용되지 않는 fft 함수를 사용하려면 위 영역을 비활성화하고 아래 영역을 활성화합니다.
이 식을 복사하려면 클릭
9. 등고선도를 사용하여 spectra을 도표화합니다.
이 식을 복사하려면 클릭
10. 다양한 슬라이스 크기(ss), overlapti 값을 시험해 봅니다. 하지만 계산 및 도표화 시간에 미치는 영향을 확인하려면 한 번에 한 매개변수만 변경하고 나머지 두 매개변수는 기본값 [128 0.4 82]로 설정하는 것이 좋습니다.
ss, overlapti의 현재 설정이 아래에 표시되어 있습니다.
이 식을 복사하려면 클릭