mikeo_410


 音の伝播

音速

  音が伝わることは、物体自体の振動であり、弾性波伝播速度と言うらしい。
  したがって、分子量や密度によって変わる。
  通常の温度、気圧で考えると、平均分子量が小さいほど速く、ヘリウム中では空気の3倍の音速となる。
  一般的に、気体、液体、個体の順で、音速は早くなる。
  個体の場合、地震のP波、S波のように、縦波と横波が伝播する。
  気体、液体では、疎密波である縦波が伝播する。

  「縦波、横波」、 「音速と音高

大気中の音速

  wikipedia の「音速」 には、気体中の音速を表す2つの式がありました。

  音が伝わるのは、加えたエネルギーが伝播していくことです。その伝わり方は、熱エネルギーでも同じであろうことは推測できます。
  つまり、比熱の小さな気体中では早く伝わるだろうと言うことです。
  また、同じ条件なら、軽い分子ほど早く伝わることも考えられます。
  ※ M は、分子量ではなく、モル質量(kg / mol) のようで、分子量の1/1000を計算に使いました。

気体の性質

  1. アボガドロの法則、アボガドロ数
    同じ温度、同じ圧力なら、物質によらず、同じ体積には同じ分子数が含まれます。
    この分指数は、アボガドロ数として、NA = 6.022 141 29(27) × 1023 mol-1
    ※(27)は、下2桁の信頼性を示すものらしい。
  2. モル体積
    1mol の気体は、物質によらず、0℃、1atmで22.4L(リットル)を占めます。
    CODATAの値 : 22.413968 x 10-3 m3 mol-1 (273.15 K, 101.325 kPa)
  3. ボイルの法則
    気体の体積は、圧力に反比例します。(温度が普遍の場合)
  4. シャルルの法則
    気体の体積は、絶対温度に比例します。(圧力は普遍の場合)
  5. 1 mol に付いて考えると、物質によらず、分子を構成する原子数で概ねの比熱を知ることができる。
    分子の運動の問題であることから、分子の構成原子数から比熱が推定できると言うものです。
    分子を構成する原子数を n とすると、n = 1,2,3 に付いて以下のように計算します。
    Cp = (n+1.5)R
    計算結果は、n = 1,2,3 について、20.78625、 29.10075、 37.41525 (J mol-1K-1 )となります。
    分子 原子数 分子量 定圧比熱
    (J g-1K-1 ) (J mol-1K-1 )
    He 1 4.003 5.232 20.944
    Ar 1 39.948 0.523 20.893
    O2 2 31.9988 0.922 29.503
    N2 2 28.0134 1.034 28.966
    CO2 3 44.01 0.837 36.836
    H2O 3 18.015 2.051 36.949

大気の性質

   地球の大気、しかも人の生活可能な範囲を考えます。

  1. 組成
    大気には水が含まれ、その割合は大きく変動します。これを除いた乾燥空気の組成は以下のようです。
    乾燥空気の組成
    物質 重量比 分子数比
    N2 0.7547 0.7803
    O2 0.2320 0.2099
    Ar 0.0128 0.00933
    CO2 0.00046 0.0003
    その他 0.00004 0.0002
  2. 湿度は、他の物質の比率を変化させないものと考えます。
  3. 大気は移動(風)しますが考えないことにします。
    (観測された最大の風速は、105.5m/sらしい。)
  4. 0℃以下の大気にも水が含まれますが、過冷却状態で含まれると考えます。
  5. 以下のことから、[-60,60℃]、[870,1083hPa] の範囲で考えます。
    ・気温は、-90 から 60 ℃ が観測された範囲らしい。
    ・気圧は、870 から 1,083.8 hPa の観測記録があるらしい。
  6. 湿度は、データがないが、ゼロから飽和する水蒸量の間になります。
  7. 乾燥空気の平均分子量は、28.966 が使われています。
    乾燥空気の組成分子数比と分子量の積の和を計算すると、
    0.7803 x 28 + 0.2099 x 32 + 0.00933 x 40 + 0.0003 x 40 = 28.951
    と、なります。
    分子量の精度を上げて、4大成分以外の分子量を、23.3091と置くと、
    0.7803 x 28.0134 + 0.2099 x 31.9988 + 0.00933 x 39.948
    + 0.0003 x 44.01 + 0.0002 x 23.3901 = 28.966
  8. 水の分子量は18で、空気の4大組成から計算した 28.966 より小さい。
    したがって、湿度が上がることは、大気の平均分子量を小さくする
  9. 乾燥空気の比熱比 k は、k=1.403

