スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Scilabで連続ウェーブレット変換-7 (縦軸を周波数にする)

こんにちは。
今回は、前回に引き続いて、さらに縦軸を修正して見ます。

縦軸の表示をスケールから周波数に変えて見ましょう。

//ウェーブレット関数
wname = 'cmor';

//サンプリング周波数
fs=100;

//時間軸生成
t = [0:1/fs:10];

//データ生成
x=sin((2*%pi.*(t)).*t);
x=x+x($:-1:1);

// スケーリング列
scales = 2^[1:1/8:6];
coef=cwt(x,scales,wname);

//ウェーブレット係数を画像に変換
cmap_n=512;
cmap=jetcolormap(cmap_n);
n2=int(abs(coef)/max(abs(coef))*(cmap_n-1)+1);

//表示
scf(0);clf;f=gcf();f.color_map=cmap;
ca=gca();
ca.axes_reverse(2)="on";
ca.tight_limits = "on";
Matplot(n2($:-1:1,:));

xlabel("Samples");
ylabel("Scale");

//Y軸を変更する
scales_ticks=find(fix(scales)==scales)'; //切りが良い数値のみ抜出し

a=gca(); //AXISを取得
yticks=a.y_ticks; //Y軸を取得
yticks.locations=scales_ticks; //位置を指定
yticks.labels=string(scal2frq(scales(scales_ticks)',wname,1/fs)); //表示する内容を指定
a.y_ticks=yticks;


k.jpg

プログラムは前回から1行変わっているだけです。scal2frqを足しました。
ウェーブレットの周波数が中途半端なので、半端な表示になりますが、わかりやすくなったのはないでしょうか。
スポンサーサイト

コメントの投稿

非公開コメント

全記事表示リンク

全ての記事を表示する

最新記事
最新コメント
最新トラックバック
カテゴリ
検索フォーム
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。