DSP System Toolbox

 

DSP System Toolbox

스트리밍 신호 처리 시스템 설계 및 시뮬레이션

시작하기:

Simulink의 신호 처리 및 선형 대수 블록

Simulink에서 DSP System Toolbox는 필터, 변환 및 선형 대수를 위한 신호 처리 알고리즘 블록 라이브러리를 제공합니다. 이러한 블록은 스트리밍 입력 신호를 개별 샘플 또는 프레임 단위의 샘플 모음으로 처리합니다. 샘플 기반 처리는 스칼라 처리가 필요한 저지연 프로세스 및 응용 프로그램을 지원합니다. 프레임 기반 처리는 지연 시간이 늘어나는 대신 처리량을 높여줍니다. DSP System Toolbox는 샘플 기반 처리 모드와 프레임 기반 처리 모드를 모두 지원합니다.

System Object를 사용하는 MATLAB 프로그램은 MATLAB Function 블록 또는 MATLAB System 블록을 통해 Simulink 모델에 통합될 수 있습니다. 대부분의 System Object에는 동일한 기능을 가진 상응하는 Simulink 블록이 있습니다.

임베디드 시스템의 프레임 기반 처리

각 ISR(interrupt service routine) 사이에 16개 샘플로 이루어진 프레임을 수집하는 프레임 기반 연산. 프레임 기반 처리량이 샘플 기반보다 몇 배 더 높음을 알 수 있습니다.

DSP 시스템 설계, 구현 및 검증을 위한 신호 처리 블록

신호 처리를 위한 Simulink 블록은 배정밀도 및 단정밀도 부동 소수점 데이터 유형과 정수 데이터 유형을 지원합니다. 또한, Fixed-Point Designer와 함께 사용하면 고정소수점 데이터 유형도 사용할 수 있습니다.

DSP System Toolbox의 신호 처리 블록:

  • FFT(고속 푸리에 변환), DCT(이산 코사인 변환), STFT(단시간 푸리에 변환), DWT(이산 웨이블릿 변환)와 같은 신호 변환
  • FIR, IIR 및 아날로그 필터 설계 및 구현
  • CIC, 반대역, 다상, 패로우 필터와 같이 샘플 레이트 변환을 위한 멀티레이트 및 다단 필터
  • 스펙트럼 추정, 등화 및 잡음 억제를 위한 통계적 및 적응적 신호 처리 기법
  • 컨벌루션, 윈도우 적용, 패딩, 지연, 피크 찾기, 영점교차와 같은 신호 연산 및 측정
  • Time Scope, Spectrum Analyzer 등을 통한 스트리밍 신호 시각화 및 측정
  • 버퍼링, 인덱싱, 스위칭, 스태킹, 큐잉과 같은 신호 관리 방법
  • 처프 및 유색 잡음 생성기, NCO, UDP 수신기 및 전송기 등의 싱크 및 소스
  • 선형 시스템 솔버, 행렬 분해, 역행렬을 포함한 수치 선형 대수 루틴
Simulink를 위한 신호 처리 블록 라이브러리

Simulink에서 이용 가능한 신호 처리를 위한 DSP System Toolbox 블록 라이브러리(상단), 선형 시스템 솔버의 확장 뷰(왼쪽 하단) 및 변환(오른쪽 하단)

멀티레이트 시스템 모델링

MATLAB에서 DSP System Toolbox는 샘플 레이트 변환에 멀티레이트 처리를 지원하며, 서로 다른 샘플 레이트 또는 클록 레이트와의 인터페이스가 필요한 시스템의 모델링을 지원합니다. 멀티레이트 기능은 FIR 및 IIR 반대역, Polyphase 필터, CIC 필터Farrow 필터와 같이 샘플 레이트 변환을 위한 멀티레이트 및 멀티스테이지 필터를 포함합니다. 또한 보간, 데시메이션, 임의의 샘플 레이트 변환과 같은 신호 연산도 포함됩니다.

시그마-델타 ADC를 위한 멀티스테이지 데시메이터

시그마-델타 아날로그-디지털 변환기를 위한 다단 데시메이션 필터의 Simulink 모델

MATLAB에서의 스트리밍 신호 처리

DSP System Toolbox는 MATLAB에서 스트리밍 신호를 처리하기 위한 프레임워크를 제공합니다. 또한 싱글레이트 및 멀티레이트 필터, 적응형 필터링, FFT와 같은 스트리밍 신호 처리에 최적화된 신호 처리 알고리즘 라이브러리가 있습니다. DSP System Toolbox는 오디오, 생물 의학, 통신, 제어, 지진, 센서 및 음성 등의 응용 분야에 대한 신호 처리 솔루션 설계, 시뮬레이션 및 배포에 적합합니다.

