DSP는 일부의 FFT를 사용하여 수행 될 것이라고 생각했습니다. 신호, FFT의 결과 인 샘플을 수정하고 (신호 + 노이즈의 스펙트럼을 나타 내기 때문에) 원치 않는 신호를 제거하고 역 FFT를 수행하여 필터링 된 신호의 시간 도메인 표현을 얻습니다 (노이즈는 이제 제거됨). . 그러나 이것은 수행되지 않고 대신 창 함수를 사용하여 시간 영역에서 모든 작업을 수행합니다. 그 이유는 무엇입니까?

윈도우 함수의 주파수 응답을 주파수 도메인의 신호 스펙트럼과 컨볼 루션하는 것보다 시간 도메인에서 윈도우 함수를 곱하면 어떻게 작동합니까? 우리의 신호와 필터의 주파수 응답을 곱하여 주파수 영역에서의 작업은 필터링과 같을까요?하지만 여기서는 창을 사용하는 대신 시간 영역의 모든 작업을 수행합니다.

-> 저역 통과 필터와 같은 아날로그 필터의 경우 주파수 응답과 같은 펄스가 있습니다. 신호를 필터링 할 때 신호의 스펙트럼을 필터의 펄스와 같은 주파수 응답과 효과적으로 곱합니다. 이것은 컷오프 위의 신호에서 모든 주파수를 0으로 줄입니다. 이것이 저역 통과 필터가 본질적으로 작동하는 방식입니다. 디지털 필터도 마찬가지입니다.

댓글

답변

윈도우로 인해 스펙트럼 감소 누출.

$ \ sin (y) = \ cos (\ omega_0 t) $로 시작한다고 가정 해 보겠습니다. 기간은 분명히 $ 2 \ pi / \ omega_0 $입니다.

그러나 아무도 기간이 $ 2 \ pi / \ omega $라고 말하고 맹목적으로 $ [0, 1.8 \ pi / \ omega_0] $ 범위를 선택하고 잘린 파형의 FFT를 취하면 주기성을 위해 잘린 파형을 복사하여 붙여 넣음으로써 생성 된 점프가 원래 신호에 실제로 존재하지 않기 때문에 모두 가짜 인 다른 주파수의 주파수 구성 요소를 관찰합니다. 이는주기 사이의 전환을 원활하게 캡처하지 못하는 불운 한 절단의 아티팩트입니다. . 이상적으로는 $ \ omega = \ omega_0 $에 스펙트럼 성분이 하나만 있습니다.

시간 도메인에서 윈도우의 목적은 이러한 모든 가상의 스펙트럼 구성 요소를 줄이는 것입니다.

답변

