오디오 코덱을 사용하여 임베디드 시스템에서 오디오 성능을보다 쉽게 ​​최적화하는 방법

업데이트: 8년 2023월 XNUMX일

많은 설계자들은 하이파이 오디오를 추가하기 위해 마이크로 컨트롤러 기반 임베디드 시스템 설계에 오디오 코덱을 포함하고 있습니다. 이 과정에서 애플리케이션에 맞게 오디오 코덱을 조정하는 방법을 파악해야합니다. 튜닝을하지 않으면 좋은 코덱과 스피커를 사용하더라도 응용 프로그램이 평평하게 들리거나 품질이 떨어질 수 있습니다. 문제는 모든 스피커가 자체 주파수 응답을 가지고 있으므로 코덱이 재생 될 오디오의 종류와 필요한 응답을 염두에두고 스피커 특성에 맞게 조정되어야한다는 것입니다.

오디오 재생 시스템을 조정하는 솔루션은 하드웨어 필터링을 사용하는 것이 아니라 오디오 코덱의 자체 디지털 필터링 블록을 활용하는 것입니다. 모든 코덱에는 개발자가 고역 통과, 저역 통과 및 대역 통과 필터를 사용하여 출력을 필터링 할 수 있도록이 블록이 있습니다. 이를 통해 필요에 따라 스피커 응답을 신중하게 조정하고 조정할 수 있습니다.

이 기사에서는 AKM의 코덱을 사용하여 코덱에 포함 된 내부 디지털 오디오 블록에 대해 설명합니다. 반도체 예로서. 또한 개발자가 시스템의 음질을 향상시키면서 오디오 재생 개발을 가속화하는 데 도움이되는 코덱을 조정하는 방법에 대한 몇 가지 팁과 요령에 대해 설명합니다.

스피커 주파수 응답 특성 이해

"임베디드 오디오 피드백 파일 용 오디오 코덱 및 마이크로 컨트롤러를 선택하고 사용하는 방법"기사에서는 코덱을 선택하고 시스템에 추가하는 기본 사항에 대해 설명했습니다. 다음 단계는 해당 코덱을 사용하여 최상의 오디오 출력을 얻는 것입니다.

시스템에서 나오는 오디오의 소리에 영향을주는 여러 가지 요소가 있습니다. 이러한 요인은 다음과 같습니다.

  • 스피커의 인클로저
  • 스피커 장착 방법
  • 재생중인 오디오 주파수
  • 스피커의 주파수 응답

이러한 요소를 신중하게 고려한 후 개발자는 오디오 시스템 튜닝이 최종 생산 상태에있을 때만 유용하다는 것을 곧 알게 될 것입니다. 물론 시스템은 인쇄 회로 기판 (PC 기판)과 하우징 외부의 스피커로 튜닝 할 수 있지만 스피커가 장착되고 인클로저 내부에 적용될 때 동일한 튜닝 매개 변수가 적용될 것으로 예상해서는 안됩니다.

기계 팀이 시스템 인클로저 및 마운트를 올바르게 설계 한 경우 개발자가주의 깊게 관찰해야하는 주요 특성은 스피커 주파수 응답입니다. 스피커마다 특성과 응답 곡선이 다릅니다. 부품 번호가 같은 스피커라도 주파수 응답에 약간의 차이가있을 수 있지만 제조업체는 일반적으로 일반적인 주파수 응답 곡선을 제공합니다. 예를 들어, 그림 1은 CUI Devices GC0401K 8 옴 (Ω), 1 와트 스피커의 주파수 응답 곡선을 보여줍니다. GC0401K는 390 헤르츠 (Hz)에서 20 킬로 헤르츠 (kHz) 사이의 주파수 등급입니다.

그림 1 : CUI Devices의 GC0401K 8Ω, 1 와트 스피커는 390Hz에서 20kHz 사이의 주파수에 대해 정격입니다. (이미지 출처 : CUI Devices)

스피커는 일반적으로 응답이 상대적으로 평탄한 응답 곡선 영역으로 평가됩니다. 그림 1을 자세히 살펴보면 GC0401K의 주파수 응답이 ~ 350Hz에서 평평 해지기 시작하고 적어도 9kHz까지 비교적 평평하게 유지된다는 것을 알 수 있습니다. 하이 엔드 주파수는 약간의 감소가 있지만 여전히 최대 20kHz까지 안정적입니다.

CUI Devices의 GF0668에서 다른 스피커 주파수 응답을 볼 수 있습니다 (그림 2). 이 스피커는 조금 더 크고 3 와트를 출력 할 수 있습니다. 주파수 응답 등급은 240Hz ~ 20kHz입니다. 이 스피커는 GC0401K보다 약간 낮은 주파수에 도달 할 수 있지만, 지정된 범위 내에서 곡선이 상대적으로 평평하고 전체적으로 일부 골과 피크가 있음을 다시 한 번 유의하십시오.

