Кодирование звуковой информации.




Физически звук представляет собой волновые колебания давления в той или иной среде. Каковы бы ни были физические характеристики колебаний, в данном случае важно то, что звук представляет собой нечто неделимое на части (непрерывное), пробегающее в пространстве и времени. Чтобы записать звук на какой-нибудь носитель можно соотнести его уровень (силу) с какой-нибудь измеряемой характеристикой этого носителя. Так, например, степень намагниченности магнитной ленты в различных ее местах зависит от особенностей звука, который на нее записывался. Намагниченность может непрерывно изменяться на протяжении ленты, подобно тому, как параметры звука могут меняться в воздухе. Т.е. магнитная лента прекрасно справляется с задачей хранения звука. И хранит его в так называемой аналоговой форме, когда значения изменяются непрерывно (плавно), что близко к естественному звуку.

 

Но как хранить звук на компьютере. Здесь любая информация представлена в цифровой форме. Данные должны быть представлены числами, а, следовательно, информация в компьютере дискретна (разделена). Для того, чтобы записать звук на цифровой носитель информации (например, жесткий диск), его подвергают так называемой оцифровке, механизм которой заключается в измерении параметров звука через определенные промежутки времени (очень малые).

Дискретизация и квантование

 

При преобразовании звуковой информации в цифровую форму ее подвергают дискретизации и квантованию. Дискретизация заключается в замерах величины аналогового сигнала огромное множество раз в секунду. Полученной величине аналогового сигнала сопоставляется определенное значение из заранее выделенного диапазона: 256 (8 бит) или 65536 (16 бит). Глубина кодирования звука - это количество информации, которое необходимо для кодирования дискретных уровней громкости цифрового звука.

 

Если известна глубина кодирования, то количество уровней громкости цифрового звука можно рассчитать по формуле N = 2I. Пусть глубина кодирования звука составляет 16 битов, тогда количество уровней громкости звука равно:

 

N = 2I = 216 = 65 536.

 

В процессе кодирования каждому уровню громкости звука присваивается свой 16-битовый двоичный код, наименьшему уровню звука будет соответствовать код 0000000000000000, а наибольшему - 1111111111111111. Привидение в соответствие уровня сигнала определенной величине диапазона и есть квантование.

Понятно, что как бы часто мы не проводили измерения, все равно часть информации будет теряться. Однако и понятно, что чем чаще мы проводим замеры, тем точнее будет соответствовать цифровой звук своему аналоговому оригиналу.

Также, чем больше бит отведено под кодирование уровня сигнала (квантование), тем точнее соответствие.

С другой стороны, звук хорошего качества будет содержать больше данных и, следовательно, больше занимать места на цифровом носителе информации.

В качестве примера можно привести такие расчеты. Для записи качественной музыки аналоговый звуковой сигнал измеряют более 44 000 раз в секунду и квантуют 2 байтами (16 бит дает диапазон из 65536 значений). Т.е. за одну секунду записывается 88 000 байт информации. Это равно (88 000 / 1024) примерно 86 Кбайт. Минута обойдется уже в 5168 Кбайт (86*60), что немного больше 5 Мб.

 

12. Машинные коды

Все операции в ЭВМ выполняются над числами, представленными специальными машинными кодами. Их использование позволяет обрабатывать знаковые разряды чисел так же, как и значащие разряды, а также заменять операцию вычитания операцией сложения.

Различают следующие коды двоичных чисел:

§ прямой код (П),

§ обратный код (ОК),

§ дополнительный код (ДК).

 

Прямой код

Прямой код двоичного числа образуется из абсолютного значения этого числа и кода знака (0 или 1) перед его старшим числовым разрядом.

Пример.

А10 = +10; А2 = +1010; [А2]п = 0|1010

В10 = –15; В2 = –1111; [В2]п = 1|1111

Обратный код

Обратный код двоичного числа образуется по следующему правилу. Обратный код положительных чисел совпадает с их прямым кодом. Обратный код отрицательного числа содержит единицу в знаковом разряде числа, а значащие разряды числа заменяются на инверсные, т.е. нули заменяются единицами, а единицы нулями.