大気の密度

  気体1立方メートル中の分子数は、物質によらず、温度と圧力で決まります。
  その重さは、気体を構成する分子の分子量に依存します。
  大気1立方メートルの重さを密度(g/m3)として計算します。

乾燥空気の密度

  乾燥空気の分子量は、その組成から、28.966 となります。
  1 mol の重さは28.966 g です。
  モル体積は、物質に関係なく決まります。1mol の気体は、0℃、1atmで22.4(L)、0.0224(m3) を占めます。
  0℃、1atm の乾燥空気の密度 σ は、 σ = 28.966 / 0.0224 = 1293.125 (g/m3) と計算されます。
  ボイル=シャルルの法則から、気圧をP(Pa)、気温をT(K) とすると、以下のように計算できます。

  1. # 温度K(K)、気圧P(Pa)の乾燥空気の密度(g/立方メートル)
  2. DensityOfDryAir <- function(K,P)
  3. {
  4.   3.483809 * P / K
  5. }

大気の密度

  大気中の水分割合の変化は、空気の分子量を変化させます。
  気圧は、乾燥空気組成の圧力と、水蒸気圧から成っていると考えます。
  多くの場合、湿度は相対湿度で示されます。相対湿度は、飽和水蒸気圧に対する割合なので、後述の「飽和水蒸気量」のような方法で算出します。
  飽和水蒸気圧は、温度だけで決まる値です。

   「飽和水蒸気量」に上げた、60℃で870hPaのときの例では、193 hPa が飽和水蒸気圧で、気圧からこれを引いた 677 hPa が乾燥空気組成の分圧になりました。
  ここで、飽和ではなく、湿度が60% だったとします。水蒸気圧は193 x 0.6 = 115.8 hPa となり、乾燥空気組成の分圧は 870-115.8 = 754.2 hPa となります。水蒸気圧が115.8 / 870 = 0.1331034、乾燥空気組成が 754.2 / 870 = 0.8668966 の分子数比で存在していることになります。
  この状態の分子量は、水と乾燥空気の分子量に、それぞれの比率を乗じて加算して、大気の分子量を計算します。
  18 x 0.1331034 + 28.966 x 0.8668966  = 27.51
  となり、60℃で870hPaで、湿度が60%のときの大気のモル質量は、27.51 と計算できます。
  気圧をP(Pa)、気温をT(K) としたときの、1molの気体の体積は、物質にはよらず、乾燥空気と同様に計算できます。

  60℃で870hPa なら、T = 60 + 273.15 (K)、P = 87000 (Pa) を代入して、0.03183866 (m3) となります。
  モル質量を割ると、27.51 / 0.03183866 = 864.0 (g/m3) となり、密度が求まります。

  乾燥空気の式に、水蒸気圧によるモル質量の計算を合わせると以下のようになります。

  これを、R言語のスクリプトにしたものです。

  1. # 直接湿り空気の密度を計算する
  2. # 気温がK(K)で、気圧がP(Pa)のとき、水蒸気の部圧が
  3. # Pw(Pa)なら密度(g/立方メートル)
  4. DensityOfAir <- function(K,P,Pw)
  5. {
  6.   (7912.063*(P^2) - 2991.189*P*Pw) / (2271.095*K)
  7. }

  ※ Rでは、良く par(new=T) のように、真理値として T を使います。変数に T を使うことができますが、その場合、真理値として T と書いていた場所は、TRUE に改めないと正しく動作しなくなります。

  この DensityOfAir() と、後述の MaximumVapourTension() 関数を使って、大気の密度(比重)を計算してみると左図のようになりました。
  上の図から、温度との関係がわかります。
  温度が高くなると空気は膨張して密度が下がります。
  相対湿度 0、50、100 % を描いていますが、0℃ 以下では、空気に含まれる水分量は微量なのでほとんど影響がありません。
