Теория цифровой техники

Теория цифровой техники (6)

Суббота, 23 апреля 2011 23:32

Быстрое Преобразование Фурье

Автор

АЛГОРИТМ БЫСТРОГО ВЫЧИСЛЕНИЯ ДИСКРЕТНОГО ПРЕОБРАЗОВАНИЯ ФУРЬЕ.

Очень важно понимать, что БПФ, это не самостоятельное вычисление, а всего лишь быстрый алгоритм вычисления Дискретного преобразования Фурье. К примеру, для вычисления ДПФ в лоб, вектора длиной 8, необходимо 64 комплексных умножения. Для его же вычисления по алгоритму БПФ нужно всего лишь восемь комплексных умножений!!! И это не предел, если внимательно проанализировать схему вычислений, можно убрать еще 4 тривиальных умножений на 1 и i!!!

Несколько раз сталкивался с необходимостью объяснить стандартные логические битовые операции применительно к командам среднего семейства Microchip. Если человек хочет научиться основам программирования мк, но не сталкивался никогда с электроникой и цифровой техникой, это тяжелый случай.  Эта статья для такой категории ищущих людей.

Из моего опыта,  определенную трудность  доставляет понять, для чего и что это такое AND;COM; IOR;XOR.

Рассмотрим в том же порядке:

alt Это довольно просто. Если лень читать, просто скачайте прилагаемые примеры и посмотрите, а я пока продолжу.

Для чего это надо?

Отсчитывать время программно, в теле основной программы - не самый лучший способ. Чтобы отсчитать секунду, программа только и будет делать, что считать эту самую секунду. 

Всё это время Ваше устройство не будет реагировать на кнопки, не будет выводить данные на индикатор, и вообще ничего не будет делать, чтобы не сбиться со счёта. А отсчитывать время надо, и хочется - поточнее.

 

alt1.Общие понятия

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

Различают две формы представления двоичных чисел: «с фиксированной запятой» и «с плавающей запятой». С фиксированной запятой, надеюсь, эту форму уже многие знают, но позволю себе напомнить коротко (для определения правил игры, работаем только с двухбайтовыми числами):

 

 

altНам часто задают вопросы, как научится писать программы практически с нулевого уровня, поэтому инициативная группа сайта chipmk.ru решила создать краткий курс для первичного обучения. Нужно уточнить, мы не считаем себя большими специалистами в этой области. Практически все самоучки. Надеемся, что наши знания помогут другим начать.
Задача ставится: объяснить основные понятия и помочь сделать первый шаг в этот увлекательный мир. Возможно, последует и дальнейшее развитие этого проекта.

 

 

altОпределимся, как будем располагать числа в разрядной сетке. Вариантов много. А раз так, зачем, что-то изобретать, есть международный стандарт предоставления чисел IEEE 754. «Standard for Binary Floating-Point Arithmetic». Переводится  «Стандарт для двоичной aрифметики с плавающей запятой». Вот и разберемся с ним, в общих понятиях, необходимых для нас..

     Стандарт IEEE 754 представляет числа с одинарной точностью (float) и с двойной точностью (double). Для записи числа в формате с плавающей запятой одинарной точности требуется тридцатидвухбитовое слово.


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2020 © ChipMK.ru

ChipMk.ru Яндекс Метрика