Пример.

А10 = +10; А2 = +1010; [А2]ок = [А2]п = 0|1010

В10 = –15; В2 = –1111; [В2]ок = 1|0000

Свое название обратный код получил потому, что коды цифр отрицательного числа заменены на инверсные. Наиболее важные свойства обратного кода чисел:

§ сложение положительного числа С с его отрицательным значением в обратном коде дает т.н. машинную единицу МЕок=1|11…11, состоящую из единиц в знаковом и в значащих разрядах числа;

§ нуль в обратном коде имеет двоякое значение. Он может быть как положительным числом – 0|00…00, так и отрицательным 1|11…11. Значение отрицательного числа совпадает с МЕок. Двойственное представление 0 явилось причиной того, что в современных ЭВМ все числа представляются не обратным, а дополнительным кодом.

 

§ Дополнительный код

Дополнительный код положительных чисел совпадает с их прямым кодом. Дополнительный код отрицательного числа представляет собой результат суммирования обратного кода числа с единицей младшего разряда (20 – для целых чисел, 2 – для дробных)

Пример.

А10 = +10; А2 = +1010; [А2]дк = [А2]ок = [А2]п = 0|1010

В10 = –15; В2 = –1111; [В2]дк = [В2]ок + 20 = 1|0000+1 = 1|0001

Основные свойства дополнительного кода:

• сложение дополнительных кодов положительного числа С с его отрицательным значением дает т.н. машинную единицу дополнительного кода:

МЕдк=МЕок + 20 = 10|00…00,

т.е. число 10 (два) в знаковых разрядах числа;

• дополнительный код называется так потому, что представление отрицательных чисел является дополнением прямого кода чисел до машинной единицы

МЕдк.

 

13. Сложение, вычитание недесятичных чисел.

Для того чтобы выполнять арифметические действия над числами, эти числа должны быть записаны в одной и той же системе счисления. Остальное рассмотреть на примерах. ☻

 

14. Естественная форма

 

В форме с фиксированной запятой в разрядной сетке выделяется строго определенное число разрядов для целой и для дробной частей числа. Левый (старший) разряд хранит признак знака (0 – "+", 1 – "-") и для записи числа не используется.

Сама запятая никак не изображается, но ее место строго фиксировано и учитывается при выполнении всех операций с числами. Независимо от положения запятой в машину можно вводить любые числа, т.к.

 

A = [A] · KА,

где А – произвольное число, [A] – машинное изображение числа в разрядной сетке, KА - масштабный коэффициент.

 

Естественная форма числа в неявном, условном виде реализуется формулой:

т.е. число записывается только с помощью набора значащих цифр xj без явного указания их весов и знаков сложения между ними. Отсчет ведется от точки, которая обычно фиксируется между целой и дробной частями числа.

 

С фиксированной запятой числа изображаются в виде последовательности цифр с постоянным для всех чисел положением запятой, отделяющей целую часть от дробной(например, 32,54; 0,0036; –108,2). Форма представления чисел с фиксированной запятой упрощает аппаратную реализацию ЭВМ, уменьшает время выполнения машинных операций, однако при решении задач на машине необходимо постоянно следить за тем, чтобы все исходные данные, промежуточные и окончательные результаты находились в допустимом диапазоне представления. Если этого не соблюдать, то возможно переполнение разрядной сетки, и результат вычислений будет неверным. От этих недостатков в значительной степени свободны ЭВМ, использующие форму представления чисел с плавающей точкой, или нормальную форму. В современных компьютерах форма представления чисел с фиксированной запятой используется только для целых чисел.

 

Нормальная форма

 

С плавающей запятой (ПЛЗ) числа изображаются в виде:

 

X = ± M×P ±r,

 

где M - мантисса числа (правильная дробь в пределах 0,1 ≤ M < 1), r - порядок числа (целое), P - основание системы счисления. Например, приведенные выше числа с фиксированной запятой можно преобразовать в числа с плавающей запятой так: 0,3254×102, 0,36×10-2, –0,1082×103.

 