그림 2 : CUI Devices의 GF0668 8Ω, 3 와트 스피커의 주파수 응답은 240Hz ~ 30kHz 범위에서 정격 인 이유를 보여줍니다. (이미지 출처 : CUI Devices)

살펴볼만한 마지막 스피커 응답 중 하나는 Soberton Inc.의 SP-2804Y입니다 (그림 3). SP-2804Y는 주파수 응답 범위가 500Hz ~ 600kHz 인 8mW (밀리 와트) 스피커입니다. 물리 법칙은 스피커가 작을수록 더 낮은 주파수에 반응하는 시간이 더 강해집니다. 즉, 개발자가 더 낮은 주파수를 필터링하지 않고 대신 해당 주파수에서 스피커를 구동하려고 시도하면 그 결과는 엄청나게 들리는 오디오 또는 그렇지 않으면 깨끗하게 들리는 톤의 결함이 발생할 수 있습니다.

주파수 응답이 약 10kHz로 크게 떨어집니다. 따라서 일부 애플리케이션에서는 최대 8kHz까지 사용할 수 있지만 스피커의 정격은 20kHz입니다.

그림 3 : Soberton Inc.의 SP-2804Y 8Ω, 0.5 와트 스피커의 주파수 응답은 600Hz에서 8kHz의 주파수에 적합 함을 보여줍니다. 10kHz 이후에는 딥이 있지만 일부 애플리케이션에서는 여전히 20kHz까지 사용할 수 있습니다. (이미지 출처 : CUI Devices)

각 스피커의 주파수 응답을 살펴보면 스피커를 구동해서는 안되는 주파수가 있기 때문에 일종의 필터링 및 튜닝이 필요하다는 것이 분명합니다. 예를 들어, 이러한 스피커에서 4Hz베이스 톤을 구동하려고하면 더 높은 주파수가 주입되는 오래 지속되는 진동이 발생하여 많은 사운드 왜곡이 발생할 수 있습니다.

오디오 디지털 필터 블록 해부

과거에 원치 않는 주파수를 제거하기 위해 사용 된 한 가지 방법은 스피커로 연결되는 하드웨어 필터를 만드는 것입니다. 예를 들어, 500Hz의 고역 통과 필터는 500Hz 미만의 주파수가 스피커로 전달되는 것을 방지 할 수 있습니다. 다른 쪽 끝에서는 저역 통과 필터를 사용하여 15kHz 이상의 오디오 톤을 제거 할 수 있습니다. 개인적인 경험에 따르면 여성의 목소리가 더 높은 주파수에서 효율적인 소형 스피커와 함께 사용되는 경우 스피커에서 고음이 울릴 수 있습니다. 주파수를 신중하게 선택하면 이러한 왜곡을 제거하고 더 깨끗한 사운드를 생성 할 수 있습니다.

외부 하드웨어 필터는 작업을 수행 할 수 있지만 비용을 추가하고 추가 공간을 차지합니다. 이러한 이유로 오디오 코덱에 내장 된 디지털 필터 블록을 사용하여 오디오를 조정하는 것이 더 실용적이고 효율적입니다.

예를 들어 AKM의 블록 다이어그램은 다음과 같습니다. 반도체 AK4637 24비트 오디오 코덱에는 디지털 필터 블록이 강조 표시되어 있습니다(그림 4).

그림 4 : AK4637은 오디오 재생 및 녹음 기능이있는 모노 스피커 출력이있는 오디오 코덱입니다. 또한 들어오고 나가는 오디오를 필터링하여 오디오 충실도를 향상시키는 데 사용할 수있는 내부 오디오 블록도 포함되어 있습니다. (이미지 출처 : AKM Semiconductor)

이 경우 디지털 필터 블록에는 다음과 같은 여러 가지 필터링 기능이 있습니다.

  • 고역 통과 필터 (HPF2)
  • 저역 통과 필터 (LPF)
  • 4 밴드 이퀄라이저 (XNUMX 밴드 EQ)
  • 자동 레벨링 제어 (ALC)
  • 1 밴드 이퀄라이저 (XNUMX 밴드 EQ)

이러한 기능을 모두 활성화 할 필요는 없습니다. 개발자는 필요한 기능을 선택하고 차단을 활성화 및 비활성화하거나 마이크를 라우팅하거나이를 통해 오디오를 재생할 수 있습니다. 이 시점에서 진짜 질문은 오디오 코덱을 계산하고 프로그래밍하는 방법입니다.

디지털 필터 매개 변수를 계산하고 프로그래밍하는 방법

대부분의 오디오 애플리케이션에서 고역 통과 필터는 낮은 주파수를 제거하는 데 사용되며 저역 통과 필터는 높은 주파수를 제외하는 데 사용됩니다. 주파수 응답 곡선을 부드럽게하거나 특정 톤을 강조하기 위해 이퀄라이저를 사용할 수 있습니다. 이러한 설정을 정확히 선택하는 방법은이 문서의 범위를 벗어납니다. 대신 AKM AK4637을 예로 사용하여 이러한 매개 변수와 관련된 값을 계산하고 프로그래밍하는 방법을 살펴 봅니다.

