по кажому из 79 тонов сигнала
do i=1,79
рассчитать мощность сигнала в полосе бина 6.5 Гц:
xsig=s8(itone(i),i)**2
рассчитать мощность шума как среднюю мощность оставшися 7 бинов с полосы сигнала 50 Гц:
xnoi=(sum(s8(0:7,i)**2) - xsig)/7.0
результат: номер тона, мощность сигнала в полосе 6.5 Гц, мощность шума в полосе 6.5 Гц
1 3.17101670E+11 139573168.
2 3.22787049E+11 94709848.0
3 3.24869226E+11 171652080.
4 3.11767204E+11 162327280.
5 3.13652281E+11 133578552.
6 3.20795148E+11 108821504.
7 3.26210978E+11 101491000.
8 3.22734621E+11 103505616.
9 3.29595617E+11 60025632.0
10 3.30159686E+11 59576332.0
11 3.30075242E+11 59128488.0
12 3.29971696E+11 58919476.0
13 3.30033529E+11 57723084.0
14 3.29485124E+11 60517012.0
15 3.25583733E+11 82444088.0
16 3.33821575E+11 110618904.
17 3.24901863E+11 85742896.0
18 3.20578978E+11 97974176.0
19 3.13905840E+11 137591488.
20 3.21302069E+11 94205192.0
21 3.21883406E+11 91855592.0
22 3.12808309E+11 105308040.
23 3.22854224E+11 76064344.0
24 3.22656174E+11 115568056.
25 3.23704816E+11 74271624.0
26 2.96372437E+11 15103970.0
27 3.26326059E+11 70625024.0
28 3.25758288E+11 85320040.0
29 3.21441726E+11 175665888.
30 3.12409162E+11 158056224.
31 3.22680881E+11 213200448.
32 3.14221560E+11 152219440.
33 3.26260163E+11 107848416.
34 3.22702475E+11 121803904.
35 3.23796271E+11 89347160.0
36 3.24016603E+11 95750792.0
37 3.24081844E+11 132109072.
38 3.23282305E+11 94441176.0
39 3.25298127E+11 171238464.
40 3.12243061E+11 158185712.
41 3.14225132E+11 134865232.
42 3.21235943E+11 108096384.
43 3.24403134E+11 86351904.0
44 3.24797039E+11 92962688.0
45 3.25730173E+11 110131056.
46 3.23715203E+11 89685208.0
47 3.20567640E+11 114790488.
48 3.20981664E+11 96607176.0
49 3.20467796E+11 104698536.
50 3.22978087E+11 96581632.0
51 3.22934276E+11 92729992.0
52 3.24517986E+11 100750376.
53 3.25484446E+11 77258776.0
54 2.97327198E+11 45252812.0
55 3.16668084E+11 115121464.
56 3.29061564E+11 83415240.0
57 3.21680474E+11 176327024.
58 3.11875404E+11 160538240.
59 3.22584445E+11 137174416.
60 3.13744425E+11 114104592.
61 3.24406936E+11 70854336.0
62 2.98870899E+11 12938164.0
63 3.23653534E+11 114885912.
64 3.28374256E+11 79162544.0
65 3.16433531E+11 140378816.
66 3.22056946E+11 141685312.
67 3.20446366E+11 111556560.
68 3.22814247E+11 76867272.0
69 3.25165974E+11 98469360.0
70 2.97500082E+11 11287718.0
71 3.25329125E+11 71157480.0
72 3.24351689E+11 98301720.0
73 3.23342565E+11 119124048.
74 3.23207758E+11 92974880.0
75 3.25330633E+11 170755504.
76 3.12322064E+11 156562896.
77 3.14470629E+11 135393328.
78 3.21232634E+11 106956712.
79 3.15566916E+11 149105024.
вычислить соотношение мощности сигнала к мощности шума и просуммировать его по всем 79 тонам:
if(xnoi.lt.0.01) xnoi=0.01 ! safe division and better accuracy
if(xnoi.lt.xsig) then; xsnr=xsig/xnoi; else; xsnr=1.01; endif
xsnrtmp=xsnrtmp+xsnr
enddo
результат: 315962.313
вычислить среднее соотношение сигнал/шум по 79 тонам: xsnr=xsnrtmp/79.0-1.0
результат: 3998.52295
вычислить SNR в дБ и привести его от полосы шума 6.5 Гц к полосе шума 2500 Гц: xsnr=10.0*log10(xsnr)-26.5
результат: 9.51899624 дБ
калибровка SNR по симулированным звуковым файлам: if(xsnr.gt.7.0) xsnr=xsnr+(xsnr-7.0)/2.0
результат: 10.7784939
Социальные закладки