[an error occurred while processing this directive]
Вот багу нашел в функции rfft() в аналоговской библиотеке функций (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено homekvn 10 августа 2006 г. 17:04

Коротко: rfft(x, X) берет действительный входной сигнал x и вычисляет половину его спектра (поскольку спектр действительного сигнала симметричный). Т.е. если x это массив длиной 256, то выходной сигнал X будет длиной 128 комплексных отсчетов (или 256 действительных). Вот в этом-то и бага. Они не включили отсчет на частоте 256/2. Ясное дело, что он ручками лекго считается:

x[N/2] = sum(x[k]*(-1)^k), k = 1..N

Но они этого не сделали и не написали об этом. А так ведь и забыть можно. А можно даже и не заметить, поскольку есть куча случаев, при которых этот отсчет равен нулю.

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

Вобщем, на мой взгляд, это непорядок.



Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 
URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание