MATLAB에서 학습한 신호 처리 창 함수 정보
ftt와 창 함수의 관계를 대충 설명합니다.
대략적이기 때문에 전문가가 지적하고 싶은 부분이 있을 거라고 생각하지만, 실제 응용에서는 아래의 이해로 곤란해하지 않으니 널리 양해해 주십시오.
개시하다
fft에서 신호가 주기적이라고 가정하고 (이 신호가 계속 지속된다고 가정) 이 신호의 주파수를 분석한다.장시간의 신호를 주파수 분석하면 분석 비용(처리 시간과 부하)이 매우 많기 때문에 신호를 짧게 잘라야 한다.
짧게 자르더라도 주기적이라고 가정하기 때문에 짧게 자른 신호가 순환 재생이라는 것을 고려해도 마찬가지다.(신호가 노이즈 파일이라면 음악 플레이어 등으로 짧은 시간 안에 잘린 음원을 반복해서 재생하는 것도 마찬가지겠죠?)
그러나 짧게 자른 데이터가 아래 그림과 같은 경우 어떻게 될까?
이 신호가 계속된다고 가정하면 다음 그림과 같다.
이해하기 어렵지만 x축의 1000과 2000곳에서 신호는 연속되지 않는다.불연속으로 fft 결과에는 신호에 없는 주파수 성분이 포함되어 있다.이것은 누설 오차 또는 누설 오차라고 불린다.
창 함수
이런 상황을 피하기 위해 신호의 시작과 끝을 0으로 미리 설정하세요!이것은 창문 함수의 생각이다.
다음 그림은 일반적으로 사용되는 창 함수입니다.창 함수도 종류가 있어 용도에 따라 구분해서 사용할 수 있지만 망치 고리에는 사각형 파창(안치식 창문)을 사용하고 다른 것은 의외의 창을 자주 사용한다.
clear all
smplingFreq=1024;
time=linspace(0,1,smplingFreq);
hannWin = max(0.5*ones(1,smplingFreq) - 0.5*cos(2.0*pi*time),eps);
hammWin = 0.54*ones(1,smplingFreq) - 0.46*cos(2.0*pi*time);
rectanWin = ones(1,smplingFreq);
blackmanWin = max(0.42*ones(1,smplingFreq) - 0.5*cos(2.0*pi*time) + 0.08*cos(4.0*pi*time),eps);
figure
subplot(411)
plot(hannWin,'r','linewidth',3)
xlim([1 1024])
title('ハニング窓')
subplot(412)
plot(hammWin,'r','linewidth',3)
xlim([1 1024])
title('ハミング窓')
subplot(413)
plot(rectanWin,'r','linewidth',3)
xlim([1 1024])
title('方形波窓')
subplot(414)
plot(blackmanWin,'r','linewidth',3)
xlim([1 1024])
title('ブラックマン窓')
창 함수를 적용하면 다음 그림과 같이 신호가 표시됩니다.이 단파형을 반복해서 연결해도 파형이 연속되지 않는다.하지만 창 함수를 적용해 진폭이 작아졌다.따라서 창 함수를 적용할 때 fft 결과를 수정해야 합니다.나는 나중에 수정 방법을 총결하고 싶다.clear all
smplingFreq=1024;
time=linspace(0,1,smplingFreq);
hannWin = max(0.5*ones(1,smplingFreq) - 0.5*cos(2.0*pi*time),eps);
y=sin(10*2*pi*time);
figure
plot(y.*hannWin,'r','linewidth',3)
xlim([1 1024])
title('ハニング窓処理後')
이번엔 여기까지 하자.제 개인 블로그도 잘 부탁드립니다.
Reference
이 문제에 관하여(MATLAB에서 학습한 신호 처리 창 함수 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/mech_eng_uni/articles/c88a2c1cd27287텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)