2013-11-01 5 views
1

오디오 신호의 MATLAB에서 웨이브 렛 변환을 수행 한 출력에 관한 질문이 있습니다. wavread 함수를 사용하여 MATLAB에 오디오 신호를 가져 왔습니다. 그런 다음 wavdec 함수 (일반적으로 haar 또는 db4 변환)를 사용하여 신호에서 한 레벨의 웨이블릿 변환을 수행합니다. 신호를 다시 원래의 오디오 신호로 변환하기 위해, 나는 wavrec 함수를 사용하여 신호에 대해 웨이브 폼 역변환을 수행합니다. 이 기능을 사용하면 원래의 오디오 신호로 돌아 가게됩니다. 그러나 많은 데이터 포인트가 원래 신호와 약간 떨어져 있습니다 (약 10^-16 정도이므로 매우 미미합니다). 그러나 이론적으로 역변환은 정확한 원 신호를 제공해야합니다. 내가 뭔가 잘못하고 있는지 확신 할 수 없지만 웨이블릿 변환을 수행 한 다음 역행렬을 수행 한 후 원본 신호의 출력을 정확히 얻지 못하는 이유가 있습니까? 어떤 도움을 주셔서 대단히 감사합니다!MATLAB의 웨이블릿 변환 출력

+0

이것은 매우 좋은 질문입니다! 이미지가있는 MATLAB에서 동일한 상황이 발생했습니다. 그 차이는 너무 작아서 설명을 보지 못했습니다. 나는 당신의 포스트를 더 가깝게 지켜보고 경험이 많은 사람들이 말하는 것을 보게 될 것이다. – Helder

답변

4

컴퓨터의 숫자는 이론적 수치만큼 완벽하지 않습니다.

한정된 양의 메모리에 데이터를 저장하려면 가장 가까운 표현 가능한 값으로 반올림해야합니다. 이 반올림은 매우 작지만보고있는 "오류"도 마찬가지입니다.

"모든 컴퓨터 과학자가 부동 소수점 연산에 대해 알아야하는 내용"또는 요약 중 하나를 찾아보십시오 (기사는 훌륭하지만 길지만 요약은 짧지 만 품질은 다양 함).

+0

답변 해 주셔서 감사합니다. 나는 그것과 관련이 있다고 생각했지만 확실하지 않았습니다. 왜 약간의 오류가있을 지 이해가됩니다. – Math244

+0

@BenVoigt 좋은 대답. 당신의 설명은 완전히 이해가됩니다. – Helder