실시간 오디오 처리를 구현하기에 가장 적합한 플랫폼을 결정하는 방법은 무엇입니까?


15

제품을 개발할 때 Matlab에서 모든 알고리즘 설계를 수행합니다. 일반적으로 IIR 또는 FIR 필터 또는 2 개, FFT 2 개 등 매우 기본적입니다. 임베디드 환경으로 이동해야 할 때 항상 어떤 플랫폼에서 실행할지 결정하기가 어렵습니다. 나는 보통 다음과 같은 (넓은) 플랫폼을 생각합니다.

  • DSP 코어
  • FPGA
  • 마이크로 컨트롤러

이 결정을 내릴 때 고려해야 할 요소는 무엇입니까?


2
왜 "ARM"과 "Microcontroller"를 구별합니까? TI의 DSP + ARM 부품을 분류하려고하십니까? 저전력 소형 제품을 더 큰 마이크로 프로세서와 분리하려고합니까? (이 지난 경우, 당신은 아마 MIPS 및 공급 업체 고유의 32 비트 코어를 포함한다)
케빈 베르메르

마이크로 컨트롤러를 생각할 때 PIC, Atmel 등을 생각하지만 ARM도 마찬가지라고 생각합니다. 나는 어떤 옵션을 고려해야하는지 묻는 것만으로 모든 옵션이 아니라고 말하지 않았습니다.
Kellenjb

1
"최고"는 무엇이라고 생각하십니까? 당신은 힘에 의해 제한되어 있습니까? 비용? 프로그래밍의 용이성? 적응성?
Oliver Charlesworth

@Oli 그것은 전체 질문입니다. 결정하려고 할 때 고려해야 할 요소는 무엇입니까?
Kellenjb

3
@Kellen : 현재이 질문은 "차가 가장 좋은 차를 결정하는 방법"과 비슷하지만 더 이상 제약이 없습니다.
Oliver Charlesworth

답변:


13

IIR, FIR, radix-2 또는 4 FFT와 같은 "표준 알고리즘"(즉, 많은 제어 흐름없이 DSP 아키텍처에 잘 맞는 것)을 유지하는 경우 다음을 시도 할 수 있습니다.

모든 알고리즘에서 초당 몇 개의 "곱하기 곱하기"를 계산하십시오.

  • <천만 명이 빠른 마이크로 컨트롤러로 작업을 수행 할 수 있습니다.
  • <100M은 쉬운 DSP 영역입니다
  • <1G는 빠른 DSP 영역 일 가능성이 높습니다
  • 1G-10G는 DSP와 FPGA의 교차가 이루어지는 곳
  • > 10G는 다중 DSP 또는 FPGA입니다

2
이것은 실제로 참조하기에 매우 좋은 목록입니다!
Kellenjb

3
몇 년마다 10 배씩 곱하는 것을
Martin Thompson

"빠른 마이크로 컨트롤러"의 예를들 수 있습니까?
endolith

1
@endolith : 우리가 다음에 볼 때 현재 상태가 될 가능성은 없습니다.) 2014 년 초, LPC1768 (100MHz로 클럭-10MMACS를 위해 약간 밀어 붙임)과 비슷한 것
Martin Thompson

@MartinThompson : LPC1700 용 DSP 라이브러리 는 Cortex-M3가 "2 사이클 (32x32) +32-> 32 부호 곱하기 누적"을 수행한다고 50 MMAC?
endolith

11

내가 아는 한 ARM은 플랫폼이 아닌 아키텍처로 간주되어야합니다. 그러나이 문제는 RT 신호 (이 경우 오디오) 처리에 어떤 플랫폼을 사용해야하는지에 매우 관련이 있습니다.

엄격한 순서가 아닌 다음과 같은 질문으로 시작할 수 있습니다.

  • 구현에 시간이 얼마나 걸립니까?
  • 내 전력 제한은 무엇입니까?
  • 어떤 수학 연산이 필요합니까? 많은 곱셈기가 동시에 필요하므로 선택이 제한 될 수 있습니다.
  • 얼마나 많은 메모리가 필요합니까? (대부분의 MCU는 제한되어 있습니다)
  • [중요] 작동 빈도는 무엇입니까? 작동주기를 낮게 유지하면서 샘플링 기간 내에 얼마를 짜낼 수 있습니까?
  • 내가 선택한 구현에 사용할 수있는 라이브러리는 무엇입니까?

먼저 알고리즘을 살펴 보는 것으로 시작하겠습니다. 예를 들어 많은 FFT 및 MAC 작업이 필요한 경우 대부분의 마이크로 컨트롤러를 배제하고 DSP 코어에 더 집중할 수 있습니다. DSP 코어가 내장 된 MCU도 있습니다.

또 다른 중요한 고려 사항은 구현 분야에서 귀하의 능력과 전문 지식입니다. 구현에 HDL을 사용해야하므로 대부분의 사람들은 FPGA를 사용하지 않습니다. FPGA를 멀리하는 또 다른 이유는 전원 요구 사항입니다.


2

선택하는 정보만으로는 ARM (단순 IIR 및 FIR) 일 수 있지만 전력 요구 사항, IO 요구 사항, 구현할 추가 기능 등 고려해야 할 다른 요소가 있습니다.이 장치를 사용하면 개발 시간을 얼마나 절약 할 수 있습니까? 현장에서 DSP 매개 변수를 수정하기위한 네트워크 연결 및 API가 있습니까?

비글 보드와 같은 소형 컴퓨터 또는 스마트 폰으로 옵션 범위를 확장하는 것을 고려 했습니까? 신호 처리는 해결하려는 전체 문제의 일부일 뿐이라는 것을 알 수 있습니다.

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