Между измерениями существуют интервалы, длительность которых определяется частотой дискретизации. Чем больше частота дискретизации, тем меньше интервал, тем точнее повторится форма исходного сигнала. То есть частота дискретизации определяет допустимый частотный диапазон входного сигнала. По теореме Котельникова она должна быть в два раза выше максимальной частоты измеряемого сигнала. Вот откуда взялась частота дискретизации 44 кГц. Это удвоенная частота слышимого человеком звука, теоретически.
Посмотрим еще раз на рисунок. Есть что-то неправильное. Ведь сигнал от одного замера до другого может измениться несколько раз, а это значит, что частота дискретизации выбрана гораздо ниже необходимой и в результате сигнал оцифруется с большими искажениями. Сигнал с необходимой частотой дискретизации будет выглядеть, как показано на следующем рисунке. Как видим, в этом случае разницей в замерах действительно можно пренебречь.
Объяснение:
т.к. n заранее не дано(и это все лишь фрагмент кода) то m при разных n будет получаться разный. n лежит в промежутке [-2;8]
потому, что тут m:=(l+r)div 2; при n<-2 получается индекс <0
и при n>8 в цикле индекс >7
а массив у нас всего 8 элементов
Поэтому в цикле я вывел все значения m при всех возможных значениях n
Надеюсь понятно объяснил.
при n=-2 m=0
при n=-1 m=0
при n=0 m=0
при n=1 m=1
при n=2 m=2
при n=3 m=3
при n=4 m=4
при n=5 m=5
при n=6 m=6
при n=7 m=6
при n=8 m=6
Pascal
var
a:array [0..7] of integer = (34, 16, 16, 2, 2, 0, -4, -4);
l, n, m, key, r:integer;
flag:boolean;
begin
for n:=-2 to 8 do begin
key:=-4;
L:=1;
r:=n;
flag:=false;
Repeat
m:=(l+r)div 2;
if a[m]>key then
l:=m+1
else
if a[m]=key then
flag:=true
else
r:=m-1;
until flag or (l>r);
writeln('при n=',n,' m=', m);
end;
end.