2010年9月26日TweetPocket実際にvDSPを使って信号処理をしてみます。扱いが簡単な加減乗除の方から見ていきます。英語が読める方、詳しく把握したい方はこちらの記事がとてもよくできているので、是非見てみてください。vDSPを使うための準備Accelerate.frameworkのフレームワークの追加vDSP(vecLib)はAccelerate.framework内に含まれています。iOSそれぞれ用意されているので、Xcodeでプロジェクトを開いたら現在のプラットフォーム用のAccelerate.frameworkをプロジェクトに追加します。名前的に一番上に出てくるので見つけやすいです。<Acclerate/Accelerate.h>をインポートするvDSPのメソッドを使うためには他のフレームワークを使うときと同様、<Accelerate/Accelerate.h>をソースコード内でインポートします。信号の加減乗除を行うために必要な準備はこれだけです。加算をしてみるvDSPには用途に応じてさまざまな加減乗除用の関数が用意されています。わかりやすい配列同士の加算をやってみます。floatの配列で構成される信号1と信号2の加算は、下記のメソッドで実行できます。要素の数);ストライドについては、後ほど説明するのでとりあえずここでは全て1を指定して、実際に計算してみましょう。}}これを実行するとresultに{2,4,6,8,10,12,14,16}という数字がはいり、signal1とsignal2が加算された結果がresultに代入されたことが確認できます。ストライドの使い方ストライドは配列を何個飛ばしで読んでいくか/書いていくかを決定するものです。いう時に使うかというと、モノラル以外のチャンネルの信号(ステレオなどマルチチャンネルのもの)を扱うときに使います。右チャンネルの2サンプル目...}という感じでサンプルが並んでいるので、ストライドを2とすれば左チャンネルあるいは右チャンネルだけを取得することができます。書き込みのストライドに2を指定することで左チャンネルだけ、右チャンネルだけを書き換える事もできます。減算はvDSP_vsub、乗算はvDSP_vmul、除算にはvDSP_vdivがそれぞれ用意されています。基本的に使い方は同じですが、除算の場合は0で割ってしまわないように注意しましょう。次は高速フーリエ変換を使っていってみます。加減乗除の時同様、vDSPを使えるように設定します。設定の仕方は加減乗除の記事を参照してください。基本的にはAccelerate.frameworkをリンクして、<Accelerate/Accelerate.h>をインポートするだけです。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイトご意見、ご感想をお願いします。その2ARを学ぶ10連休。折り返し地点までの記録。