下図は、0℃ 以上だけを描いたものです。
水の分子量(18)は、乾燥空気の分子量(28.966)に比べて小さいので、水分を含むことは密度が下がることになります。

  1. # 大気密度のプロット
  2. t <- (-60):60   # 
  3. K <- 273.15 + t # ℃を(K)
  4. P <- 101325 # Pa
  5. h <- c(0,50,100)
  6. y <- matrix(0,nrow=length(h),ncol=length(t))
  7. for(i in 1:length(h))
  8. {
  9.   for(j in 1:length(t))
  10.   {
  11.      mx <- MaximumVapourTension(K[j])
  12.      Pw <- mx * h[i] / 100
  13.      y[i,j] <- DensityOfAir(K[j],P,Pw)
  14.   }
  15. }
  16. windows(3,5.5)
  17. par(mfrow=c(2,1))
  18. par(mar=c(3,3,2,1),mgp=c(1.5,0.5,0))
  19. ylim <- range(y)
  20. plot(t,y[1,],type="l",col="green",ylim=ylim,xlab="℃",ylab=expression(g/m^3))
  21. par(new=TRUE)
  22. plot(t,y[2,],type="l",col="red",ylim=ylim,xlab="",ylab="")
  23. par(new=TRUE)
  24. plot(t,y[3,],type="l",col="blue",ylim=ylim,xlab="",ylab="")
  25. abline(v=c(0,20),h=c(1293,1205),col="gray60")
  26. legend(-20,1700,c("相対湿度0%","50%","100%"),col=c("green","red","blue"),
  27.        lty=c(1,1,1),cex=0.7,bty="n")
  28. title("空気の密度(比重)",cex.main=0.8)
  29. ylim <- range(y[,61:121])
  30. plot(t[61:121],y[1,61:121],type="l",col="green",ylim=ylim,xlab="℃",ylab=expression(g/m^3))
  31. par(new=TRUE)
  32. plot(t[61:121],y[2,61:121],type="l",col="red",ylim=ylim,xlab="",ylab="")
  33. par(new=TRUE)
  34. plot(t[61:121],y[3,61:121],type="l",col="blue",ylim=ylim,xlab="",ylab="")
  35. abline(v=c(0,20),h=c(1293,1205),col="gray60")
  36. legend(-20,1700,c("相対湿度0%","50%","100%"),col=c("green","red","blue"),
  37.        lty=c(1,1,1),cex=0.7,bty="n")
  38. title("湿度の影響",cex.main=0.8)

