첫 번째 단계는 시작 샘플 속도와 대상 샘플 속도가 모두 합리적인지 확인하는 것입니다 . 정수이기 때문에 자동으로 합리적인 숫자입니다. 그중 하나가 합리적인 숫자가 아니라면 여전히 샘플 속도를 변경할 수는 있지만 훨씬 다른 프로세스이며 더 어렵습니다.
22∗32∗52∗7227∗5332∗7225∗5
데이터를 어떻게 리샘플링하든 관계없이 이전 단계를 수행해야합니다. 이제 FFT로하는 방법에 대해 이야기 해 봅시다. FFT로 리샘플링하는 요령은 모든 것이 잘 작동하도록 FFT 길이를 선택하는 것입니다. 즉, 데시 메이션 비율 (이 경우 441)의 배수 인 FFT 길이를 선택해야합니다. 예를 들어, FFT 길이 441을 선택하지만 882 또는 1323 또는 441의 다른 양의 배수를 선택할 수 있습니다.
이것이 어떻게 작동하는지 이해하려면 그것을 시각화하는 데 도움이됩니다. 주파수 영역에서 아래 그림과 같은 오디오 신호로 시작합니다.
처리가 끝나면 샘플 속도를 16kHz로 낮추고 싶지만 가능한 적은 왜곡을 원합니다. 다시 말해, 위 그림의 모든 것을 -8 kHz에서 +8 kHz로 유지하고 다른 모든 것을 버리고 싶을뿐입니다. 결과는 아래 그림과 같습니다.
샘플 속도는 스케일이 아니며 개념을 설명하기 위해 있습니다.
25∗5
의심 할 수 있듯이 몇 가지 잠재적 인 문제가 있습니다. 나는 각각을 통해 당신이 그들을 극복 할 수있는 방법을 설명합니다.
데이터가 데시 메이션 계수의 좋은 배수가 아닌 경우 어떻게해야합니까? 데시 팩터의 배수로 만들기 위해 데이터의 끝을 충분한 0으로 채우면이를 쉽게 극복 할 수 있습니다. 데이터는 FFT되기 전에 채워집니다.
ll−10 (데이터 샘플 수와 패딩 샘플 수는 모두 데시 메이션 팩터의 양의 배수 여야 함-이 제약 조건을 충족시키기 위해 패딩 길이를 늘릴 수 있음), 패딩 된 데이터를 FFT ' 데이터 및 필터를 사용한 다음 고주파수 (> 8kHz)를 앨리어싱하면 고주파수 결과를 삭제하기 전에 저주파수 (<8kHz) 결과로 내려갑니다. 불행히도 주파수 영역에서의 필터링은 그 자체로 큰 주제 이므로이 답변에서 더 자세히 설명 할 수는 없습니다. 그러나 두 개 이상의 청크로 데이터를 필터링하고 처리하는 경우 필터링을 계속하려면 오버랩 및 추가 또는 오버랩 및 저장 을 구현해야합니다 .
이게 도움이 되길 바란다.
편집 : 주파수 도메인 샘플의 시작 수와 주파수 도메인 샘플의 대상 수 사이의 차이는 결과의 양의 측에서 결과의 음의 측과 동일한 수의 샘플을 제거 할 수 있도록 짝수해야합니다. 이 예의 경우, 샘플의 시작 수는 데시 메이션 비율 또는 441이고, 대상 샘플 수는 보간 속도 또는 160입니다. 차이는 279이며 짝수는 아닙니다. 해결 방법은 FFT 길이를 882로 두 배로 늘리는 것이므로 대상 샘플 수도 320으로 두 배가됩니다. 이제 차이가 고르고 문제가없는 적절한 주파수 도메인 샘플을 제거 할 수 있습니다.