複素数を扱うためにvDSP.hで定義された構造体
typedef struct DSPComplex { float real; float imag; } DSPComplex; typedef struct DSPSplitComplex { float * __nonnull realp; float * __nonnull imagp; } DSPSplitComplex;
1次元高速フーリエ変換
vDSP_create_fftsetup vDSP_destroy_fftsetup
1次元高速フーリエ変換(In-Place Complex)
vDSP_fft_zip テンポラリバッファ未使用 vDSP_fft_zipt テンポラリバッファ使用
1次元高速フーリエ変換(Out-Of-Place Complex)
vDSP_fft_zop テンポラリバッファ未使用 vDSP_fft_zopt テンポラリバッファ使用
1次元高速フーリエ変換(In-Place Real)
vDSP_fft_zrip テンポラリバッファ未使用 vDSP_fft_zript テンポラリバッファ使用 vDSP_fftm_zrip 複数信号,テンポラリバッファ未使用 vDSP_fftm_zript 複数信号,テンポラリバッファ使用
vDSP_fft_zripの引数
vDSP_Length Log2N -> 要素数を2の何乗かで指定します。要素数が1024なら210=1024なので10を指定します。
FFTDirection Direction -> kFFTDirection_Forward: フーリエ変換, kFFTDirection_Inverse : 逆変換
1次元高速フーリエ変換(Out-of-Place Real)
vDSP_fft_zrop テンポラリバッファ未使用 vDSP_fft_zropt テンポラリバッファ使用 vDSP_fftm_zrop 複数信号,テンポラリバッファ未使用 vDSP_fftm_zropt 複数信号,テンポラリバッファ使用
1次元高速フーリエ変換(固定長)
vDSP_FFT16_copv 16要素 interleaved vDSP_FFT32_copv 32要素 interleaved vDSP_FFT16_zopv 16要素 split vDSP_FFT32_zopv 32要素 split
2次元高速フーリエ変換(In-Place Real)
vDSP_fft2d_zrip vDSP_fft2d_zript
2次元高速フーリエ変換(Out-of-Place Real)
vDSP_fft2d_zrop vDSP_fft2d_zropt
離散フーリエ変換
vDSP_DFT_zop_CreateSetup vDSP_DFT_zrop_CreateSetup vDSP_DFT_DestroySetup vDSP_DFT_Execute
離散コサイン変換
vDSP_DCT_CreateSetup vDSP_DCT_Execute
相関,畳み込み
vDSP_conv 2つの実ベクターの相関または畳み込み vDSP_zconv 2つの複素ベクターの相関または畳み込み vDSP_wiener ウィーナフィルタとして使えるFIRフィルタの生成 vDSP_desamp デシメーション,アンチエイリアスするFIRフィルタ vDSP_zrdesamp デシメーション,アンチエイリアスするComplex-real FIRフィルタ vDSP_f3x3 3x3カーネルでの2次元畳み込みで画像をフィルタ vDSP_f5x5 5x5カーネルでの2次元畳み込みで画像をフィルタ vDSP_imgfir 1カーネルでの2次元畳み込みで画像をフィルタ
ウィンドウ
vDSP_blkman_window vDSP_hamm_window vDSP_hann_window
単一チャネル4次IIRフィルタ
vDSP_biquad_CreateSetup vDSP_biquad_DestroySetup vDSP_biquad
複数チャネル4次IIRフィルタ
vDSP_biquadm_CreateSetup vDSP_biquadm_DestroySetup vDSP_biquadm_ResetState vDSP_biquadm_SetActiveFilters vDSP_biquadm_SetCoefficientsSingle vDSP_biquadm_SetCoefficientsDouble vDSP_biquadm_SetTargetsSingle vDSP_biquadm_SetTargetsDouble vDSP_biquadm_biquadm
複素ベクター変換
vDSP_ctoz DSPComplex から DSPSplitComplex へ変換 vDSP_ztoc DSPSplitComplex から DSPSplitComplex へ変換
floatから24ビット整数への変換
vDSP_vsmfix24 vDSP_vsmfixu24 vDSP_vflt24 vDSP_vfltu24 vDSP_vfltsm24 vDSP_vfltsmu24