2013-10-01 2 views
0

오디오 파일 (피아노 녹음)을 사용하여 신호 처리를 시도하고 있습니다. 메모 온셋을 찾은 다음 각 온셋에서 FFT를 수행합니다. 그러나 나는 특정 노트에 대해 자신의 2 차 고조파가 근본보다 진폭이 더 크다는 것을 발견했다. 어떻게 이것을 제거하고 올바른 빈도를 얻을 수 있습니까 ??MATLAB을 사용한 신호 처리

답변

1

고주파 고조파 중 일부를 제거하기 위해 저역 통과 필터를 사용하여 시작하십시오. 처리하려는 피아노 녹음 파일이 3 옥타브 범위 내에서 녹음 된 경우 이는 상당한 도움이됩니다.

다음으로 웨이브 진폭을 조정하십시오. 고조파 왜곡이 신호를 저하시키는 방법과 고조파 왜곡에 대해 신호 대 잡음 비율을 교환하는 방법을 설명하는 기사가 있습니다. 당신이 신호 필터링없이 집에서 내장 된 솔루션을 더 원하는 경우

http://www.mathworks.com/help/signal/examples/analyzing-harmonic-distortion.html

, 여기에 내가 최대 신호 진폭이, 기본 고조파 2 차 또는 3 차 고조파 1 중 하나에 해당한다고 가정 시도를하려는거야) 최대 신호의 주파수 f를 찾으십시오. 2) f/2 또는 f/3의 신호가 잡음 플로어보다 훨씬 큰 경우 해당 주파수를 기본 신호라고합니다.

또는 1) 최대 신호 2) 간격 [f/2, 2 * f]에서 위의 검색하고 피크 neare를 찾으십시오 st f. 3) f와 가장 가까운 피크 사이의 차이가 기본 주파수 1이라고 가정합니다.

데이터에 이러한 방법을 적용해야합니다. 데이터에 홀수 차 고조파 만 표시되거나 고조파가 매우 강하다는 것을 확인하십시오. 여러 음을 동시에 연주하는 경우에는이 방법을 사용할 수 없습니다.

인간의 감도에 대한 데이터를 교정 해보십시오. 이는 두 번째 고조파가 귀가 기본에 비해 감지하는 것보다 FFT에서 더 큰 이유 일 수 있습니다. http://en.wikipedia.org/wiki/Absolute_threshold_of_hearing

을 참조하십시오.