[an error occurred while processing this directive]
Вот багу нашел в функции rfft() в аналоговской библиотеке функций (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)
|
Отправлено
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
Но они этого не сделали и не написали об этом. А так ведь и забыть можно. А можно даже и не заметить, поскольку есть куча случаев, при которых этот отсчет равен нулю.
По-хорошему, чтобы не увеличивать длину выходного массива, можно было бы это значение в комплексную часть нулевого отсчета спектра пихнуть (для хранения только). Но увы... не сделано ничего.
Вобщем, на мой взгляд, это непорядок.
Составить ответ
|||
Конференция
|||
Архив
Ответы
- баги у них встречаются, например вот один из них — TAP_ (11.08.2006 09:20 195.161.95.2, 419 байт)
- У первых шарков эта функция была как надо сделана. А проц какой? — Бяка (10.08.2006 19:00 80.253.9.6, пустое)
- Кроме того, простите меня сердешного, но 129-й отсчет все-таки равен нулю, или тогда нахрен переписывать надо теорему Котельникова. — st256 (10.08.2006 18:55 217.151.231.218, пустое)
- Ну это мелочи. Они, аналоги, куда более неприятные ляпы допускали. У одной мелкосхемы, например, неправильно обозначили одну из питательных ног... — -=ВН=- (10.08.2006 18:43 193.125.71.140, пустое)
- Не понял, это Вам надо для 256 точек на входе поиметь на одну больше на выходе? — st256 (10.08.2006 18:23 217.151.231.218, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание