JMP에서 스펙트럼 분석을 수행하려면 어떻게 해야 합니까?주파수 영역에서 보고 싶은 800k 이상의 데이터 시리즈가 있습니다.스펙트럼 밀도 데이터를 생성하기 위해 "시계열 분석"을 시도했지만 JMP가 중단됩니다.몇 분 동안 그대로 두었더니 그래픽 카드가 죽었습니다...굉장한 우연의 일치!
시험해보고 싶다면 데이터 파일이 첨부되어 있습니다. 첫 번째 열은 초 단위의 타임스탬프이고 두 번째 열은 데이터입니다.이 작업을 수행할 수 있는 방법이 있으면 알려주십시오.
감사해요,
제이슨
Re: 스펙트럼 분석은 어떻게 하나요?안녕하세요 다니엘,
피오나의 요청을 두 번째로 들었습니다. 코드를 공유할 수 있습니까?
감사해요
Re: 스펙트럼 분석은 어떻게 하나요?스크립트를 공유하고 내 데이터에서 FFT를 실행하도록 해줄 수 있습니까?
Re: 스펙트럼 분석은 어떻게 하나요?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />훌륭한! 해당 데이터에 대한 정보에 감사드립니다. 내 분석이 당신이 기대하는 것과 일치해서 기쁩니다. JMP는 실제로 주파수 영역 데이터의 통계 분석에 매우 적합하지만 MATLAB과 같은 일부 다른 도구는 임의 크기의 배열, 필터 설계, 컨벌루션 등에서 FFT를 수행하는 것과 같은 특수 작업을 수행하는 데 매우 적합합니다. 이것이 JMP의 확장성이 뛰어난 이유입니다. SAS, MATLAB 및 R에 접근할 수 있으므로 필요할 때 이러한 도구를 활용한 다음 시각화 및 분석을 위해 데이터를 다시 JMP로 가져올 수 있습니다.
모두 JSL로 작성한 FFT 애플리케이션을 통해 데이터를 실행했습니다. JMP 플랫폼처럼 작동합니다.

확인을 클릭하면 수행하는 작업은 MATLAB에 연결하고 시간 영역 데이터를 주파수 영역으로 변환한 다음 추가 분석 및 그래프 작성을 위해 데이터를 다시 새 JMP 데이터 테이블로 반환하는 일부 기존 코드를 실행하는 것입니다. MATLAB에서 신호를 추가로 처리해야 하는 경우(예: 대역 통과 필터 실행) 데이터를 JMP로 반환하기 전에 MATLAB에서도 처리할 수 있습니다.
하지만 데이터가 JMP로 돌아오면 원하는 대로 분석하거나 시각화할 수 있습니다. 예를 들어 로컬 데이터 필터를 사용하여 정류된 AC 소스 구성 요소가 > 3Hz인 신호 부분에 초점을 맞췄습니다.

그런 다음 Rows > Row Selection > Select Dominant를 사용하여 Pareto Front의 포인트에 초점을 맞춥니다. JMP는 33개의 FFT 빈을 식별했으며 Tables > Subset을 사용하여 하위 집합을 만들 수 있습니다. "원본 데이터 테이블에 연결됨"을 선택하면 하위 집합과 전체 데이터 세트가 연결됩니다. + 마커를 넣고 하위 집합에서 이 점을 빨간색으로 색칠하면 원본 데이터 테이블에서 다시 색이 지정됩니다.

답변하려는 질문에 따라 이러한 데이터를 분석하는 가장 좋은 방법이 결정되지만 변환된 데이터가 JMP로 다시 돌아오면 원하는 방식으로 탐색할 수 있습니다. JSL에서 FFT 기능을 사용하라는 @Xan의 제안도 훌륭합니다. 저는 MATLAB에서 다양한 신호 처리 작업을 수행하는 코드 라이브러리를 이미 가지고 있고 분석 단계의 일부로 IIR 또는 FIR 필터를 사용하여 데이터를 필터링해야 하는 경우가 종종 있기 때문에 MATLAB을 사용하기로 했습니다. 이 작업은 MATLAB이 적합합니다(필터 설계 및 필터링 단계 수행 모두).
Re: 스펙트럼 분석은 어떻게 하나요?봐주셔서 감사합니다!예, FFT를 수행하기 위해 다른 소프트웨어(AD Instruments의 Labchart)를 찾았고 몇 가지 흥미로운 피크가 있다는 데 동의합니다.120Hz 및 240Hz는 정류된 AC 소스의 노이즈를 나타냅니다.1Hz 미만의 에너지 중 일부는 시스템의 기계 구성 요소의 회전 주파수와 관련하여 일관된 배수로 피크로 분해됩니다.
주로 내가 제대로 사용하지 않았던 JMP의 일부 기능이 있는지 확인하기 위해 게시했지만 빈도 영역 통계 분석은 실제로 그들의 것이 아닌 것 같습니다.
Re: 스펙트럼 분석은 어떻게 하나요?JMP 11에서 MATLAB에 대한 JMP 인터페이스를 사용하여 MATLAB에서 작성한 FFT 분석 스크립트를 통해 이러한 데이터를 실행했습니다. SR이 1000Hz인 것처럼 보이므로 Nyquist 주파수까지 해상도를 제공합니다. 500Hz의. DC를 향한 많은 LF 에너지가 있지만 40Hz - 300Hz 사이에 몇 가지 흥미로운 피크가 있는 것 같습니다. 이것이 이러한 데이터에 대해 기대할 수 있는 결과 유형입니까?
MATLAB에서 반환된 결과를 사용하여 Graph Builder에 플로팅:

Re: 스펙트럼 분석은 어떻게 하나요?시계열의 Spectral Density 명령은 분명히 느린 알고리즘을 사용하고 있습니다. 빠른 알고리즘을 사용하는 "FFT"라는 JSL 함수가 있지만 포인트의 수가 근사한 어림수(많은 작은 요소를 가짐)인 경우에만 가능합니다. 예를 들어 데이터를 정확히 800,000행으로 자르면 다음 JSL이 즉시 반환됩니다.
data = Column( "y" ) << 값을 얻습니다. 표시( N 행( 데이터 ) );
f = FFT( {데이터} ); Show( N 행( f[1] ) );
현재 데이터 테이블() << New Column("freq", Set Values( f[1] ));