ラベル 信号処理の準備 の投稿を表示しています。 すべての投稿を表示
ラベル 信号処理の準備 の投稿を表示しています。 すべての投稿を表示

2016年12月24日土曜日

Octaveレッスン(14) - ltfat packageを利用する

ltfat packageには、fwt関数などwavelet解析に便利な関数が用意されている。

windows版Octaveでは、下記コマンドで ltfat のインストールに成功するが、 Mac版では失敗する。
>> pkg install -forge ltfat
ドキュメントを読む限り、Mac版もWindows版も同じ手順でインストールできないとおかしいのだが、別のMacや旧いOSバージョン、旧いOctaveバージョンでも同様に失敗する。

そこで、別のアプローチを試してみたところ成功したので、メモを残しておく。

Mac版で動かすには、下記ページからltfat packageをダウンロードして展開する:
http://ltfat.sourceforge.net/download.php

Octaveのコマンドウィンドウにて、展開した ltfat ディレクトリへ移動して、
>> ltfatstart
と実行すれば、各種 ltfat の関数が利用可能になる。
waveletのデモを表示するには、
>> demo_wavelets
さらに処理速度を高速化したい場合には、
>> ltfatmex
と実行すればよい・・・ ハズなのだが失敗する。
fftw3ライブラリが見つからず、コンパイルエラーが発生する。

下記URLからfftw-3.3.5.tar.gzをダウンロードしてfftw3ライブラリをコンパイルする。
http://www.fftw.org/download.html

ターミナルを開いて、展開したfftw-3.3.5ディレクトリに移動して下記コマンドを実行:
$ ./configure --enable-threads
$ make 
libfftw3.a, libfftw3_threads.a が生成されるので、場所をfind等で探して、ltfat/lib へコピーする。
続いて、float対応版ライブラリをコンパイルする:
$ make clean
$ ./configure --enable-float --enable-threads
$ make 
libfftw3f.a, libfftw3f_threads.a が生成されるので、場所をfind等で探して、ltfat/lib へコピーする。

Octaveのコマンドウィンドウに戻って、
>> ltfatmex
と再実行すると、今度は成功する。

※ ltfatmex 実行すると、PortAudio が無いというコンパイル警告が出るため、私はPortAudioもダウンロード&インストールした。しかし、これは必須では無いはず。
 PartAudio関連サイト:

Octaveレッスン(13) - signal packageを利用する

fft関数などは、Octaveをインストールするだけで利用可能。
しかし、xcorr関数(相互相関)などを利用しようとすると、signal packageが必要になる。

windows版の場合は、Octaveインストール時にsignalパッケージもインストールされるので、下記コマンドでsignal packageをロードすれば利用可能になる
>> pkg load signal
Macの場合は、まずinstallする必要がある:
>> pkg install -forge signal
上記は、ネットワーク経由でダウンロード&インストールするコマンドだが、おそらくcontrol package が未インストールのため失敗するだろう。

そこで、まず control packageをinstallする:
>> pkg install -forge control
依存関係のあるcontrolをインストールできたので、signalをインストールしてロードする:
>> pkg install -forge signal
>> pkg load signal 
これで、xcorr関数などが利用可能になる。

なお、インストール済みパッケージは下記コマンドで一覧表示可能:
>> pkg list
また、別 package 無しで利用可能な関数の一覧は、[ドキュメント]タブ - 「Function Index」sectionで確認可能。

2016年11月5日土曜日

Octaveレッスン(7) - AndroidでOctaveを使う

* Android版Octaveのセットアップ方法

Google Playから次の3つのアプリをインストールするだけでよい。
3.をインストールすることで、plotコマンドも使えるようになる。
plot画像をpngファイルとして生成してくれる。
  1. Octave
  2. Octave Main Package
  3. Octave Gnuplot Package
毎起動時にアップデートをお勧めされるが、私の旧めの環境(Android4.2.2)では、新バージョンのインストールに失敗した。
現行バージョンで、軽快に何の問題もなく動作してくれるので "Maybe Later" を選択。

* Android版Octaveが使用するディレクトリ

私の端末で使用されていたディレクトリ(環境によって異なる可能性がある):
  • scriptファイル(.m, .octaverc)置き場: /storage/emulated/0/GNUOctave/home
  • plotファイル(.png)置き場: /storage/emulated/0/GNUOctave/intents
試しに、Octaveレッスン(4) - 正弦波を生成する関数 の.mファイルを作成して、
[y, t] = gen_sin(Fs, hertz, seconds);
実行すると、wavファイル作成には失敗したが(audiowrite関数がない)、出力 y, t を得られた。
plot(t,y) コマンドも実行できた。
ただし、Android端末の画面サイズが小さいので、hertzが小さくないと、波形が潰れてしまい、青い矩形が描画されただけのpng画像が生成される。

2016年10月25日火曜日

Macで使える音声信号処理の道具



【注意】ダウンロードしてインストールしたアプリは、アイコンのダブルクリックで起動できない。初回は、コントロールキーを押したままアイコンをクリックして開くと、次回移行は通常手順で起動できるようになる

2016年10月22日土曜日

お勧めmatlab代替ソフト

matlabは高度な数値解析が行える強力なツールだが、お値段約30万円と高額なのが難点。

無償で使えるmatlab代替フリーソフトがいくつかある:
  1. Octave
  2. Scilab
  3. SageMath
  4. FreeMat
matlabとの互換性を重視するなら、Octaveがお勧め。
ほとんどのmatlabで開発したプロジェクトをそのまま実行できる。

互換性が問題でなければ、信号処理の初学者には、Scilabがお勧め。
下記文献など、優れた初学者向けドキュメントが充実している:
matlabと同等の機能を提供していて、行列計算などの文法も類似している。
しかし、matlabとの文法上の互換性は、scilabの目指すところではない。

参考:
MatlabとOctaveの差異
 Octave の表現 - かなり MATLAB を意識しているが独自の拡張もある。…
 MATLAB Programming/Differences between Octave and MATLAB
 → 古い日本語訳PDF(2009年)

Matlab代替ソフト比較
 http://dspguru.com/dsp/links/matlab-clones
 https://opensource.com/alternatives/matlab
 https://www.quora.com/What-is-the-best-open-source-alternative-for-MATLAB