トップページ > 記事閲覧
実数部分と虚数部分を分けたFFT関数
名前:b 日時: 2018/08/27 19:49

こんにちは、いつもDXライブラリにお世話になっております。 私はDXライブラリを用いて、複数の音声の一致率を求める処理を実現したいと考えております。 その際、ケプストラム分析を利用しようと考えており、 1.音声のフーリエ変換 ↓ 2.フーリエ変換したもの実数部分・虚数部分の対数をとる ↓ 3.逆フーリエ変換 ↓ 4.ローパスフィルタを掛けて低次のケプストラムを抽出 という手順を予定しております。 しかし、2の手順では実数部分と虚数部分を分けたフーリエ変換の結果が必要で、 GetFFTVibrationSoftSound関数ではその大きさしか返ってきません。 実数部分と虚数部分を分けて値を返せるような関数はDXライブラリに存在しますでしょうか? ご返信、よろしくお願いします。
メンテ

Page: 1 |

Re: 実数部分と虚数部分を分けたFFT関数 ( No.1 )
名前:管理人 日時:2018/08/29 01:12

GetFFTVibrationSoftSound の実数部分と虚数部分を取得できる関数を追加しましたので、 よろしければこちらをダウンロードしてください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.2 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) 以下の関数を追加しました // ソフトウエアで扱う波形データハンドルの指定の範囲を高速フーリエ変換を行い、各周波数域の振幅を取得する // 結果の実数と虚数を別々に取得することができるバージョン // ( SampleNum は 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536 の何れかである必要があります、 // Channel を -1 にすると二つのチャンネルを合成した結果になります ) int GetFFTVibrationSoftSoundBase( int SoftSoundHandle, int Channel, int SamplePosition, int SampleNum, float *RealBuffer_Array, float *ImagBuffer_Array, int BufferLength ) ; 出力先として実数部分を格納する RealBuffer_Array と虚数部分を格納する ImageBuffer_Array を引数に渡すようになっています よろしければお試しください m(_ _)m
メンテ
Re: 実数部分と虚数部分を分けたFFT関数 ( No.2 )
名前:b(解決) 日時:2018/08/29 07:17

早速の関数の追加、ありがとうございます。 正常に実数部分と虚数部分で分けて振幅を取得できることを確認しました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存