단위 4 / 9

신호 처리 및 데이터 분석

이득:

  • 샘플링 주파수, 필터 유형, 윈도우잉 등 신호 처리 매개변수를 AI로 정확하게 설정하는 기능
  • FFT, 필터 설계 및 노이즈 분석을 위한 Python 코드를 생성하고 나이퀴스트 및 앨리어싱을 확인하는 기능
  • AI가 생성한 스펙트럼 해석을 측정 및 물리적 기대와 비교하여 검증하는 기능

센서, 마이크 또는 전력선의 원시 데이터만으로는 의미가 없는 경우가 많습니다. 주파수, 진폭, 시간의 축으로 처리하고 해석하는 것이 필요합니다. FFT로 스펙트럼 추출, 노이즈 필터링, 진동 신호 인식… 이 모든 것이 신호 처리이며 AI는 이 영역에서 빠른 Python 코드를 생성하고 개념을 설명하고 필터 계수를 계산합니다. 그러나 신호 처리의 작은 매개변수 오류(잘못된 샘플링 주파수, 잘못된 창, Nyquist 제어 건너뛰기)로 인해 전체 분석이 조용히 망가집니다. 코드는 오류를 발생시키지 않고 단지 잘못된 결과를 제공할 뿐입니다. 이 단원에서는 AI를 사용하여 올바른 매개변수를 설정하고, 생성된 코드를 나이퀴스트 및 앨리어싱 측면에서 확인하고, 스펙트럼 해석을 물리적 현실로 검증하는 방법을 다룹니다.

기본 매개변수: 샘플링, 나이퀴스트, 앨리어싱

디지털 신호 처리의 첫 번째 규칙은 Nyquist-Shannon 정리입니다. 즉, 신호를 정확하게 표현하려면 샘플링 주파수가 신호에서 가장 높은 주파수 구성 요소의 두 배 이상이어야 합니다. 그렇지 않으면 높은 주파수가 낮은 주파수(앨리어싱)로 나타나며 이는 되돌릴 수 없습니다.

신호의 가장 높은 주파수: f_max = 2 kHz최소 샘플링 주파수: f_s ≥ 2 · f_max = 4 kHz 실제로 마진을 남기려면: f_s ≒ 5 · f_max = 10 kHz가 선택됩니다. 또한 아날로그 안티앨리어싱 필터는 샘플링 전에 반드시 필요합니다.

주의: AI가 샘플링 주파수를 제안할 때 신호의 가장 높은 구성 요소를 기반으로 Nyquist를 제공하는지 확인하십시오. 낮은 샘플링 빈도에서도 코드는 오류 없이 실행됩니다. 하지만 앨리어싱으로 인해 결과가 잘못되었습니다. 또한 하드웨어의 앤티앨리어싱 필터 없이는 어떤 소프트웨어도 이 오류를 취소할 수 없습니다.

FFT의 해상도 및 윈도잉

FFT의 주파수 분해능은 샘플링 주파수와 샘플 수에 따라 달라집니다. Δf = f_s / N. 더 미세한 분해능을 위해서는 더 많은 샘플을 수집하거나 더 낮은 f_s를 선택합니다(나이퀴스트를 깨지 않고). 또한 신호의 시작과 끝 사이의 불연속성으로 인해 "스펙트럼 누출"이 발생합니다. 이를 줄이기 위해 Hann, Hamming 등의 Window 함수를 적용합니다.

f_s = 10kHz, N = 1024개 샘플주파수 분해능: Δf = 10000 / 1024 ≒ 9.77Hz총 녹음 시간: T = N / f_s = 1024 / 10000 ≒ 102.4ms

FFT 및 필터 코드 생성 및 확인

AI에서 FFT 코드를 요청할 때 샘플링 주파수, 창 유형 및 축 스케일을 명시적으로 지정합니다. 다음 코드는 신호의 단측 진폭 스펙트럼을 출력합니다.

import numpy as npfs = 10000 # 샘플링 주파수(Hz) - Nyquist!N = 1024t = np.arange(N) / fs# 샘플 신호 확인: 500Hz + 1500Hzx = np.sin(2*np.pi*500*t) + 0.5*np.sin(2*np.pi*1500*t)w = np.hanning(N) # 윈도우잉: 게인으로 정규화된 스펙트럼 누출을 줄입니다# 피크 주파수를 확인하세요peaks = f[np.argsort(mag)[-2:]]print("주요 주파수(Hz):", np.sort(peaks))

이 코드를 확인할 때 다음과 같은 질문을 받게 됩니다. 주파수 축이 실제로 Hz입니까, 아니면 샘플 인덱스(rfftfreq가 사용됨)입니까? 진폭이 창 이득으로 정규화되어 있습니까? 예상되는 500Hz 및 1500Hz 피크가 실제로 해당 지점에서 발생합니까? 알려진 테스트 신호(단일 주파수 사인)로 코드를 검증하면 축과 정규화를 자신있게 확인할 수 있습니다.

약한 프롬프트 / 강한 프롬프트

WEAK: "이 데이터에 FFT를 적용합니다."(결과: 샘플링 주파수, 축 스케일 및 윈도잉이 불분명합니다. 그래프가 잘못된 축에 플롯될 가능성이 높습니다.)STRONG: "10kHz 샘플링된 신호에 FFT를 적용합니다. 제공:- 주파수 축을 Hz 단위로 플롯합니다(rfftfreq 사용).- Hann 윈도우를 적용하고 윈도우 게인으로 진폭을 정규화합니다.- 두 개의 주요 주파수를 디지털로 인쇄합니다.- 나이퀴스트 한계(5kHz)를 표시합니다. 그래프에서 샘플링 주파수가 올바르지 않으면 축이 이동합니다."

