전에 DSP.SE에서이 질문을했습니다. 그러나 제 질문에는 관심이 없습니다. 어쩌면 신호 처리와 관련이 없을 수도 있습니다.오디오 신호에서 로컬 제로를 얻는 좋은 방법이 있습니까?
이산 오디오 신호를 세그먼트로 나누어 통계 처리 및 분석해야했습니다. 따라서 지역 평균이 고정 된 세그먼트가 내 사례에 매우 도움이됩니다. 세그먼트의 길이는 미리 정의되어 있습니다 (예 : 샘플.
나는 여러 가지를 시도했다. I는 세그먼트들로 오디오 신호를 분할 reshape()
함수를 사용하여, 다음과 같은 각 세그먼트를 통해 산출 할 각 seg(:,k)
에서 x(k)
감산
L = 512; % Length of segment
N = floor(length(audio(:,1))/L); % Number of segments
seg = reshape(audio(1:N*L,1), L, N); % Reshape into LxN sized matrix
x = mean(seg); % Calculate mean of each column
각 로컬 평균 제로 만들 것, 또 그 때 세그먼트의 오디오 신호를 많이 왜곡 것을 다시 합류했다.
그래서, 해닝 윈도우의 평균은 각각 seg(:,k)
에서 2*x(k)*hann(L)
을 substracting 거의 0.5 때문에 것은 내가 노력 제일 먼저이었다. 그러나 이번에는 (해닝 윈도우의 평균을 과 거의 동일하게 만들기 위해)은 각 세그먼트 자체에서 중간 점의 이웃을 왜곡합니다.
그리고, I는 작은 해닝 윈도우가 아닌 직접 곱하여 각 seg(:,k)
에서 (아래 그림 참조) 이러한 을 감산 회선을 사용했다.
이 마지막 단계는 더 나은 결과를 제공, 아직 세그먼트가 작은 경우는 여전히 매우 유용하지 않습니다. 나는이 사이트에서 다양한 문제에 대해 많은 놀라운 접근법을 보았습니다. 그래서 영리한 방법이나 오디오 신호를 덜 왜곡시키는 제로 로컬 수단을 얻는 기존의 방법이 있는지 궁금합니다. 나는이 속성이 EMD과 같은 일부 분해에 유용하다는 것을 읽었습니다. 어쩌면 그런 분해가 필요한가요?
아마도 당신은 지역의 평균, 과정을 빼기해야 다음 다시 함께 세그먼트를 결합하기 전에 다시 다시 로컬 평균을 추가합니다. 세그먼트를 다시 겹치거나 (예 : 50 %) 다시 가입 할 때 한 세그먼트에서 다른 세그먼트로 사라질 수도 있습니다. – mikado
@mikado 지역 정보를 다시 추가하지 않겠습니다. 블라인드 처리를 위해이 작업이 필요합니다. 각 세그먼트의 지역 평균을 0으로 만드는 동안 오디오 파일의 왜곡을 줄이는 좋은 방법을 찾고 있습니다. 그래도 고마워. – kdrtkl