디지털 왜곡 효과 알고리즘


10

124-125 페이지의 왜곡 효과에 대한 Udo Zölzer의 DAFX 책을 읽었으며 왜곡에 대한 적절한 시뮬레이션이 함수에 의해 제공된다고 말합니다.

f(x)=x|x|(1ex2/|x|)

누군가이 공식과 어떤 종류의 신호를 설명 할 수 있습니까?

내가 이해하는 것에서 'x'는 샘플링 된 신호이므로 일련의 숫자입니다. 무엇입니까 | x | 평균? 샘플링 된 각 값에 대한 x의 절대 값을 나타 냅니까?

왜곡 효과 시뮬레이션을 구현하려면

  1. x의 길이를 알아야합니다 (샘플 수에 의해 주어짐)
  2. 루프에서 각 샘플 값에 대해이 수식을 계산해야합니다
  3. 루프가 끝나면 왜곡 된 신호를 얻습니다 (디지털 형식)

그런 다음들을 수 있도록 아날로그 신호로 변환해야합니다.


2
책에 주어진 수식에 오류가 있습니다 (지수에 음수 부호가 있어야 함). 아래 답변을 참조하십시오.
Matt L.

답변:


5

| x | 는 절대 값을 나타냅니다-x / | x | 수식의 비트는 입력의 부호가 출력에 유지되도록합니다. 구현과 관련하여 예, 나열된 단계가 정확합니다.


1
"실제 왜곡"이란 무엇입니까? 원래 신호에서 수행하는 모든 작업은 어쨌든 왜곡됩니다! 무엇을하려고합니까?
pichenettes

1
왜곡은 신호를 변경하는 (보통 원치 않는) 변환을 나타내는 매우 모호한 용어입니다. 기타 왜곡은 발생하는 페달 / 앰프의 종류에 따라 클리핑, 정류, 과부하 등 다양한 프로세스에 의해 달성됩니다. 단일 "진정한"공식은 없습니다 ... 과부하를 시뮬레이션하는 S 자형 유사 함수; 하지만 어딘가에 실수가 있다고 생각합니다.
pichenettes

1
시간 영역에서이 작업을 수행해야합니다.
pichenettes

1
그것이 기타 왜곡 효과가 작동하는 방식이기 때문입니다. 그것들은 원래 튜브, 다이오드 및 이후의 트랜지스터와 같은 비선형 요소로 만들어졌으며 그 동작은 시간 영역에서 비선형 함수로 설명됩니다. 그리고 당신은 ... 디지털 것을 모방하려는
pichenettes

1
피치 시프 팅, 팬시 하모니 생성기 (예 : EHX 마이크로 포그) 또는 팬시 스펙트럼 모핑 (제품 이름을 기억할 수 없음)에는 주파수 영역 처리가 필요합니다. 일부 앰프 / 스피커 시뮬레이터는 긴 컨볼 루션을 필요로하며, 주파수 영역에서 곱셈으로 효율적으로 수행됩니다. 그러나 어떤 경우에도 "신호의 전체 FFT를 취하지"마십시오. 이것은 작은 길이의 FFT (1024 샘플 정도)의 오버랩에 의해 구현됩니다.
pichenettes

10

Olli Niemitalo의 답변 의 음모 덕분에 나는 책에 주어진 수식에 부호 오류가 있음을 확신했습니다. 퍼지 또는 왜곡에 사용되는 비선형 성은 항상 일부 유형의 평활 클리핑 기능으로 입력 신호를 압축합니다. 따라서 작은 입력 진폭은 거의 변화가 없지만 높은 입력 진폭은 부드럽게 클리핑됩니다. Olli의 답변에 표시된 수치는 정반대입니다.

그래서 나는 올바른 공식이 있어야한다고 확신합니다.

(1)f(x)=x|x|(1ex2/|x|)=sgn(x)(1e|x|)

작은 값을 우리가 , 우리가 얻을 값 대형 (크기)에 대한 즉, 클리핑.xf(x)sgn(x)|x|=xf(x)sgn(x)

이것은 수정 된 비선형 성 ( WolframAlpha ) 의 도표입니다 .f(x)

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

초보자는 문자 그대로 다른 수식을 구현하고 항을 평가하려고 시도하기 때문에 에서 가장 오른쪽 식처럼 수식도 단순화해야합니다. 그리고는 불필요하게 복잡하며 가 0에 가까워 지면 문제 를 일으 킵니다. 일반적인 구현은 다음과 같습니다.x / | x | x 2 / | x | 엑스(1)x/|x|x2/|x|x

경우 (x> 0)
   y = 1-exp (-x);
그밖에
   y = -1 + exp (x);
종료

아 그래 책 misquotes의 web.archive.org/web/20070826204128/http://www.notam02.no/... 및 위의 올바른 공식이다.
Olli Niemitalo

알았어 고마워. 이것이 책의 출처라고 생각하십니까?
Matt L.

네, 그 책은 그 학생 논문을 참고했습니다. 잘못된 공식을 가지고 있고 첫 번째 학생 논문을 인용 한 두 번째 노르웨이 학생 논문이있었습니다. 나는 책이 원본을 확인하지 않고 두 번째 논문을 복사했는지 또는 두 번째 논문이 책을 복사했는지 확인하기 위해 날짜를 확인하지 않았습니다.
Olli Niemitalo

1
@OlliNiemitalo : 일반적인 오류 전파 사례입니다. 왜 그들이 같은 바보 같은 표현을 사용하는지 잘 모르겠습니다 . 내 답변에 추가하면 일부 초보자가 문자 그대로 구현 할 수 있습니다. x2/|x|
Matt L.

2

함수 본문 을 Wolfram Alpha에 직접 쓸 수 있으며 다음 과 같이 플롯됩니다.

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

그것은 나에게 웨이브 쉐이퍼 처럼 보이고 , 설명대로 사용할 수 있습니다.


1
이제 당신의 음모를 보았으므로 책의 수식이 잘못되었다고 확신합니다. 내 대답을 참조하십시오. 어떻게 생각해?
Matt L.

2
더 이해가되는 @ MattL.Yes. 이 책의 기능도 내림차순으로 원치 않는 위상 반전이 발생합니다.
Olli Niemitalo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.