현재 C++에서 해당하는 버전의 MATLAB hilbert()
을 구현하는 방법을 찾지 못했습니다. 저는 신호 처리에있어 매우 새로운 것이지만, 궁극적으로 주어진 신호를 90도 위상 변이시키는 방법을 찾아 내고 싶습니다. 나는 this question on MATLAB central에서 제안 된 방법을 따르려고했는데, 이것은 GNU Octave를 사용하는 테스트를 기반으로 작동하는 것으로 보입니다.C++에서 FFT를 사용하여 분석 신호 계산
나는 FFT와 역 FFT의 작동 구현이라고 생각하며 분석 신호를 계산하기 위해 this post에 대한 대답에서 설명한 방법을 구현하려고 시도했습니다. 나는 FFT를 적용하여 배열의 상반부를 0으로 설정 한 다음 역 FFT를 적용하여이 작업을 시도했지만, 테스트 결과를 그래프로 만들었 기 때문에 내가 갖고있는 방식에 문제가 있어야합니다. 분석 신호를 찾는 작업을 구현했습니다.
FFT 및 역 FFT의 작동 구현이 주어진 C++의 MATLAB에서 hilbert()
함수를 구현하는 적절한 방법은 무엇입니까? 90도 위상 이동을 달성하는 더 좋은 방법이 있습니까?
내가 MATLAB에서 힐버트 기능 확실하지만 난 b'를 * A +'당신의 FFT 복잡한 계수 주어진 아니에요, 당신은 + 내가 * -b '로 교체하여 90도 위상 변화를 수행 할 수 있습니다 a – jodag
또한, MATLAB을 사용하고 있다면'edit hilbert'를 입력하여 그들이 사용하는 구현을 볼 수 있습니다. FFT와 역 FFT를 구현하면 꽤 똑바로 보입니다. – jodag
@jodag 불행히도'a + i * b'를'-b + i * a'로 바꾸는 것은 원하는 효과를 내지 못하는 것 같습니다. 어쩌면 사용하고있는 FFT 또는 역 FFT의 구현이 잘못 되었습니까? 사실 FFT를 적용하기 전에 동일한 데이터를 다시 얻고 있습니다. 또한 MATLAB이 없습니다. – fakedad