신호를 평활화하는이 간단한 방법에 대한 기술적 용어가 있습니까?


26

첫째, DSP를 처음 접했고 실제로 교육을받지 않았지만 오디오 시각화 프로그램을 개발 중이며 일반적인 주파수 스펙트럼 시각화에서와 같이 FFT 배열을 세로 막대로 나타냅니다.

내가 가진 문제는 FFT 값을 직접 매핑하면 오디오 신호 값이 너무 빠르게 변경되어 즐거운 시각적 출력을 생성한다는 것입니다.

여기에 이미지 설명을 입력하십시오

따라서 결과를 "평활화"하기 위해 값에 간단한 함수를 적용합니다.

// pseudo-code
delta = fftValue - smoothedFftValue;
smoothedFftValue += delta * 0.2; 
// 0.2 is arbitrary - the lower the number, the more "smoothing"

즉, 현재 값을 가져 와서 마지막 값과 비교 한 다음 해당 델타의 일부를 마지막 값에 추가합니다. 결과는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

그래서 내 질문은 :

  1. 이것은 용어가 이미 존재하는 확립 된 패턴이나 기능입니까? 그렇다면 용어는 무엇입니까? 위의 "스무딩"을 사용하지만 이것이 DSP에 매우 특정한 것을 의미하며 올바르지 않을 수 있음을 알고 있습니다. 그 외에는 볼륨 봉투와 관련이있을 수도 있지만 완전히 같은 것은 아닙니다.

  2. 내가 봐야 할 해결책에 대한 더 나은 접근 방법이나 추가 연구가 있습니까?

이것이 바보 같은 질문이라면 시간과 사과에 감사드립니다 (여기에서 다른 토론을 읽으면 내 지식이 평균보다 훨씬 낮다는 것을 알고 있습니다).


1
이제 부드럽게 된 FFT를 가져 와서 역 FFT하면 얻을 수있는 것이 무엇인지 궁금합니다.
user253751 1

첫 번째 답변을 다른 순서로 수행하는 것이 더 간단합니까? current_value = current_value * 붕괴; if (new_value> current_value) {current_value = new_value; }
Richard Forster

@immibis 이것은 나의 이해에서 반향이어야한다. 틀 렸으면 말해줘.
Andreas

물론 최적화 컴파일러는 동일한 구현을 생성합니다. 요점은 (current_value * decay) <new_value <current_value 일 때 올바른 결과를 얻는 것입니다.
Richard Forster

2
나는이 질문을 정말로 좋아한다. 누군가가 실수로 몇 가지 일을 시도하면 엄청난 지식의 나무 바닥에서 실수로 자신을 발견하는 사람들 중 하나입니다 (특히 무한 임펄스 응답 필터). 한편, 이미 나무를 등반하는 사람들은 가지들 사이에서 이미 발견 한 모든 멋진 것들을 묘사 할 수 있습니다.
DrMcCleod

답변:


37

구현 한 것은 단일 극 저역 통과 필터 ( 누설 통합 기 라고도 함) 입니다. 신호에는 차이 방정식이 있습니다.

y[n]=0.8y[n1]+0.2x[n]

여기서 은 입력 ( 부드럽 지 않은 빈 값 )이고 은 스무딩 된 빈 값입니다. 이것은 간단한 저 복잡성 저역 통과 필터를 구현하는 일반적인 방법입니다. 나는 이전 답변에서 여러 번 글을 썼습니다. [1] [2] [3]을 참조하십시오 .y [ n ]x[n]y[n]


4
고마워. 매우 도움이되었습니다. 내 자신의 인터넷 검색은 DSP와 관련하여 바다에서 길을 잃는 것과 같습니다. 검색 할 용어 몇 개만 있으면 이해해야 할 것이 있습니다.
Michael Bromley

3
궁금하다. OP 가이 필터를 주파수 영역의 개별 빈에있는 일련의 값에 적용한다고 생각합니다. 표준 저역 통과는 시간 영역에서 일련의 샘플에 적용됩니다. 그 효과는 동일합니까? (고주파 부분이 여전히 신호에 있지만 강도가 더 느리게 변하기 때문에 그렇게 생각하지 않습니까?) 그렇지 않다면 필터가 시간 영역의 신호에 실제로 어떤 역할을하는지 자세히 설명 할 수 있습니까?
Jonas Schäfer

3
@JonasWielicki 목표는 각 개별 bin 값을 부드럽게하여 매우 빠르게 변경되지 않는다고 생각합니다. 또한 저역 통과 필터 (답변에 설명 된대로)는 도메인 (시간 또는 주파수 등)에 관계없이 모든 시계열에 적용 할 수 있습니다.
Arpit Jain

@arpitjain 이해합니다. 나는 그것이 당신이 그렇게 할 때 시간 영역에 어떻게 영향을 미치는지 이해하고 있는지 (당신, OP 또는 응답자가 반드시 그런 것은 아님) 알고 싶습니다.
Jonas Schäfer

@JonasWielicki 연산은 주파수 영역에서 컨벌루션이므로 시간 영역에서 (해당 푸리에 변환의) 곱셈으로 변환됩니다.
MBaz

17

경고 : 몇 가지 역사, 오래된 신문 (사랑합니다) 및 펀치 카드를 포함하십시오!

당신과 함께 사용 : 폼 :이라고도 기록 a=0.2

y(n)=y(n1)+a[x(n)y(n1)],
y(n)=ax(n)+(1a)y(n1).