스트리밍 신호 처리 기법을 통해 연속적인 데이터 스트림을 처리할 수 있는데, 입력 데이터를 프레임 단위로 나누고 각 프레임을 실시간으로 처리함으로써 시뮬레이션 속도를 가속화할 수 있습니다. 예를 들어 MATLAB의 스트리밍 신호 처리를 통해 다중채널 오디오에 대한 실시간 처리가 가능합니다.

스트리밍 신호 처리는 System objects™라는 DSP 알고리즘 구성요소의 라이브러리를 사용하여 활성화되며, 이를 통해 데이터 중심 알고리즘, 소스, 싱크를 표현합니다. System Object는 데이터 인덱싱, 버퍼링 및 알고리즘 상태 관리와 같은 작업을 자동화함으로써 스트리밍 응용 프로그램을 쉽게 만들 수 있습니다. MATLAB System object는 표준 MATLAB 함수 및 연산자와 함께 사용할 수 있습니다.

Time ScopeSpectrum Analyzer를 통해 스트리밍 신호를 시각화 및 측정할 수 있습니다.

스트리밍 신호 및 데이터에 최적화된 알고리즘을 사용하여 스트리밍 데이터에 싱글레이트, 멀티레이트 및 적응 필터를 적용할 수 있습니다.

MATLAB에서의 스트리밍 신호 처리

기본 스트리밍 루프를 구현하는 MATLAB 코드(왼쪽). Time Scope(오른쪽 상단) 및 Spectrum Analyzer(오른쪽 하단)는 생성 및 처리되는 실시간 신호를 시각화하고 측정합니다.

DSP 시스템 설계, 구현 및 테스트를 위한 알고리즘 라이브러리

DSP System Toolbox는 MATLAB 함수 또는 MATLAB System Object로 구현된 스트리밍 시스템의 설계, 구현 및 검증을 위해 최적화된 350개 이상의 알고리즘을 제공합니다. 제공된 알고리즘은 배정밀도 및 단정밀도 부동 소수점 데이터 유형을 지원합니다. 이 중 대부분의 알고리즘은 정수 데이터형을 지원하며, Fixed-Point Designer가 있으면 고정소수점 데이터형도 지원합니다.

MATLAB에서 DSP System Toolbox의 알고리즘 범주는 다음과 같습니다.

MATLAB에서의 스트리밍 신호 처리를 위한 라이브러리

명령줄에서 도움말을 불러오거나 탭 완성을 통해 볼 수 있는 MATLAB에서 사용 가능한 신호 처리 알고리즘 목록의 일부

멀티레이트 시스템

MATLAB에서 DSP System Toolbox는 샘플 레이트 변환에 대해 멀티레이트 처리를 지원하며, 여러 샘플 레이트 또는 클록 레이트와의 인터페이스가 필요한 시스템의 모델링을 지원합니다. 멀티레이트 기능은 FIR 및 IIR 반대역, 다상 필터, CIC 필터 및 패로우 필터와 같이 샘플 레이트 변환을 위한 멀티레이트 및 다단 필터를 포함합니다. 또한 보간, 데시메이션, 임의의 샘플 레이트 변환과 같은 신호 연산도 포함됩니다.

3단계 DDC 설계의 분석

다단 디지털 다운 변환기의 개별 단계의 주파수 응답

싱글레이트 및 멀티레이트 FIR 필터 및 IIR 필터 설계, 적응 필터

DSP System Toolbox는 FIR, IIR, 다단, 멀티레이트 및 적응 필터에 사용할 수 있는 광범위한 필터 설계 및 구현 알고리즘을 제공합니다. 저역통과, 고역통과, 대역통과, 대역저지 및 기타 응답 방식으로 필터를 설계하고 direct-form FIR, 중첩 가산(overlap-add) FIR, IIR 2차섹션형(Biquad), 종속형 전역통과 및 격자 구조와 같은 필터 구조를 사용하여 실현할 수 있습니다.

Filterbuilder 앱, MATLAB 함수, 또는 Simulink 블록을 사용하여 필터를 설계할 수 있습니다. FIR 및 IIR 필터에 대한 고정소수점 양자화 효과를 분석하고 필터 계수에 대한 최적의 워드 길이를 결정할 수 있습니다.

