Main Content

CMSIS Conditions for MATLAB Functions to Support ARM Cortex-M Processors

Each MATLAB® function that can be used with the Support Package for ARM® Cortex®-M processors requires specific conditions to allow code replacement by using the CMSIS Library. You use this code replacement when generating C code from a model or from MATLAB code.

If you do not meet the specific requirements, then the generated C code runs on the ARM Cortex-M processors. However, this generated code does not use CMSIS library support.

The CMSIS library supports these MATLAB functions only when you set specific properties, as indicated in this table:

MATLAB FunctionSupported Function SignaturesInput RequirementsParameter RequirementsEquivalent CMSIS Functions
fft

Y = fft(X)

Y = fft(X, n)

Y = fft(X, n, dim)

  • Real or Complex Values

  • Multichannel Input (Multiple columns)

  • single data type

Transform Length n:

  • Real Input: n must be in the range[9 2048] U {4096}-{16}.

  • Complex Input: n must be in the range[5 2048] U {4096}-{8}.

Dimension to operate along dim: dim must be a compile time constant.

  • arm_cfft_f32

  • arm_rfft_fast_init_f32

  • arm_rfft_fast_f32

Wrapper functions, each with an mw_prefix, are provided to bridge the library interface.

ifft

X = ifft(Y)

X = ifft(Y, n)

X = ifft(Y, n, dim)

X = ifft(__, symflag)

  • Real or Complex Values

  • Multichannel Input

  • single data type

Transform Length n: Minimum length is 8.

Dimension to operate along dim: dim must be a compile time constant.

Symmetric type symflag: non-symmetric (default)

  • arm_cfft_f32

  • arm_rfft_fast_init_f32

  • arm_rfft_fast_f32

Wrapper functions, each with an mw_prefix, are provided to bridge the library interface.

fft2

Y = fft2(X)

Y = fft2(X, m, n)

  • Real or Complex Values

  • Multichannel Input

  • single data type

Number of transform rows m:

  • Minimum length is 8 when input is real.

  • Minimum length is 4 when input is complex.

Number of transform rows n:

  • Minimum length is 8 when input is real.

  • Minimum length is 4 when input is complex.

  • arm_cfft_f32

  • arm_rfft_fast_init_f32

  • arm_rfft_fast_f32

Wrapper functions, each with an mw_prefix, are provided to bridge the library interface.

ifft2

X = ifft2(Y)

X = ifft2(Y, m, n)

X = ifft2(__, symflag)

  • Complex Values

  • Multichannel Input

  • single data type

Number of transform rows m:

  • Minimum length is 8

Number of transform rows n:

  • Minimum length is 8

Symmetric type symflag: non-symmetric (default)

  • arm_cfft_f32

  • arm_rfft_fast_init_f32

  • arm_rfft_fast_f32

Wrapper functions, each with an mw_prefix, are provided to bridge the library interface.

fftn

Y = fftn(X)

Y = fftn(X, sz)

  • Real or Complex Values

  • Multichannel Input (Multiple columns)

  • single data type

Length of transform dimension sz: Each of sz element should have:

  • Minimum value 8 when input is real

  • Minimum value 4 when input is complex

  • arm_cfft_f32

  • arm_rfft_fast_init_f32

  • arm_rfft_fast_f32

Wrapper functions, each with an mw_prefix, are provided to bridge the library interface.

ifftn

X = ifftn(Y)

X = ifftn(Y, sz)

X = ifftn(__, symflag)

  • Complex Values

  • Multichannel Input

  • single data type

Length of transform dimension sz: Each of sz element should have:

  • Minimum value is 8

  • arm_cfft_f32

  • arm_rfft_fast_init_f32

  • arm_rfft_fast_f32

Wrapper functions, each with an mw_prefix, are provided to bridge the library interface.