飽和水蒸気量

  飽和水蒸気圧を計算する、SONNTAGの式(JIS Z 8806)と言うのがあるようです。
   SONNTAGの式は、2種類あって、水か氷かで使い分けるもののようですが、気象では水の式だけが使われるようです。
  R言語のスクリプトにすると以下のようです。

  1. # 温度がK(K)のときの飽和水蒸気圧
  2. MaximumVapourTension <- function(K)
  3. {
  4.   exp((-6096.9385/K)
  5.        +21.209642
  6.        -(0.02711193*K)
  7.        +(0.00001673952*(K^2))
  8.        +(2.433502 * log(K)) )
  9. }

  この関数を使って、-60℃ から 60℃までの飽和水蒸気圧を計算すると図のようになります。
  この計算では、気圧の要素は無関係で、気圧に占める水蒸気の分圧は絶対値であり、気圧によって比率が変わると考えるものと思います。

  1. > t <- (-60):60
  2. > ew <- rep(0,length(t))
  3. > for(i in 1:length(t))
  4. +   ew[i] <- MaximumVapourTension(273.15 + t[i])
  5. > plot(t,ew,type="l",col="blue",xlab="℃",ylab="Pa")
  6. > title("飽和水蒸気圧",cex.main=1)
  7. > ew[which(t==20)]/100 # 20℃の飽和水蒸気圧(hPa) 
  8. [1] 22.67114
  9. > ew[which(t==60)]/100 # 60℃の飽和水蒸気圧(hPa) 
  10. [1] 193.3254

  ここで算出される圧力を、気圧に対する分圧と考えれば、量を算出できます。
  前述の想定範囲で、最も多く水を含むのは、60℃です。組成比率が最大なのは、60℃で870hPaのです。
  60℃のときの飽和水蒸気圧は 193 hPa と計算されるので、乾燥空気の組成部分は、870-193 = 677 hPa となります。
  この状態では、

  1. 空気の分子量
    物質によらず、圧力で分子数が決まるので、圧力の比が、そのまま分子数の比となります。圧力の比に分子量を乗じて計算します。
    飽和状態まで水を含んだ60℃で870hPa の空気の分子量は、
    (677/870) x 28.966 + (193/870) x 18.015 = 26.537
  2. 空気の密度
    1molの体積を計算します。
    273.15K、1013.25hPaのときのモル体積 22.414 x 10-3 m3 mol-1  から、圧力によって、22.414 / (870 / 1013.25) =  26.105 となり、温度によって、26.105 x (1 + (60/273.15)) = 31.839 (L、あるいは、x 10-3 m3 ) となります。
    飽和状態まで水を含んだ60℃で870hPa の空気の重さ(g / m3)は、
    26.537 x (1/(31.839 x 10-3))  = 833.5 g/m3
    (飽和状態まで水を含んだ60℃で870hPa の空気の分子量に、1(m3)のモル数を乗じる。)
  3. 1(m3)に含まれる水の重さ
    圧力の比に、分子量を乗じたものが、重量比になります。
    飽和状態まで水を含んだ60℃で870hPa の空気に含まれる水の重さは、
    833.5 x ((193/870) x 18.015 / 26.537) = 125.5 g

  また、 wikipedia の「飽和水蒸気量」にある Tetens の式によって水蒸気量を直接計算できるようです。

  1. > T<-((-30):80)
  2. > a <- 217*(6.1078*10^(7.5*T/(T+237.3))) / (T+273.15)
  3. > plot(T,a,type="l",col="blue",xlab="℃",ylab="g/㎥")
  4. > abline(h=c(a[which(T==20)],a[which(T==60)]),
  5. + v=c(20,60),col="gray60")
  6. > title("飽和水蒸気量",cex.main=1)
  7. > a[which(T==20)]
  8. [1] 17.3074
  9. > a[which(T==60)]
  10. [1] 129.8157

  この式では、20℃で 17.3 g/㎥ 、60℃で 130 g/㎥ の水蒸気を含むことができるように計算されます。

相対湿度

  空気中の水分量を設定するには、湿度計の値を入力することになります。これは、相対湿度だと思います。
  これは、飽和水蒸気量に対する比率であることは確かですが、重量比か分子数比(圧力比)かが定かではありません。
  空気と水の分子量の差は大きいので、重量比か圧力比かは大きな差になるはずです。
  両方の説明を見かけますが、定義は圧力比のようなのでこれを取ります。