또한 대역폭과 이득 등의 핵심 필터 파라미터를 런타임에 조정할 수 있는 조정 가능한 필터를 설계할 수 있습니다.

MATLAB에서 DSP System Toolbox로 설계한 디지털 필터는 Simulink의 시스템 레벨 모델에서도 사용할 수 있습니다. DSP System Toolbox에는 저역통과, 고역통과 및 다른 필터를 Simulink에서 직접 설계, 시뮬레이션 및 구현할 수 있도록 즉시 사용 가능한 필터 블록 라이브러리가 있습니다.

기존의 FIR 및 IIR 필터 설계 알고리즘 외에도 DSP System Toolbox는 다음과 같은 특수 필터와 설계 방법도 지원합니다.

  • 최소 차수 필터, 제약된 리플 필터, 최소 위상 필터 설계 등의 고급 등리플 FIR 필터
  • 선형 위상, 최소 위상, 준선형 위상 반대역 필터 설계 및 등리플, 기울어진 저지대역 필터와 윈도우 적용 방법을 제공하는 나이퀴스트, FIR 반대역IIR 다상 필터
  • 소프트웨어 정의 무선통신 및 시그마-델타 변환기에서 무곱셈 구현을 위한 CIC 보간기 및 데시메이터 필터계단식 단계의 수를 최적화하여 연산 복잡성을 최소화하는 최적화된 다단 필터 설계
  • 최적화된 다중 단계 설계: 계단식 단계의 수를 최적화하여 연산 복잡성을 최소화
  • 조정 가능 필터링 응용 분야에 적합한 패로우 필터 구조를 이용한 구현을 포함하는 분수 지연 필터
  • 임의 군지연이 있는 전역통과 IIR 필터를 통해 다른 IIR 필터의 그룹 지연을 보상하여 해당 선형 위상 통과대역 응답을 근사화
  • 안정된 구현을 위한 격자 파형 디지털 IIR 필터
  • 모든 필터 사양을 설계할 수 있는 임의 크기 및 위상 FIR 및 IIR 필터

적응 필터

DSP System Toolbox는 MATLAB 및 Simulink에서의 적응 필터링을 수행하는 여러 가지 기법을 제공합니다. 이러한 기법은 시스템 식별, 스펙트럼 추정, 등화, 잡음 억제 등의 응용 분야에 널리 사용됩니다. 이런 적응 필터에는 LMS 기반, RLS 기반, 아핀 투영, 고속 횡단선(transversal), 주파수 영역, 격자 기반 및 칼만 필터 등이 있습니다. DSP System Toolbox에는 계수, 학습 곡선, 수렴 추적 등의 적응 필터 분석을 위한 알고리즘이 포함되어 있습니다.

음향 잡음 제거 시스템 모델의 시뮬레이션 중에 정규화된 LMS 적응 필터의 동적 응답 시각화

멀티레이트 및 다단 필터와 분석

DSP System Toolbox는 다상 보간기, 데시메이터, 샘플 레이트 변환기, FIR 반대역IIR 반대역, 패로우 필터, CIC 필터 및 보상기를 비롯한 멀티레이트 필터의 설계 및 구현 방법을 제공하고 다단 필터 설계 방법을 지원합니다. 또한 멀티레이트 및 다단 필터의 연산 복잡성을 추정하는 특화된 분석 함수도 제공합니다.

싱글스테이지 및 다단 필터 설계

fvtool을 사용한 등리플 설계 응답 및 상응하는 멀티레이트 및 다단 필터 설계(왼쪽), 입력 및 다양한 출력의 전력 스펙트럼 밀도에 대한 멀티레이트 및 다단 설계 플롯 성능(오른쪽)

신호 스코프, 분석기 및 측정

DSP System Toolbox는 MATLAB 및 Simulink에서 스트리밍 신호에 대한 시간 영역 또는 주파수 영역 시각화, 측정 및 분석을 할 수 있도록 스코프 및 데이터 기록을 제공합니다. 스코프는 업계 표준 오실로스코프 및 스펙트럼 분석기 사용자에게 익숙한 측정값과 통계량을 제공합니다.

DSP System Toolbox는 또한 시간 영역 신호에서의 천이를 표시할 수 있도록 Logic Analyzer를 제공하며, 이는 HDL 구현을 목표로 하는 모델의 디버깅에 유용하게 사용할 수 있습니다.

시간의 경과에 따른 필터 계수의 진화와 같은 데이터 벡터 시각화를 위한 임의 플롯을 생성할 수도 있습니다.

