웨이브 파일이 있습니다. 픽셀 당 2 샘플을 검색 한 다음 줄을 그립니다. 나는 급상승과 거래하기 전에 빠르고 고통 스럽다. 난 진폭 값을 문제 파형의 정확한 이미지이다그림 파형 - DB로 변환합니다.
를 표시 할 수 없다. 이 작업을 수행하기 위해 다음 코드
//tempAllChannels[numOfSamples] holds amplitude data for the entire wav
//oneChannel[numOfPixels*2] will hold 2 values per pixel in display area, an average of min amp, and average of max
for(int i = 0; i < numOfSamples; i++)//loop through all samples in wave file
{
if (tempAllChannels[i] < 0) min += tempAllChannels[i];//if neg amp value, add amp value to min
if (tempAllChannels[i] >= 0) max += tempAllChannels[i];
if(i%factor==0 && i!=0) //factor is (numofsamples in wav)/(numofpixels) in display area
{
min = min/factor; //get average amp value
max = max/factor;
oneChannel[j]=max;
oneChannel[j+1]=min;
j+=2; //iterate for next time
min = 0; //reset for next time
max = 0;
}
}
을 사용하고 중대하지만 조용한 물결 이미지는 터무니없이 작은이 arent 있도록 DB에 표시해야합니다,하지만 난 위의 코드
oneChannel[j]=10*log10(max);
oneChannel[j+1]=-10*log10(-min);
에 다음과 같이 변경을 할 때
파도 이미지가 이렇게 보입니다. 정확한 밤은
, 그것은 숙청되고 그처럼 보인다. 내가하고있는 일에 뭔가 이상이 있니? 다이나믹을 유지하면서 진폭을 데시벨로 변환하는 방법을 찾아야합니다. 나는 DB로 변환 평균을 복용해야한다고 생각하고있어.
작은 값을 확장하면 큰 값을 스쿼시하게됩니다. 그것은 같은 간격을 유지하는 유일한 방법입니다. 그것은 수학의 자연스러운 결과입니다. –
나는 그것이 사실일지도 모른다라고 생각했다. 그러나 나는 대담한 파형을 볼 때 파형이 더 평등합니다. 나는 그들이 데시벨로 표시하고 있다고 가정했지만 그들은 그렇지 않습니다. 평균 진폭의 배열을 채우는 방법에 문제가 있다고 생각합니다. 그 또는 그들은 인간에 의해 더 쉽게 읽을 수 있도록 약간 정규화하는 방법을 알아 냈습니다. –