Анализ спектра методом дискретного преобразования Фурье (161)

Анализ спектра периодической функции на МК-161 методом дискретного преобразования Фурье. Ссылка

File attachments: 
AttachmentSize
Binary Data DPF.mkp201 bytes

Comments

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

Программа использует десятичные регистры для хранения отсчётов, хоть и занимает всего одну страницу памяти, но на МК-61 не будет работать из-за нехватки регистров.

В справочнике Дьяконова были варианты программ ДПФ но они требовали либо последовательного ввода всех отсчётов для вычисления каждой гармоники спектра из-за ограниченного числа регистров, либо максимума в 11 отсчётов, это, на мой взгляд довольно неудобно.

МК-161 имеет 1000 десятичных регистров и позволяет размещать в памяти массивы до 985 отсчётов, остаётся ввести отсчёты в память, запустить программу и получить результаты. Кстати, программу можно использовать для анализа спектра по отсчётам, заранее записанным в память, начиная с 15-го регистра, при этом в регистр Р7 нужно записать количество отсчётов и запустить программу с адреса 15.

Существует эмулятор ЭКВМ, обнаруженные баги исправляются буквально за считанные дни.

Глядя на название темы, я подумал, что речь идёт об оцифровке сигнала с АЦП МК161 и последующем БПФ :)

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Это тоже возможно, но, к сожалению, мне не совсем ясно как работает БПФ. Сейчас почитываю статейки на эту тему. Программу составлял по формулам из справочника Дьяконова.

Если программку переработать под анализ спектра оцифрованного массива с АЦП, то рассчитывать спектр из 256 отсчётов она будет очень медленно :(

я когда-то на микрочиповском микроконтроллере с подцепленной 2Кб статическим ОЗУ делал преобразование Хартли, в качестве практики. Считал спектр оцифрованного звукового сигнала. Медленно, конечно, но считало.

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Я тоже на серии PIC24 реализовал когда-то на ассемблере БПФ на 64 точки в реально работающем изделии. Считал 460 мкс на скорости 16 MIPS

Мои программируемые калькуляторы:
Б3-21, Б3-34, МК-61, МК-52, МК-85
CASIO: cfx-9850GB+, fx-9750G+, fx-9750GII, fx-9860G, Algebra fx-2.0, fx-5800P, fx-7400G+
HP: 50G, 48G, 35s
TI: Nspire-CAS, Voyage-200, 89Titanium
SHARP EL-9600G

460 мкс - впечатляет!

---------------------------
Истина где-то рядом
www.litres.ru/vitaliy-samurov/dozvonitsya-do-devy/

Пришлось переписать на ассемблер, поскольку на ANSI C микроконтроллер при максимальной оптимизации по скорости считал БПФ 2.4 мс, а по ТЗ требовалась скорость модуляции 1000 бод. Да и в нём нет дополнительного набора команд для цифровой обработки сигналов. Со спец. командами в сигнальном процессоре можно ещё быстрее, но чип будет на порядок дороже.

Мои программируемые калькуляторы:
Б3-21, Б3-34, МК-61, МК-52, МК-85
CASIO: cfx-9850GB+, fx-9750G+, fx-9750GII, fx-9860G, Algebra fx-2.0, fx-5800P, fx-7400G+
HP: 50G, 48G, 35s
TI: Nspire-CAS, Voyage-200, 89Titanium
SHARP EL-9600G