Time Scope는 시간 영역의 신호를 표시하며 연속 및 이산 신호, 고정 크기 및 가변 크기 신호, 부동소수점 및 고정소수점 데이터 신호, 다중채널 I/O 시스템을 위한 N 차원 신호 등의 다양한 신호를 지원합니다. Time Scope를 통해 서로 차원, 샘플 레이트 및 데이터형이 다른 신호를 하나의 축에 표시하거나 여러 데이터 채널을 스코프 창 내에서 각각 따로 표시할 수 있습니다. Time Scope로 분석 및 측정을 수행할 수 있고 RMS(제곱평균제곱근), 피크 간 차이, 평균값, 중앙값 등의 통계량을 구할 수 있습니다.

Time Scope의 파형 측정을 위한 데이터 커서

Time Scope에서 데이터 커서를 사용하여 파형의 두 지점 간 시간 및 진폭 차이를 측정합니다.

Spectrum Analyzer는 다양한 입력 신호의 주파수 스펙트럼을 계산하고 이를 선형 스케일 또는 로그 스케일로 표시합니다. Spectrum Analyzer는 고조파 왜곡 측정값(THD, SNR, SINAD, SFDR), 3차 상호변조 왜곡 측정값(TOI), 인접 채널 전력비 측정(ACPR), 상보 누적 분포 함수(CCDF) 및 피크 대 평균 전력비(PAPR)와 같은 측정값을 구하고 분석을 수행할 수 있습니다. Spectrum Analyzer의 스펙트로그램 보기 모드에서는 시변 스펙트럼을 볼 수 있고 자동 피크 감지가 가능합니다.

DSP System Toolbox는 실수 또는 복소수 값을 갖는 데이터, 벡터, 배열 및 고정소수점, 배정밀도, 또는 사용자 정의 데이터 입력 시퀀스 등의 데이터형 등의 다양한 신호 또는 데이터를 표시하고 측정하는데 사용할 수 있는 추가적인 시각화 도구를 제공합니다. 이런 시각화 도구 중 일부는 스트리밍 데이터나 신호에 대한 3차원 보기를 표시하여, 시뮬레이션이 중단될 때까지 시간의 경과에 따른 데이터를 사용자가 분석할 수 있도록 도와줍니다.

스펙트럼 분석기 측정

처프 신호에 비선형 증폭기 모델을 적용하여 생성한 스펙트럼 피크의 주파수 및 전력을 측정합니다.

고정소수점 모델링 및 시뮬레이션

DSP System Toolbox를 Fixed-Point Designer와 함께 사용하여 고정소수점 신호 처리 알고리즘을 모델링하고 양자화가 시스템 동작과 성능에 미치는 효과를 분석할 수 있습니다. MATLAB 코드 또는 Simulink 모델로부터 고정소수점 C 코드를 생성할 수도 있습니다.

DSP System Toolbox에서는 고정소수점 연산 모드에 맞게 MATLAB System objectSimulink 블록구성하여 하드웨어에 탑재하기 전에 다양한 워드 길이, 스케일링, 오버플로우 처리 및 반올림 방법을 선택하여 시뮬레이션을 실행함으로써 설계 절충 분석 및 최적화를 수행할 수 있습니다.

고정소수점 모드는 FFT, 필터, 통계 및 선형 대수 등의 여러 DSP 알고리즘에서 지원됩니다. DSP System Toolbox는 고정 소수점 연산에 대한 System Object 및 블록 구성을 자동화합니다.

고정소수점 데이터형을 위한 FFT 속성

FFT MATLAB System Object는 누산기, 곱셈, 출력 신호에 대한 고정소수점 데이터형의 사양을 구성하는 속성을 제공합니다(왼쪽). FFT Simulink 블록 대화 상자는 누산기, 곱셈,, 출력 신호에 대한 고정소수점 데이터형의 사양에 대한 옵션을 제공하며, 이를 위해서는 Fixed-Point Designer가 필요합니다(오른쪽).

고정소수점 필터 설계

DSP System Toolbox의 필터 설계 함수 및 Filterbuilder 앱을 통해 Fixed-Point Designer로 고정소수점 데이터형으로 변환할 수 있는 부동소수점 필터를 설계할 수 있습니다. 이러한 설계 흐름 덕분에 고정소수점 필터의 설계 및 최적화 과정이 간소화되며 사용자가 양자화 효과를 분석할 수 있습니다.

고정소수점 필터 설계 및 분석