첫째, 항상 데이터 시트를 검토하는 것이 좋습니다. 이 경우 페이지 7과 8은 코덱에 대한 가장 중요한 레지스터 맵을 보여줍니다. 부품에 63 개의 레지스터가 있다는 점을 감안할 때 처음 보는 것은 위협적 일 수 있습니다. 그러나 이러한 레지스터 중 다수는 디지털 오디오 블록을 제어합니다. 예를 들어 레지스터 0x22부터 0x3F까지 이퀄라이저를 제어합니다. 레지스터 0x19 ~ 0x1C는 고역 통과 필터를 제어하고 0x1D ~ 0x20은 저역 통과 필터를 제어합니다.

개발자는 일반적으로 코덱에 입력 할 주파수를 지정할 수 없습니다. 대신 필터 계수를 계산하는 데 사용되는 필터 방정식이 있으며,이를 코덱 레지스터에 프로그래밍하여 원하는 주파수에서 필터를 생성합니다. 예를 들어 디지털 필터 블록을 사용하여 600Hz에서 고역 통과 필터를 생성하려면 방정식 1을 사용합니다.

그림 5 : AK4637 디지털 필터 블록의 고역 통과 필터에 대한 계수를 계산하는 데 필요한 방정식은 다음과 같습니다. (이미지 출처 : AKM Semiconductor)

개발자는 원하는 차단 주파수 fc (이 경우 600Hz)를 식별합니다. 오디오 샘플링 주파수 fs는 일반적으로 48kHz이지만 응용 프로그램에 따라 다를 수 있습니다. 이 값은 계수 A와 B를 계산하기위한 방정식에 배치됩니다.이 값은 시작하는 동안 I2C를 통해 코덱 레지스터에 기록됩니다. 저역 통과 필터 및 기타 디지털 블록 기능에 대해 동일한 프로세스가 사용되지만 전달 함수가 종종 다르기 때문에 자체 방정식 세트를 사용해야합니다 (데이터 시트 참조).

오디오 코덱 튜닝을위한 팁과 요령

오디오 코덱에 포함 된 디지털 필터 블록은 종종 매우 유연하고 강력합니다. 저렴한 오디오 코덱조차도 개발자에게 고음질 오디오를 생성하는 데 필요한 도구를 제공합니다. 그러나 하루가 끝나면 오디오 코덱은 퍼즐의 한 조각 일뿐입니다. 오디오 코덱을 성공적으로 조정하려면 개발자가 다음과 같은 몇 가지 "팁과 요령"을 염두에 두어야합니다.

  • 스피커가 애플리케이션에 적합한 인클로저에 장착되어 있는지 확인하십시오. 부적절하게 설계된 스피커 박스는 완벽한 재생 시스템을 쉽게 망칠 수 있습니다.
  • 시스템이 프로덕션 의도 구성에서 완전히 조립 될 때까지 코덱 오디오 필터 블록을 조정하지 마십시오. 그렇지 않으면 조정 매개 변수가 변경 될 수 있습니다.
  • 재생할 오디오에 따라 주파수 범위를 선택하십시오. 예를 들어 기타, 피아노 또는 말하는 사람의 음악에 대한 주파수 설정은 모두 다릅니다.
  • 디지털 밸런스 블록을 사용하여 스피커의 주파수 응답을 보정하십시오. 일부 주파수는 자연스럽게 더 크고 선명하게 들리며 감쇠가 필요할 수 있으며 다른 주파수는 증폭되어야 할 수도 있습니다.
  • 시스템의 주파수 응답을 평가하려면 테스트 톤을 사용하십시오. 간단한 인터넷 검색은 오디오 재생 시스템의 주파수 응답과 디지털 필터 블록의 작동 방식을 이해하는 데 사용할 수있는 광범위한 오디오 톤에 대한 mp3 파일을 제공합니다.
  • 필터 블록 구성 설정을 플래시 또는 EEPROM에 저장하여 제조 과정에서 시스템 간 변동을 고려하여 설정할 수 있습니다 (문제가되는 경우).

이러한 "팁과 요령"을 따르는 개발자는 오디오 재생 시스템을 조정하려고 할 때 상당한 시간과 슬픔을 절약하고 의도 한 오디오 특성으로 시장에 출시 할 수 있음을 알게 될 것입니다.

결론

임베디드 시스템에 오디오 코덱을 추가한다고해서 최종 사용자에게 좋은 사운드가 보장되는 것은 아닙니다. 모든 오디오 재생 시스템은 신중하게 조정되어야합니다. 외부 필터를 사용하여 이러한 튜닝을 수행 할 수 있지만 오디오 코덱에는 디지털 필터링 및 균형 기능이 내장되어 있습니다. 표시된대로 이러한 코덱을 사용하여 스피커에 가장 적합한 주파수 만 공급할 수 있습니다. 필터 설정을주의 깊게 분석하고 적용하면 개발자는 최종 사용자가 장치에서 기대하는 깨끗한 사운드를 만들 수 있습니다.