Нормализованная экспоненциальная запись числа - это запись вида a= m*Pq, где q - целое число (положительное, отрицательное или ноль), а m - P-ичная дробь, у которой целая часть состоит из одной цифры. При этом m - мантиссa числа, q - порядк числа.

 

Tо есть нормальная форма реализуется формулой:

 

Нормальная форма представления имеет огромный диапазон чисел и является основной в современных ЭВМ.

 

 

При представлении чисел с плавающей запятой часть разрядов ячейки отводится для записи порядка числа, остальные разряды - для записи мантиссы. По одному разряду в каждой группе отводится для изображения знака порядка и знака мантиссы. Для того, чтобы не хранить знак порядка, используется так называемый смещённый порядок, который рассчитывается по формуле 2(a-1) + ИП, где a - количество разрядов, отводимых под порядок, ИП - истинный порядок.

 

В конкретной ЭВМ диапазон представления чисел с плавающей запятой зависит от основания системы и числа разрядов для представления порядка. При этом у одинаковых по длине форматов чисел с плавающей запятой с увеличением основания системы счисления существенно расширяется диапазон представляемых чисел. Точность вычислений при использовании формата с плавающей запятой определяется числом разрядов мантиссы. Она увеличивается с увеличением числа разрядов.

 

Алгоритм представления числа с плавающей запятой:

перевести число из p-ичной системы счисления в двоичную;

представить двоичное число в нормализованной экспоненциальной форме;

рассчитать смещённый порядок числа;

разместить знак, порядок и мантиссу в соответствующие разряды сетки.

 

При представлении информации в виде десятичных многоразрядных чисел каждая десятичная цифра заменяется двоично-десятичным кодом. Для ускорения обмена информацией, экономии памяти и удобства операций над десятичными числами предусматриваются специальные форматы их представления: зонный (распакованный) и упакованный. Зонный формат используется в операциях ввода-операций. Для этого в ЭВМ имеются специальные команды упаковки и распаковки десятичных чисел.

 

Пример записи числа в нормальной форме:

A = 7D08,816

B = -7D08,816

mA = 0,7D088 PxA = 40+4 = 44

mB = -0,7D088 PxB = 40+4 = 44

A = 0 100 0100 0111 1101 0000 1000 1000 0000 A = 44D0880 > 0

B = 1 100 0100 0111 1101 0000 1000 1000 0000 B = C4D0880 < 0

 

15. Действия над числами, представленных в естественной форме

(для компьютера - это целые числа)

При сложении кодов целых чисел нужно учитывать следующие положения.

Числа хранятся в дополнительном коде.

В сумматоре числа складываются вместе со знаками, при этом образуется знак результата.

При сложении чисел с разными знаками единица переноса из знакового (старшего) разряда стирается.

Пример. Дано А=254, В=175. Найти сумму чисел при разных знаках слагаемых в 16-разрядном формате.

А = 25410 = FE16 = 111111102

В = 17510 = AF16 = 101011112

Машинные коды этих чисел с разными знаками представим в таблицах.

254 -254

ПК 0 000000011111110 1 000000011111110

ОК 0 000000011111110 1 111111100000001

ДК 0 000000011111110 1 111111100000010

175 -175

ПК 0 000000010101111 1 000000010101111

ОК 0 000000010101111 1 111111101010000

ДК 0 000000010101111 1 111111101010001

 

Выполним действия (во всех случаях выполняется сложение в дополнительном коде!).

С1 = А + В

А 0000000011111110

В 0000000010101111

С1 0000000110101101

 

Проверка: С1 = 1101011012 = 28+27+25+23+22+20 = 256+128+32+8+4+1 = 42910

 

 

С2 = А - В = А + (-В)

А 0000000011111110

-В 1111111101010001

С2 10000000001001111

Перенос из знакового разряда исключаем.

 

Проверка: С2 = 10011112 = 26+23+22+21+20 = 64+8+4+2+1 = 7910

 

С3 = В - А = В + (-А)

В 0000000010101111

-А 1111111100000010

С3 1111111110110001

 

Число С3 отрицательное в дополнительном коде.

 

Проверка: получим прямой код числа С3.

ДК 1111111110110001

ОК 1111111110110000

ПК 1000000001001111