필터 설계 제약 조건이 충족되지 않고 8비트 워드 길이로 인해 저지대역 감쇄가 불충분한 양자화 잡음의 고정소수점 필터 설계 분석(왼쪽). 여러 워드 길이로 실험을 한 결과, 12비트 워드 길이가 충분하고 필터 설계 제약 조건이 충족된 실험(오른쪽).

데스크탑 및 임베디드 워크플로를 위한 C 및 C++ 코드 생성

MATLAB Coder 및 Simulink Coder와 DSP System Toolbox를 사용하면 MATLAB 및 Simulink의 신호 처리 알고리즘과 시스템 모델로부터 성능이 높은 C 및 C++ 소스 코드 또는 MEX 함수를 생성할 수 있습니다.

이렇게 생성된 코드는 제품 개발 공정 중 시스템의 가속, 신속 프로토타이핑, 구현 및 배포, 또는 시스템 통합에 사용할 수 있습니다.

데스크탑 가속

시뮬레이션의 연산 집약적인 알고리즘 실행 속도를 향상시킬 수 있도록 높은 성능을 내는 효율적이고 간결한 실행 코드 및 MEX 함수를 생성할 수 있습니다. MATLAB 및 Simulink에서 필터, FFT, 통계선형 대수 등의 부동소수점 및 고정소수점 알고리즘을 가속할 수 있습니다.

프레임 기반 스트리밍 시뮬레이션을 가속화하기 위해 dspunfold는 DSP 언폴딩을 활용하여 생성된 MEX 함수 내 계산 부하를 여러 개의 스레드로 분산합니다.

독립 실행 및 다른 환경과의 통합

DSP System Toolbox를 사용하면 알고리즘에 대한 독립형 실행 파일을 생성하여 MATLAB 코드 또는 Simulink 모델로부터 생성된 C 코드를 데스크탑에서의 배포 및 프로토타이핑에 사용할 수 있습니다. 이 독립형 실행 파일은 여전히 UDP 구성요소를 사용하여 MATLAB 또는 Simulink에서 실시간으로 직접 조정할 수 있습니다. 이 독립형 실행 파일은 MATLAB 코드나 Simulink 모델과 다른 스레드에서 실행되므로 알고리즘의 실시간 성능이 개선됩니다.

신호 처리 알고리즘에서 생성된 C 코드는 맞춤형 시뮬레이터와 같은 다른 소프트웨어나 SystemC와 같은 표준 모델링 소프트웨어에 라이브러리 컴포넌트로 통합할 수 있습니다.

ARM Cortex 프로세서에 최적화된 C 코드 생성

ARM Cortex-A 또는 ARM Cortex-M에 대한 하드웨어 지원 추가 기능과 Embedded Coder를 DSP System Toolbox와 함께 사용하면 MATLAB System Object 또는 Simulink 블록으로부터 FFT, FIR 및 바이쿼드 필터와 같은 주요 DSP 알고리즘에 최적화된 C 코드를 생성할 수 있습니다. 이렇게 생성된 코드는 ARM Cortex-A Ne10 라이브러리 또는 ARM Cortex-M CMSIS 라이브러리에 최적화된 루틴을 호출합니다. 표준 C 코드에 비해 즉각적인 성능 향상을 얻을 수 있다는 점이 주요 이점입니다. 또한 PIL(processor-in-the-loop) 테스트를 사용하여 코드 검증 및 프로파일링을 수행할 수 있습니다.

FPGA 및 ASIC 개발을 위한 HDL 코드 생성

DSP System Toolbox를 MATLAB에서 Filter Design HDL Coder와 함께 사용하면 디지털 필터를 설계하고, FPGA 또는 ASIC에서 구현할 수 있는 효율적이고 합성 및 이식이 가능한 VHDL® 및 Verilog® 코드를 생성할 수 있습니다. 생성된 코드의 시뮬레이션, 테스트 및 검증을 위한 VHDL 및 Verilog 테스트 벤치를 자동으로 생성할 수 있습니다.

DSP System Toolbox와 HDL Coder를 함께 사용하면 시스템 설계에 사용할 수 있는 합성 가능한 가독성 높은 VHDL 및 Verilog 코드를 생성할 수 있습니다. 최적의 FPGA/ASIC 리소스 사용 및 성능을 위해 DSP HDL Toolbox에서 제공하는 블록을 사용할 수 있습니다.

부분 직렬 수축 FIR 필터 구조

프로그램 가능 FIR 필터의 하드웨어 모델 검증에 사용되는 논리 분석기.