[an error occurred while processing this directive]
|
Конечно можно и проще в смысле реализации, но не математики (оптимальная фильтрация\задача оценки параметров):
1800*1,2 = 2160;
2160-1800 = 360;
ПФ с частотой среза 1800+-(360/2) = 1620Гц/1980Гц.
F(t) = f(t)*e^(i*2*pi*1620*t) - реализовать в цифре, а то какая у Вас там частота дискретизации?;
БПФ на 1024 точки для разрешения 1Гц;
(или комплексный БПФ, если фаза интересна);
лишние точки отбрасываем 512-360 = 2 по 152 - многовато конечно. Спектр амплитуд размазанный получится, но частоту будет видно. Если не устроит, то:
БПФ(радикс2 или 4) на 256 точки и ДПФ на 360-256=44точки.
Объединяем результаты и готово.
Хошь на экране смотри спектрограммы всякие или экстремум ищи.
Если реальное время не нужно, то определяешь для реального БПФ (все, конечно, от реализации зависит, но порядок цифр, полагаю, будет такой) массив для синуса табличного на 2 по 1024/4 точки и выборок на 1024. Далее получаешь два массива по 1024/2+1, по которым строишь спектр амплитуд. Разрядность 8 бит не подойдёт. Может флоат16(32) библиотекой для авра какой воспользоваться надо будет. А на дсп милое дело.
E-mail: info@telesys.ru