С3 = -10011112 = -(26+23+22+21+20)= -(64+8+4+2+1) = -7910

 

С4 = -А - В = (-А) + (-В)

-А 1111111100000010

-В 1111111101010001

С4 11111111001010011

Перенос из знакового разряда исключаем.

Число С4 отрицательное в дополнительном коде.

Проверка: получим прямой код числа С4.

ДК 1111111001010011

ОК 1111111001010010

ПК 1000000110101101

С4 = -1101011012 =-(28+27+25+23+22+20)=-(256+128+32+8+4+1) =- 42910

 

16. Действия над числами, представленными в нормальной форме.

При сложении чисел, представленных в нормальной форме, необходимо учитывать:

Числа в нормальной форме хранятся в памяти в прямом коде с нормализованными мантиссами.

Сложение кодов чисел производится путем сложения мантисс только при одинаковых порядках (характеристиках) слагаемых. За общий выбирается наибольший порядок. Выравнивание порядков слагаемых осуществляется изменением мантиссы меньшего числа.

Результаты в прямом коде нормализуются.

 

Пример. Дано А = 15 7/8; B = 5/16. Найти сумму чисел при разных знаках слагаемых.

Вычисления с числами в нормальной форме удобнее выполнять в шестнадцатеричной системе счисления, разряды чисел 4 байта (32 двоичных разряда).

A = F,E16; B = 0,516

 

 

1. Нормализация мантисс и определение характеристик:

mA = 0,FE PxA = 40 + 1 = 41

mB = 0,5 PxB = 40 + 0 = 40

2. Выравнивание характеристик:

PxB = 41 => mB = 0,05

3. Дополнительные коды мантисс отрицательных чисел.

-mA = 1.00 - 0,FE = 0,02

-mB = 1.00 - 0,05 = 0,FB

4. Коды чисел:

а) в шестнадцатеричном представлении

A = 41FE0000

B = 41050000

-A = C1020000

-B = C1FB0000

б) в двоичном представлении

A = 0 1000001 1111 1110 0000 0000 0000 0000

B = 0 1000001 0000 0101 0000 0000 0000 0000

-A = 1 1000001 1111 1110 0000 0000 0000 0000

-B = 1 1000001 0000 0101 0000 0000 0000 0000

Примечание: для записи отрицательных кодов чисел удобнее сначала записать код в двоичном представлении, затем преобразовать его в шестнадцатеричное.

Важно: помните, что числа в нормальной форме представления хранятся в прямом коде!

5. Выполнение действий.

C1 = A + B

mA FЕ0000

mB 050000

mC1 1030000

Так как слагаемые с одинаковым знаком, то перенос единицы из старшего разряды мантиссы означает нарушение нормализации мантиссы влево.

Нормализация мантиссы: mC1 = 0,103 PC1 = 41 + 1 = 42

Код числа C1 = 42103000 или 0 1000010 0001 0000 0011 0000 0000 0000

Проверка: С1 = 10,316 = 16 3/16 10

 

C2 = -A - B = - (A + B)

Так как числа хранятся в прямом коде, нет необходимости выполнять двойные преобразования, можно взять C2 = -C1.

Код числа С2 = 1 1000010 0001 0000 0011 0000 0000 0000 или C2103000

С2 = -10,316 = -16 3/16 10

 

C3 = A – B

mA FЕ0000

-mB FB0000

mC3 1F90000

Так как слагаемые с разными знаками, то единица переноса из старшего разряда является признаком положительного результата и стирается.

Код числа С3 = 41F90000 или 0 1000001 1111 1001 0000 0000 0000 0000

С3 = F,916 = 15 9/19 10

 

 

C4 = B – A

-mA 0200000

mB 0500000

-mC4 0700000

Так как слагаемые с разными знаками и отсутствует перенос из старшего разряда мантиссы, то результат отрицательный в дополнительном коде и должен быть преобразован в прямой код.

mC4 = 1,00 - 0,07 = 0,F9 PmC4 = 41

Код числа С4 = C1F90000 или 1 100 0001 1111 1001 0000 0000 0000 0000

C4 = -F,916 = -15 9/19 10



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: