2013-07-22 4 views
3

MATLAB로 가져온 wav 파일이 있고 44.1 kHz의 샘플입니다. 이 오디오 파일을 22.05 kHz로 리샘플링하고 44.1 kHz로 다시 복원하려고합니다. 그러나, MATLAB에서 resample 함수를 사용하는 방법에 혼란스러워하고, 함수를 사용해야한다면이 함수를 사용해야합니다. 어떤 도움이라도 대단히 감사하겠습니다. 고맙습니다!MATLAB에서 오디오 리샘플링

+1

저는 matlab 전문가가 아니지만, 당신이 성취하고자하는 것에 달려 있다고 확신합니다. 다운 샘플링하는 이유와 시작한 곳으로 업 샘플링하는 이유를 설명 할 수 있습니다. 이 방법으로 달성 할 수있는 유일한 방법은 신호를 저하시키는 것입니다. –

+0

내가 이것을하는 이유는 리샘플링에 대한 내 오디오 워터 마크의 견고성을 테스트하고 있기 때문입니다. – Math244

답변

7

예, resample이 (가) 귀하의 기능입니다.

y = resample(x,1,2); 

는 (이하 "1"과 "2"를 인수가 정의 리샘플링 비율 : 44,100분의 22,050 = 1/2)

는 44100 Hz로 다시 업 샘플링하기 22,050 Hz로 44,100 Hz에서에서 x 다운 샘플링하려면 다음 resample 함수 필요한 앨리어싱 (저역 통과) 필터를 포함하는 것을

x2 = resample(y,2,1); 

참고.

아마도 "복구 된"신호 x2x에 있었던 가장 높은 주파수 정보를 잃어 버렸습니다.

+3

다른 사람이 당신의 코드를 읽고 있다면 명시 적으로 만들려면'y = resample (x, 22050,44100);과'x2 = resample (y, 44100,22050);을 사용하면된다. –

+0

고마워, –

+0

명확한 설명 downsampling이 비율의 절반에 불과하므로'y = x (1 : 2 : end)'를 수행 할 수도 있습니다. –