필터 설계 및 잡음 분석

AI는 저/고/대역통과 필터 계수(FIR/IIR)를 생성할 수 있습니다. 단, 필터의 차단 주파수, 순서, 안정성을 확인해야 합니다. 특히 IIR 필터에서는 높은 차수 불안정성과 위상 왜곡이 발생할 수 있습니다. 필터를 설계한 후 주파수 응답(보드형)을 플로팅하여 차단이 올바른 위치에 있고 통과대역에 원치 않는 리플이 없는지 확인합니다.

잡음 분석의 일반적인 작업은 잡음에서 실제 신호를 분리하는 것입니다. 여기에서는 신호의 물리적 대역폭에 대해 AI가 제안한 임계값 또는 필터를 평가합니다. 실제 신호가 0~500Hz인 경우 2kHz의 구성 요소는 잡음이나 간섭일 가능성이 높습니다. AI는 통계를 제공합니다. 당신은 물리적인 해석을 합니다.

물리적 현실을 이용한 스펙트럼 해석 검증

스펙트럼을 해석할 때 AI는 "50Hz에 피크가 있습니다. 이는 그리드 간섭입니다."와 같이 합리적이지만 항상 정확하지는 않은 추론을 합니다. 이러한 설명을 물리적 기대와 비교하십시오. 시스템에 실제로 50Hz 주 전원 연결이 있습니까? 예상되는 회전 주파수와 고조파가 모터의 진동 스펙트럼에 거의 있습니까? 가능하다면 두 번째 방법(다른 센서, 다른 소프트웨어)으로 측정을 반복하고 동일한 피크를 확인하십시오.

힌트: 각 스펙트럼 해석에 대해 "이 피크는 어떤 물리적 현상에 해당합니까?" 질문을 해보세요. 50/100/150Hz 네트워크 및 고조파, 회전 기계의 회전 주파수 및 배수, 스위칭 전원 공급 장치의 스위칭 주파수는 알려진 특징입니다. 알 수 없는 피크는 실제 이벤트이거나 측정/처리 오류입니다. 둘 다 조사해 보세요.

미니 케이스

R&D 엔지니어가 팬의 진동을 측정하고 AI가 스펙트럼을 해석하도록 합니다. AI는 "1200Hz에 주요 피크가 있는데 이는 베어링 고장일 수 있습니다"라고 말합니다. 엔지니어는 팬 속도를 1800rpm = 30Hz로 제어합니다. 베어링 및 블레이드 전이 주파수는 이 주기와 호환되는 특정 값이 될 것으로 예상됩니다. 1200Hz는 이들 중 어느 것에도 해당하지 않습니다. 이는 샘플링 주파수를 제어합니다. 신호는 최대 2kHz의 콘텐츠를 전달하지만 2kHz만 샘플링되므로 Nyquist 위반이 됩니다. 1200Hz의 피크는 앨리어싱으로 인한 고스트 주파수입니다. 샘플링 주파수를 8kHz로 높이면 잘못된 피크가 사라집니다. 교훈: 항상 물리적 주기/주파수 예상과 올바른 샘플링을 통해 스펙트럼 해석을 테스트하십시오.

일반적인 실수

  • Nyquist 기준을 확인하지 않고 샘플링 주파수를 선택합니다. 앨리어싱을 간과합니다.
  • FFT 주파수 축을 Hz 대신 샘플 인덱스에 둡니다.
  • 스펙트럼 누출을 윈도윙이 없는 신호로 착각합니다.
  • 창/샘플 수에 따라 진폭을 정규화하지 않습니다.
  • IIR 필터 안정성 및 위상 왜곡을 확인하지 않습니다.
  • 물리적 rpm/주파수를 예상하여 테스트하지 않고 스펙트럼 피크를 해석합니다.

요약하면

  • 샘플링 주파수는 신호의 가장 높은 구성 요소의 두 배 이상이어야 합니다. 그렇지 않으면 앨리어싱으로 인해 전체 분석이 중단됩니다.
  • FFT 분해능 Δf = f_s/N; 필요에 따라 N과 f_s를 선택하세요.
  • 윈도잉은 스펙트럼 누출을 줄입니다. 창 이득에 따라 진폭을 정규화합니다.
  • 알려진 테스트 신호로 AI 코드를 검증하여 축 및 정규화를 확인합니다.
  • 필터 안정성과 주파수 응답을 플로팅하여 확인합니다.
  • 항상 물리적 주파수를 예상하여 스펙트럼 해석을 테스트하십시오.

응용과제

알려진 주파수(예: 500Hz + 1500Hz 사인)의 테스트 신호를 생성합니다. AI에게 FFT 및 필터 코드를 요청합니다. 그런 다음 (1) 나이퀴스트 기준이 충족되는지 확인하고, (2) FFT 피크가 실제로 500 및 1500Hz에 나타나는지 확인하고, (3) 샘플링 주파수를 나이퀴스트 아래로 의도적으로 줄이고 앨리어싱이 어떻게 스퓨리어스 피크를 생성하는지 관찰합니다. 관찰한 내용과 수정한 매개변수를 기록해 두세요.