Perfume 음성을 고위 합성/HDL 코드 생성으로 Zynq 구현! 그 2
Envelope Filter
Envelope란 포락선을 말한다. 소리는 조밀파이므로, AD 변환하여 전압값이 되면 +와 -의 값을 반복하는 신호가 되고 있지만, Envelope는 원래의 신호를 감싸는 것 같은, 기본적으로 양의 값의 신호. 이것을 악기음의 진폭치로서 사용하는 것으로, 음정/피치는 악기음이지만, 톤은 성음이 된다. 이전 페이지에서 Octave Filter를 만든 것은, 이 Envelope를 대역별로 나누어 버리기 위해서.
대역마다(여기서는 9대역)에 병렬로 걸치기 위해, 1개의 Envelope Filter의 회로 규모는 9배가 되어 결과에 되돌아 온다. 회로 규모는 너무 커지지 않도록 주의하여 설계한다.
몇 가지 시도해 보았습니다.
IIR Filter를 사용한 것:성능적으로는 문제 없지만, IIR 필터는 고정 소수점화가 번거롭고, 발진의 가능성 있고 여러가지 번거로움.
FIR Decimation과 FIR Filter의 조합: FIR은 IIR에 비해 차수가 높아지기 때문에(회로 규모가 걱정···) 일단 계수 없는 FIR Decimation에서 고역을 떨어뜨려 두고, 그 후 20차 FIR Filter를 사용했다. 이렇게 함으로써 FIR Filter의 Tap수(≒FPGA 회로 리소스)를 상당히 줄였다. 안정되어 있어 회로 자원도 적게 끝나므로 이것에 결정.
시뮬레이션 결과
그림 설명:
상단: FIR Filter 하단: IIR Filter 파란색: 음성 신호, 노랑: Envelope 신호
입력 된 음성 신호에 대해 Envelope가 취해지고 있음을 알 수 있습니다.
파형을 볼 때 제대로 동작하고 있지만, 이펙터의 경우 이 후, 관능 평가하고 파라미터의 세세한 튜닝은 필요. Envelope Filter의 필터 계수 조정은 나중에 다시 수행됩니다.
그 3 은 이 Envelope Filter 와 이전에 설계한 Octave Filter 를 조합해 Vocoder 전체를 작성합니다.
Reference
이 문제에 관하여(Perfume 음성을 고위 합성/HDL 코드 생성으로 Zynq 구현! 그 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/SacredTubes/items/e8bfe5d005a821886a61
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Perfume 음성을 고위 합성/HDL 코드 생성으로 Zynq 구현! 그 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/SacredTubes/items/e8bfe5d005a821886a61텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)