윈도우 화는 DFT 계산이 입력 신호의 무한 주기적 확장에 대해 작동하기 때문에 사용됩니다. 많은 실제 신호가 전혀 주기적이지 않거나 실제주기와 다른 간격으로 샘플링되기 때문에 반복되는 간격 사이의 인공 “에지”에서 잘못된 주파수 성분을 생성 할 수 있습니다 ( 누설 . 먼저 시간 영역 신호에 양쪽 끝이 0이되는 윈도 잉 함수를 곱하면 무한주기 확장에서 반복되는 간격 사이에 부드러운 전환이 생성되므로 DFT를 취할 때 이러한 인공 주파수 구성 요소의 생성을 완화 할 수 있습니다.

문서 는이 현상에 대해 더 자세히 살펴보고 다양한 윈도우 기능의 효과에 대한 몇 가지 통찰력을 제공합니다.

p>

답변

두 가지 다른 작업을 혼동하고있는 것 같습니다.

시간 영역의 창은 @로 설명됩니다. sam, 그래서 반복하지 않겠습니다. 그러나 필터링을 수행하기 위해 윈도 잉은 수행되지 않습니다. 신호의 FFT에 필터 주파수 응답을 곱하여 필터링하는 것은 많은 상황에서 전적으로 합리적이며 실제로 수행됩니다. 필터링의 대안은 시간입니다. -도메인 컨볼 루션 (윈도우와 다름) 이것은 “real-tim에서 신호에서 작동하는 것과 같은 고유 한 장점이 있습니다. e “는 모든 것이 저장되고 변환 될 때까지 기다리지 않고 측정되기 때문입니다.

따라서”디지털 필터에서도 동일한 작업을 수행하지 않는 이유는 무엇입니까? “라는 질문에 대한 대답은”우리는 , 적합 할 때. “

댓글

  • 또한 질문에서 회선과 윈도우가 뒤섞인 인상을 받았습니다. 지적 해주셔서 감사합니다.

답변

이 질문에 대한 몇 가지 좋은 답변이 있습니다. 그러나 한 가지 중요한 점이 완전히 명확하지 않은 것 같습니다. 질문의 한 부분은 왜 신호의 FFT에 원하는 필터 응답을 곱하지 않는지였습니다. 예를 들어 신호를 저역 통과 필터링하려는 경우 원하는 차단 주파수보다 높은 모든 주파수 구성 요소를 간단히 제로화 할 수 있습니다. . 사실 이것은 FIR 필터를 설계하기 위해 잘 알려진 주파수 샘플링 방법을 간단하게 적용한 것입니다. 문제는 FFT에 의해 계산 된 이산 주파수 성분을 0으로 만들 수 있다는 것입니다. 이러한 이산 주파수 사이에서 일어나는 일을 제어 할 수 없습니다. .이러한 간단한 필터링 버전은 FFT 길이에 관계없이 저지 대역 감쇠가 좋지 않을뿐입니다. MATLAB 또는 옥타브에 액세스 할 수있는 경우 직접 사용해 보는 것이 매우 유익합니다.

x=2*rand(1024,1)-1; X=fft(x); Y=X.*[ones(200,1);zeros(625,1);ones(199,1)]; % lowpass filter y=real(ifft(Y)); % real() just to remove numerical errors Y=fft(y,4096); plot(20*log10(abs(Y(1:2048)))),axis([0,2048,-30,50]) 

답변

직사각형이 아닌 창을 사용하지 않으면 FFT 결과는 주파수 도메인 필터링을 수행하기 전에 기본 직사각형 창 (주기적 Sinc)의 변환과 이미 컨볼 루션됩니다. 예 : 두 개의 필터가 적용되며 그 중 하나는 원하지 않을 것입니다.

FFT 및 주파수 도메인 필터링 전에 시간 도메인에서 창을 설정하여 모든 필터링 (소위 “누출” ) 직사각형 창에 의해 수행되므로 원치 않는 추가 필터 컨볼 루션을 얻지 않습니다.

이 작업을 수행하는 다른 방법은 연속 창에서 중복 추가 또는 중복 저장 방법을 사용하는 것입니다. 직사각형 창은 인접한 창에서 유사한 효과로 인해 취소됩니다.

답변

시간 도메인의 창

  • 창 가장자리에서 0을 보장 할 수 있습니다.
  • 창 함수는 공간 영역에서 멋진 분석 표현을 가지고 있습니다.
  • 많은 창 함수는 이상한 모양의 스펙트럼을 가지고 있습니다. 근사하기 어렵습니다
  • 제한된 수의 샘플 만 필요합니다 (신호가 들어 오면서 창을 설정할 수 있음)

wikipedia

여기에 이미지 설명 입력

하드 윈도우 기능이 0이되는 것을 차단한다는 것은 스펙트럼 영역에서 사이드 로브가 매우 느리게 0이되는 것을 의미합니다. 이 제약 조건을 제거하면 Gaussian 필터와 같이 공간 및 스펙트럼 영역 모두에서 압축 된 함수를 가질 수 있습니다. 즉, 스펙트럼 도메인을 통해 필터링 할 수 있지만 전체 신호를 알아야합니다.

전체 신호가 이미있는 경우 다른 대안은 웨이브 렛

답변

같은 질문이있었습니다.

컨볼 루션은 윈도우와 곱한 시간 도메인 신호의 적분 / 누적 합. “창이있는”시간 영역 신호와 혼동해서는 안됩니다.

기사의 끝은 저에게 많은 도움이되었습니다.

기본적으로 실제 신호는 유한하며 실제 신호를 갑자기 차단하면 주파수 영역에서 원하지 않는 주파수 / 아티팩트가 많이 발생합니다.

이러한 아티팩트를 방지 / 최소화하기 위해 샘플이 0이 아닌 스칼라 값으로 갑자기 끝나는 대신 0으로 시작하고 끝나도록 부드러운 (예 : 종 모양) 창 함수를 사용할 수 있습니다.

부드러운 컷오프

위의 윈도우 샘플은 아래의 원시 샘플보다 주파수 영역에서 아티팩트가 적습니다.

p>

갑작스러운 끊김

답변

FFT와 관련된 두 가지 광범위한 범주가 있으며 1) FIR 필터를 구현하는 효율적인 방법과 2) 스펙트럼 분석입니다.

FIR 필터링, 창에 대해 걱정하지 않고 창이 필터에 해당하지 않는 한 사용하지 않습니다. 할 g. 누출은 문제가되지 않습니다.

스펙트럼 분석은 창을 사용하는 곳입니다. 여기에서 큰 산업 기계에 부착 된 센서를보고 장 깊숙한 곳에서 베어링이 고장 나는지 알아 내려고합니다. 베어링이 고장 나면서 삐걱 거리는 소리가 들리지만 소음은 보통 기계가내는 다른 소리보다 훨씬 낮습니다. 이것이 누설과 평균화가 들어오는 곳입니다. 강한 톤이 주어지면 누설은 우리가 찾고있는 약한 신호를 휩쓸어 버릴 것입니다. 강한 신호가있을 때 약한 신호에 대한 스펙트럼 분석의 감도를 향상시킵니다. 배경 소음이 기울어지면 비슷한 효과가 있습니다. 우리가 찾는 정보는 주파수 영역에 있습니다. 이것은 RADAR, SONAR 및 Geophysics에서 동일한 문제입니다. 약한 신호를 보는 것이 목표입니다.

답변

확산 할 주파수 빈에 정확히 있지 않은 단일 주파수를 피하기 위해 시간 영역에서 창을 설정해야합니다. 전체 스펙트럼에 걸쳐. 이 페이지가 도움이 될 수 있습니다. http://www.sm5bsz.com/slfft/slfft.htm Linrad (20 년 된 프로젝트)는 창 FFT를 사용한 다음 필터를 적용합니다. 주파수 영역에서 (원하지 않는 것을 0으로 만드십시오.) 창을 적용하십시오-주파수 bin에서 weigtht 1에서 weight 0으로 갑자기 이동하지 마십시오. 그런 다음 역방향 FFT를 적용하지만 이제 훨씬 적은 수의 포인트에 적용됩니다. 우리가 알고있는 모든 주파수 빈을 포함 할 필요가 없습니다. 결과적으로 우리는 훨씬 더 작은 크기의 시간 함수를 얻습니다. 이는 훨씬 더 낮은 샘플링 속도를 의미합니다. 이 절차는 단일 단계에서 필터링과 데시 메이션을 수행합니다.이는 동시에 여러 채널을 필터링하려는 경우 매우 효율적입니다. linrad 홈페이지는 다음과 같습니다. http://www.sm5bsz.com/linuxdsp/linrad.htm

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다