## 図の作成に使用したRのコード Written by Hiroshi Momose (2007) ## 百瀬浩(2007) 生物研究者のための声紋分析ガイド 鳥学通信 No.12 ## fig.1 連続的な音圧変化と離散的サンプリング par (mfrow=c(1,1)) t <- seq(0,1,0.001) td <- seq(0,1,1 / 32) spl <- 0.2*sin(t*2*pi)+0.1*sin(2*t*2*pi)+0.5*sin(3*t*2*pi)+0.6*sin(4*t*2*pi) d_spl <- 0.2*sin(td*2*pi)+0.1*sin(2*td*2*pi)+0.5*sin(3*td*2*pi)+0.6*sin(4*td*2*pi) plot(t, spl, type="l", xlab = "", ylab="", panel.first=plot(td,d_spl, col="red", cex=1.5, xlab="Time (sec)", ylab="Sound Pressure Lebel", cex.lab=1.2)) ## fig.2 4Hzの音を記録するには8Hzのサンプル周波数が必要 par (mfrow=c(1,1)) t <- seq(0,1,0.001) td <- seq(1/16,1,1/8) spl <- sin(8*t*pi) d_spl <- sin(8*td*pi) plot(td, d_spl, col="red", cex=1.5, xlab = "", ylab="", panel.first=plot(t,spl, type="l", xlab="Time (sec)", ylab="Sound Pressure Lebel", cex.lab=1.2)) ## fig.3 とはいえ、こんな場合も… par (mfrow=c(1,1)) t <- seq(0,1,0.001) td <- seq(0,1,1/8) spl <- sin(8*t*pi) d_spl <- sin(8*td*pi) plot(td, d_spl, col="red", cex=1.5, xlab = "", ylab="", panel.first=plot(t,spl, type="l", xlab="Time (sec)", ylab="Sound Pressure Lebel", cex.lab=1.2)) ## fig.6 複雑な波形も… par (mfrow=c(1,1)) t <- seq(0,1,0.001) signal <- sin(t*2*pi)+sin(2*t*2*pi)+sin(3*t*2*pi)+sin(4*t*2*pi) plot(t, signal, type="l", xlab = "Time", ylab="Signal") ## fig.7 単純な波形(正弦波)の和に分解できる par(mfcol = c(4,1)) time <- seq(0,1,0.001) spec1 <- sin(1*time*2*pi) spec2 <- sin(2*time*2*pi) spec3 <- sin(3*time*2*pi) spec4 <- sin(4*time*2*pi) plot(time, spec1, type="l", xlab = "1 Hz", cex.lab=1.5) plot(time, spec2, type="l", xlab = "2 Hz", cex.lab=1.5) plot(time, spec3, type="l", xlab = "3 Hz", cex.lab=1.5) plot(time, spec4, type="l", xlab = "4 Hz", cex.lab=1.5) ## fig.8 窓関数による信号の切り出し par (mfrow=c(3,1)) t <- seq(0,1,0.001) signal <- sin(64*t*pi) plot(t, signal, type="l", xlab = "Original signal (Unit: sec)", cex.lab=2) hanning <- (0.5 - 0.5 * cos(2*pi*t)) plot(t, hanning, type="l", xlab = "Hanning Window", cex.lab=2) sig_win <- signal * hanning plot(t, sig_win, type="l", xlab="Signal x Window", cex.lab=2)