УПРАЖНЕНИЯ ДЛЯ ПРОГРАММИРОВАНИЯ

ГЛАВА 4: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЦОС

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

1. Напишите программу и получите с её помощью 256 отсчётов синусоидальной выборки. Амплитуда синусоиды равна 1. Частоту выберете такой, чтобы в интервале 256 отсчётов умещалось ровно 3 периода данной синусоиды. Каждый отсчёт найденной последовательности должен быть представлен в формате с одинарной точностью. Полученный сигнал назовём x[ ], чтобы ссылаться на него в следующих упражнениях.

2. Прибавьте константу k = 300 000 к каждому отсчёту последовательности.

3. Вычтите эту же константу k из каждого отсчёта. Назовём полученную (восстановленную) последовательность y[ ].

4. Найдите разность (ошибку восстановления) между последовательностями x[ ] и y[ ]. Назовём полученную последовательность d[ ].

5. Отобразите на графике восстановленную последовательность y[ ] и последовательность ошибки d[ ].

6. Повторите операции, проделанные в задачах 1…5, для k = 3 000 000.

7. Повторите операции, проделанные в задачах 1…5, для k = 30 000 000.

8. Ответьте на вопросы:

а. «Если два слагаемых в формате с плавающей точкой сильно различаются по абсолютной величине, то ошибка квантования <_______________> слагаемого искажает информацию, содержащуюся в <______________> слагаемом».

б. При выполнении упражнения 7 мы обнаружили, что информация в восстановленном сигнале полностью теряется при значениях k = 30000000 и выше. Предполагая, что амплитуда сигнала уменьшается до 0.001, определите величину k, после превышения которой информация в восстановленном сигнале полностью исчезает?

в. Как изменится максимально допустимое значение константы k, после превышения которого информация в восстановленном сигнале полностью теряется, если от одинарной точности перейти к двойной точности представления чисел?