気体定数

  気体定数は、気体の種類に依存するかどうかで、2通りに使われています。
  気体の種類に依存する値を気体定数としているときは、気体の種類によらない定数を普遍気体定数と言うようです。
  音速の式の気体定数は、普遍気体定数 R と考えられます。
  分子の種類によらず、気体の体積 V、圧力 P、温度 T について、PV/T は一定となり、1mol について、R = PV/T となります。
  この定数は、wikipediaには、8.314 4621(75) J mol-1K-1 のように表記されています。(75)は、Standard uncertainty 0.000 0075 J mol-1K-1 で、8.3144 まで同じなら同じ値を指そうとしていると解釈して良さそうです。また、単位を 8.31446 J/mol/K のように書かないようです。
  この定数は、以下のような値も併記されています。
  8314.47 Pa L mol-1K-1
  8.20574×10-2  L atm mol-1K-1
  前者は、ジュールの部分が、パスカルxリットルとなっています。温度と、圧力・体積が比例する話しなので、ジュールとパスカルxリットルの置き換えは理解できます。数値の下1桁が合いませんが、同じ値を指そうとしていると考えて良さそうです。
  圧力が単位に登場すると、圧力の単位の数だけ表記方法が出てきます。
  後者の値は 1atm = 101325Pa なので、8314.47 x (1 / 101325) = 0.08205744 と換算したものです。
  また、1molの気体は、0℃、1気圧で、22.4Lを占めるので、22.4(L) / 273.15(K) = 0.0820 L atm mol-1 K-1 となります。

気体の比熱比

  気体は圧力と体積が比例の関係にあるので、それぞれを一方を固定して、定圧比熱 Cp と、定積比熱 Cv を考えます。
  比熱比 k は、k = Cp / Cv です。
  Cp は、圧力が一定ですが、いくつに一定にするかで異なった値になることは確かそうです。
  おそらく、比熱比は、こうしたことを相殺して、比熱の大きさを反映するものだと思います。
  また、比熱比は比なので、グラムでもモルでも変わらないことになります。

  理科年表には、1atm、20℃の乾燥空気のCp=1.006 、Cp / Cv = 1.403 ( J g-1K-1 ) とあります。
  Cv = 1.006 / 1.403 = 0.717 と計算できます。
  マイヤーの関係式 Cp = Cv + R があり、気体定数 R をつかって、Cp のみから比熱比を計算できます。
  この場合、Rは mol なので、Cp に分子量を乗じて定圧モル比熱に換算します。
  Cp = 1.006 x 28.966  = 29.14 (J mol-1K-1 )
  k =  29.14 / (29.14-8.3144621) = 1.399
  と、計算されます。
  (Cp-Cv ) / R = 0.9971 で、この差異は、わたしには説明がつきませんが、当然のことのようです。