위의 첫 번째 버전은 자연스럽지 않지만 곱셈을 피하고 어떻게 든 더 효율적입니다. 두 공식 모두 선형 , 원인무한 임펄스 응답 필터를 생성 합니다. 이야기는 Poisson, Kolmogorov-Zurbenko Adaptive Filters , Brown (통계 통계 통계 예측. McGraw-Hill, 1959), Holt (1957) 및 Winters (1960) 로 이어졌다 . 그것은 여러 문헌에서 다른 이름으로 알려진 재귀 필터링 체계 로 구현됩니다 .

  • 1 차 지수 평균 저역 통과 필터,
  • 지수 평균 기,
  • 지수 평활 법 ,
  • 지수 이동 평균 (EMA)
  • 지수 가중 이동 평균 (EWMA)
  • Brown의 단순 (선형) 지수 평활 (SES라고도 함)
  • ARIMA (0,1,1) 모델.

이름에서 "지수"는 기하 급수적으로 임펄스 응답과 관련되어 지수 붕괴를 샘플링합니다 : .h[n]=(1a)u[n]an

역사적으로 Robert G. Brown과 Arthur D. Little은 1956 년에 담배 산업의 수요 예측을 위해 지수 평활 법에서이 방법을 사용했습니다 . 약간의 역사와 설명은 인형을위한 Holt-Winters 예측 (또는 개발자)-1 부 에서 찾을 수 있습니다 . Peter Zehna는 1966 년 지수 평활에 대한 일부 비평에서 비판적인 검토를 제공합니다 . 운영 연구 및 과학 과학 백과 사전 ( R. Brown)에있는 R. Brown의 장은 1944 년으로 거슬러 올라갑니다.

지수 평활, p.  205, 운영 연구 및 관리 과학 백과 사전

지수 평활, p.  206, 운영 연구 및 관리 과학 백과 사전

많은 방법이이 스무딩을 확장하므로 데이터 추세 또는 계절성이있을 때 유효성이 부족합니다. 이중 또는 삼중 지수 평활 및 Holt-Winters 필터 라고도 합니다 .

당신은 또한 확인할 수 있습니다 : 어떻게 이런 일이 "간단한 필터"작동합니까?


1
고마워, 이것은 우수하다. 언급했듯이, 나는 이것에 대해 완전히 새로운 것이므로 귀하의 답변 중 일부는 나에게 완전히 감사하기 위해 더 많은 연구가 필요하지만 확실히 내 질문에 대답하고 일부는 대답합니다. 다른 이전 답변되지 않은 경우,이는 수용 물론 가치의도 대답.
Michael Bromley

1
작은 수정, Winters 1 (960)은 Winters (1960) 여야 함
SGR

9

내가 봐야 할 해결책에 대한 더 나은 접근 방법이나 추가 연구가 있습니까?

오디오 미터에 대한 일반적인 접근 방식은 "손실 피크 검출기"입니다.

if new_value > current_value
  current_value = new_value;
else
 current_value = current_value * decay;  

이것은 신호의 새로운 또는 피크 또는 과도에 즉시 반응하지만 잠시 동안 머 무르므로 훨씬 덜 바쁜 그림을 만듭니다. 붕괴는 0과 1 사이의 상수 여야합니다. 0은 순간적이고 1은 절대로 막대가 얼마나 빨리 수행되는지 제어합니다.


나는 이것이 내가 대학에서 한 과제와 유사하다는 것을 주목한다. (이전 과제에서 생성 된) 아주 작은 소리의 MIDI는 (완전히 직사각형 인) 음표 신호를 삼각형으로 변화시켜 (그리고 피크와 지속 시간에 맞게 스케일링) 개선되었다 "자연스럽게" 사라지는 날카로운 음표를 만들기 위해 매우 급격히 상승한 (즉시는 아니지만) 서서히 쇠퇴하는 신호입니다. 곡의 사운드가 크게 개선되었습니다 (이 경우 Fur Elise).
KRyan

new_value보다 큰 경우 유지하고 싶을 것 같습니다current_value * decay
user276648

6

미국 DoD 계약 업체 주변에서는이 특정 필터를 "알파 필터"라고합니다. 일반적으로 "알파"라는 하나의 매개 변수로 특성을 지정할 수 있기 때문입니다.

간단한 아날로그 RC 저역 통과 필터와 직접 유사합니다.

그것들은 매우 간단하고 심각한 한계가 있지만, 문제 영역을 피할 수 있다면 더 복잡하고 복잡한 필터에 비해 부인할 수없는 이점이 있습니다.


3

다른 답변에서 언급했듯이, 이것은 무한 임펄스 응답 (IIR) 필터의 한 유형 인 단일 극 재귀 필터입니다.

이 기능 및 기타 DSP 기능에 대한 유용한 정보는 Steven W. Smith의 과학자 및 엔지니어 디지털 신호 처리 안내서입니다 . 무한 임펄스 응답 (IIR)

... 출력 신호의 각 포인트는 입력 신호의 값에 "a"계수를 곱하고, 이전에 계산 된 출력 신호 값에 "b"계수를 곱한 다음 곱을 더하여 구합니다. b0에 대한 값이 없다는 것은 계산중인 샘플에 해당하기 때문입니다. 방정식 19-1을 재귀 방정식이라고하며이를 사용하는 필터를 재귀 필터라고합니다. 필터를 정의하는 "a"및 "b"값을 재귀 계수라고합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.