歩行と歩行間隔
$$frac{1}{2}$$
<math> frac{1}{2}</math>
一番最初に脚部が床面に接地した音<足音という
振幅の変動が明確
振幅の変動が起こる直前
振幅の変動が不明確
周波数の高域成分が現れる直前
条件
個人経時特性 10回の歩行を50分おきに5回
被験者の比較 10回*5度の歩行
それぞれの歩行間隔の平均と標準偏差、左右の差を示す
octaveのコマンド
| コマンド |
説明 |
| cd **** |
****にディレクトリ移動 |
| load('filename.**'); |
fileを読み込む |
| load filename.mat |
.mat,.datのみこの形式でも可 |
| whos |
どの変数が保存されているか確認 |
| xやyなど |
変数を打つとその変数の中身が見れる |
| ただし音データなどは膨大な量なので見ないほうが吉 |
| plot(変数) |
変数をfigureにプロットする |
| plot(変数,'r') |
r=red,b=blue,m=magenta,…の色で表示 |
| hold on |
figureにプロットを重ね続ける |
plot(y)
hold on
plot(itai5_r,zeros(1,length(itai5_1)),"or")
fft_y = fft(y);周波数変換
振幅スペクトル
fft_amp = abs(fft_y);
位相スペクトル
fft_ang = angle(fft_y);
ピコって出るノイズ
specgram(y,2048,44100,2048,1024)
スペクトルグラム:*カラーバー
ケプストラム
白板
足音2248点切り出し
フーリエ変換(振幅スペクトル)
10底対数表示
逆フーリエ変換
リフタリング(0づめ)
フーリエ変換
フーリエ変換結果の見方
サンプリング周波数:Fs
FFTへの入力点数:N
FFTの結果(振幅スペクトル):fftsig
fftsigのN点目は
Fs * (n-1)
N
x1 = y(itai5_1(1):itai5_1(1)+2047);
x1amp = abs(fft(x1));
x1log = log10(x1amp);
横軸は合わせないといけない
plot(0:Fs/N:Fs-Fs/N,x1log)
x1ifft = ifft(x1log);
plot(real(x1ifft))
左端部分がスペクトル包絡を示している
残り大部分はピッチを表している
緩やかにどう変化しているか
octave:22> itai5_1_l
itai5_1_l =
26361
75463
120903
165995
octave:23> itai5_1_r
itai5_1_r =
52614
98930
144153
190116
tmp=x1ifft;
tmp(49:2000)=0;
x1lift = tmp;
x1env(x1lift);
plot(0:Fs/N:Fs-Fs/N,x1log)
hold on
plot(0:Fs/N:Fs-Fs/N,x1env,'r')
xl1 = y(26361:26361+2047);
xl1fft = fft(xl1);
xl1log = log10(xl1fft);
xl1ifft = ifft(xl1log);
xl1lift = xl1ifft;
xl1lift(49:2000) = 0;
xl1fft2 = fft(xl1lift);
plot(real(xl1fft2))
xlim([0 1024])
xl1 = y(26361:26361+2047);
xl1fft = fft(xl1);
xl1log = log10(xl1fft);
xl1ifft = ifft(xl1log);
xl1lift = xl1ifft;
xl1lift(49:2000) = 0;
xl1fft2 = fft(xl1lift);
plot(real(xl1fft2))
xlim([0 1024])
xl2 = y(75463:75463+2047);
xl2fft = fft(xl2);
xl2log = log10(xl2fft);
xl2ifft = ifft(xl2log);
xl2lift = xl2ifft;
xl2lift(49:2000) = 0;
xl2fft2 = fft(xl2lift);
plot(real(xl2fft2))
xlim([0 1024])
xl3 = y(120903:120903+2047);
xl3fft = fft(xl3);
xl3log = log10(xl3fft);
xl3ifft = ifft(xl3log);
xl3lift = xl3ifft;
xl3lift(49:2000) = 0;
xl3fft2 = fft(xl3lift);
plot(real(xl3fft2))
xlim([0 1024])
xl4 = y(165995:165995+2047);
xl4fft = fft(xl4);
xl4log = log10(xl4fft);
xl4ifft = ifft(xl4log);
xl4lift = xl4ifft;
xl4lift(49:2000) = 0;
xl4fft2 = fft(xl4lift);
plot(real(xl4fft2))
xlim([0 1024])
xr1 = y(52614:52614+2047);
xr1fft = fft(xr1);
xr1log = log10(xr1fft);
xr1ifft = ifft(xr1log);
xr1lift = xr1ifft;
xr1lift(49:2000) = 0;
xr1fft2 = fft(xr1lift);
plot(real(xr1fft2))
xlim([0 1024])
xr2 = y(98930:98930+2047);
xr2fft = fft(xr2);
xr2log = log10(xr2fft);
xr2ifft = ifft(xr2log);
xr2lift = xr2ifft;
xr2lift(49:2000) = 0;
xr2fft2 = fft(xr2lift);
plot(real(xr2fft2))
xlim([0 1024])
xr3 = y(144153:144153+2047);
xr3fft = fft(xr3);
xr3log = log10(xr3fft);
xr3ifft = ifft(xr3log);
xr3lift = xr3ifft;
xr3lift(49:2000) = 0;
xr3fft2 = fft(xr3lift);
plot(real(xr3fft2))
xlim([0 1024])
xr4 = y(190116:190116+2047);
xr4fft = fft(xr4);
xr4log = log10(xr4fft);
xr4ifft = ifft(xr4log);
xr4lift = xr4ifft;
xr4lift(49:2000) = 0;
xr4fft2 = fft(xr4lift);
plot(real(xr4fft2))
xlim([0 1024])
Fs =44100;
N=2048;
figure
hold on
plot(0:Fs/N:Fs-Fs/N,real(xl1fft2),'b')
plot(0:Fs/N:Fs-Fs/N,real(xl2fft2),'m')
plot(0:Fs/N:Fs-Fs/N,real(xl3fft2),'c')
plot(real(xl4fft2),'g')
plot(real(xr1fft2),'b')
plot(real(xr2fft2),'r')
plot(real(xr3fft2),'g')
plot(real(xr4fft2),'m')
xlim([0 1024])
Fs =44100;
N=2048;
figure
hold on
plot(0:Fs/N:Fs-Fs/N,real(xl1fft2),'b')
plot(0:Fs/N:Fs-Fs/N,real(xl2fft2),'m')
plot(0:Fs/N:Fs-Fs/N,real(xl3fft2),'c')
plot(0:Fs/N:Fs-Fs/N,real(xl4fft2),'g')
plot(0:Fs/N:Fs-Fs/N,real(xr1fft2),'b')
plot(0:Fs/N:Fs-Fs/N,real(xr2fft2),'r')
plot(0:Fs/N:Fs-Fs/N,real(xr3fft2),'g')
plot(0:Fs/N:Fs-Fs/N,real(xr4fft2),'m')
xlim([1 Fs/2])
最終更新:2014年06月05日 17:48