乾燥空気中の音速

  最初に上げた、wikipedia の式の、気体定数を使った方を以下のように計算します。

  1. # 音速の計算 気体定数から
  2. SoundSpeed1 <- function(K,P,hy)
  3. {
  4.   Pw <- VapourTension(K,hy) # 水蒸気圧
  5.   # この状態での空気の分子量
  6.   M <- DryAirMolarMass * 
  7.        ((P-Pw)/P) + 18.01528 * (Pw/P)
  8.   sqrt( DryAirHeatCapacityRatio * GasConstant * K 
  9.         / (M/1000) )
  10. }

  使用している定数は以下のように定義しました。

  1. GasConstant <- 8.3144621         # (75) J/( K・mol) 気体定数
  2. DryAirMolarMass <- 28.966        # 乾燥空気のモル質量
  3. DryAirHeatCapacityRatio <- 1.403 # 乾燥空気の比熱比 (1atm,20)

   空気密度からの式は以下のように計算します。

  1. # 音速の計算 密度から
  2. SoundSpeed2 <- function(K,P,hy)
  3. {
  4.   Pw <- VapourTension(K,hy) # 水蒸気圧
  5.   sqrt( DryAirHeatCapacityRatio * P 
  6.         / (DensityOfAir(K,P,Pw) / 1000) )
  7. }

  また、一般的な音速の式を以下のように計算します。

  1. # 通常の音速の表現式(摂氏でなく、ケルビンで)
  2. SoundSpeed <- function(K)
  3. {
  4.   331.5 + 0.6 * (K-273.15)
  5. }

  上の図は、SoundSpeed()で計算した値と、SoundSpeed1() 、SoundSpeed2() の差をプロットしたものです。
  SoundSpeed1()  と SoundSpeed2() は、小数点以下4程度まで一致します。

  音速は、1メートル程度の精度があれば十分なものらしく、詳細な実測データは見かけません。
  理科年表には、331.45、wikipedia には、331.30 が乗っています。また、通常の音速の表現式では、331.5 が使われています。
  (いずれも 1atm、0℃ で、前の2つは乾燥空気、単位はm/s)
  1atm、0℃ 、水蒸気圧 0 での SoundSpeed1() 、SoundSpeed2() の算出値は、共に、 331.667 です。

   左図は、wikipedia の「Speed of sound」にある表の値との比較です。乾燥空気 1atm での音速です。
  空気密度からと、気体定数からの計算値は重なっています。
  この2つの式は、後述の「2つの音速の計算式」のように、基本的に同じ計算だからと言うことです。
  この表には、密度も乗っています。音速自体はどんな計算をしているかわかりませんが、密度は高精度で一致して良いはずです。この差は、0.03% 以下でした。

  1. > # wikipedia Speed of sound data
  2. > t <- rev(c(35,30,25,20,15,10,5,0,-5,-10,-15,-20,-25))
  3. > oS <- rev(c(351.96,349.08,346.18,343.26,340.31,337.33,
  4. +         334.33,331.30,328.24,325.16,322.04,318.89,315.72))
  5. > oD <- rev(c(1.1455,1.1644,1.1839,1.2041,1.2250,1.2466,1.2690,
  6. +         1.2920,1.3163,1.3413,1.3673,1.3943,1.4224))
  7. > K <- 273.15 + t # ℃を(K)
  8. > P <- 101325     # Pa 1atm
  9. > h <- 0          # 湿度0%
  10. > sg <- rep(0,length(t))
  11. > sd <- rep(0,length(t))
  12. > ss <- rep(0,length(t))
  13. > d <- rep(0,length(t))
  14. > for(i in 1:length(t))
  15. + {
  16. +   sg[i] <- SoundSpeed1(K[i],P,h)
  17. +   sd[i] <- SoundSpeed2(K[i],P,h)
  18. +   ss[i] <- SoundSpeed(K[i])
  19. +   d[i] <- DensityOfAir(K[i],P,0)
  20. + }
  21. > windows(2.5,2.5)
  22. > par(mar=c(3,3,2,1),mgp=c(1.5,0.5,0))
  23. > ylim <- range(c(sd-oS,sg-oS,ss-oS))
  24. > plot(t,sd-oS,type="l",col="red",ylim=ylim,xlab="℃",ylab="音速値の差(m/s)")
  25. > par(new=TRUE)
  26. > plot(t,sg-oS,type="l",col="blue",ylim=ylim,xlab="",ylab="")
  27. > par(new=TRUE)
  28. > plot(t,ss-oS,type="l",col="green",ylim=ylim,xlab="",ylab="")
  29. > abline(v=0,col="gray60")
  30. > legend(-10,0.8,c("空気密度","気体定数","普通"),col=c("red","blue","green"),
  31. +        lty=c(1,1,1),cex=0.7,bty="n")
  32. > title("音速計算値の差(2)",cex.main=0.8)
  33. > range(d-oD*1000)
  34. [1] 0.0302398 0.3193381

大気中の音速

  前述の SoundSpeed1() を使って、気温、気圧、湿度と、音速の関係を描いてみました。
気温が -60、0、20、60 ℃
気圧が 870から108380 hPa
湿度が 0、50、100 %
について見て見ます。
 この範囲で、もっとも音速が遅いのは 292.98 m/s (-60℃、全気圧、0%)、もっとも速いのは 382.71 m/s (60℃、870hPa、100%) でした。
  一般的には、気体、液体、固体順で振動を速く伝えるので密度が増すと速くなりそうに思えます。
  気体は、逆のようです。これは、真空に近づくと速くなることになり、良くわかりません。

  気体は、物質によらず、1 mol が占める体積は同じです。物質によらず、同じ容積には同じ分子数が含まれます。このことから2つのことが言えます。
  1つは、構成する物質の分子量が大きければ比重が大きくなると言うことです。
  もう一つは、分子間の間隔は、物質によらず、一定だと言うことです。

  まず、比重、あるいは密度について考えます。同じ温度、同じ圧力で、比重が大きいことは分子が重いことを示しています。分子間の間隔は同じです。軽い分子の方が速く伝わることが湿度について図を見るとわかります。乾燥空気の分子量28.966に対して、水は18です。水の割合の多い空気は、比重が小さくなります。
  空気は、温度が高いほど水分を多く含むことができます。

  分子間の間隔は、温度と圧力で決まり、構成する物質には依存しません。
  つまり、湿度の影響はありません。
  温度が高くなると、速くなることから、分子間の間隔が広いと、速くなるようです。
  想定範囲では、もっとも分子間の間隔が狭いのは、(-60℃、1013.25hPa)、もっとも広いのは、 (60℃、870hPa) です。

  
  左図は、気温、気圧と、1mol の気体の占める体積の関係です。
  分子間の間隔は、この体積に比例します。
  0℃、1atm のモル体積を以下のように定義します。

  1. MolarVolume <- 22.413968 * (10^(-3))

  この値をもとに、以下のように計算しました。

  1. # K(K)、P(Pa)のモル体積(立方メートル/mol)
  2. m3MolarVolume <- function(K,P)
  3. {
  4.   # 定数は 273.15K、101325Paの値。
  5.   # 温度に比例し、圧力に反比例。
  6.   MolarVolume * (K/273.15) * (101325/P)
  7. }

  最小、最大は、それぞれ 0.01635198 m3 と 0.03551235 m3 です。
  この値で、平均分子量を割れば、気体の密度です。
  音速の計算式の分母が、密度であることから、この体積に音速は比例します。

  想定範囲では、0℃で、気圧によって 8.16 リットル変化します。1013.25hPaで、温度によって 9.85 リットル変化します。

2つの音速の計算式

  先頭に上げた wikipedia の音速を計算する2つの式について考えます。

  したがって、本来同じ値を算出するはずです。
  この2つの式は、重さを g ではなく kg の数値で計算すると m/s の速さが計算されます。
  M も分子量ではなく、1モルの重さで、 kg で与えます。

パソコンと音速

  パソコンには、録音再生機能が標準的についています。
  これは、A/D、D/A変換を行う機能で、付いている振動子の精度の時間と電圧の測定器です。
  以下のようなことが考えられます。

  1. 反射波を検出して距離を測る
  2. 距離の分かった反射波から気温湿度を測る
  3. 唸りから音速を測る
  4. 唸りから気温湿度を測る

  おそらくどんなパソコンでも、サンプリングレート 48,000Hz は可能と考えられます。
  サンプル間隔は、1/48,000 秒です。
  15℃で、音速を340 m/s と仮定すると、サンプリング間隔は 7.08 mm に相当します。
  マイクやスピーカーには厚みがあり、どこを取れば良いかわからないので、数cmの誤差は最初からあります。
  数cm 程度の誤差で距離を測定できそうですが、知りうる音速データが m オーダの精度しかありません。
  まず、実測で音速の計算式を準備する必要があります。

  マイク、スピーカが可聴域を想定したものであり、聞こえない音を出して差し障りがっても困るので、平均的な可聴範囲の周波数を使います。
  この場合、スピーカーから出た音かどうか区別がつくような工夫が必要です。


  
 

 


mikeo_410@hotmail.com