Вы знаете хороший и эффективный FFT? [закрытый]

Попробуйте

->addValidator('Digits', false);

, или

->addValidator('Digits');

Вы предполагаете, что к контрольным разрядам это должно иметь длину строки так или иначе.

кроме того, мне нравится делать некоторые пользовательские сообщения об ошибках как это:

$firstName->getValidator('NotEmpty')->setMessage('Please enter your first name');

Это позволяет Вам "получать" блок проверки допустимости и затем "устанавливать" свойства его.

8
задан yan bellavance 20 October 2009 в 06:17
поделиться

5 ответов

Производительность FFTW устанавливает стандарт для БПФ произвольной длины - особенно для не степенных двух длин в двух и более измерениях. Коммерческая лицензия на FFTW составляет 5000 долларов, что может соответствовать вашему бюджету, а может и не соответствовать его.

Тем не менее, похоже, что у вас проблема с одномерной обработкой сигнала, и в этом случае у вас есть еще несколько вариантов - и если вы можете дополнительно либо заполнить, либо сэмплировать свои данные до длины, равной степени двойки, то многие библиотеки предложат разумные спектакль. Ознакомьтесь с этим списком алгоритмов БПФ, которые FFTW использовала для сравнения - многие из них бесплатны, а некоторые могут подойти. Я бы, вероятно, начал со старых добрых числовых рецептов , которые предлагают простую реализацию 2, 1D FFT бесплатно и немного набора текста - и будут очень эффективными с точки зрения памяти. человеческий голос.

3
ответ дан 5 December 2019 в 05:45
поделиться

Give the Fastest Fourier Transform in the West (FFTW) a go, The performance is good compared to others, but it is not completely free. See the details on commercial use here. Obviously being a c library you should have no problem linking it as a static library to your iphone app.

4
ответ дан 5 December 2019 в 05:45
поделиться

Я обернул библиотеку БПФ Оуры в Objective-C. Код Оуры сравним по производительности с FFTW, но полностью и совершенно бесплатный.

Этот код использует двойную точность и имеет несколько встроенных типов окон (прямоугольное, Блэквелла, Треугольник, Хэмминга). Я использую код БПФ Оуры для реализации метода Велча , который будет генерировать гораздо более гладкие спектры при просмотре с течением времени.

Проверьте это на: http://github.com/alexbw/iPhoneFFT

8
ответ дан 5 December 2019 в 05:45
поделиться

Вот ссылка на первоисточник численного программного обеспечения Оура:

http://www.kurims.kyoto-u.ac.jp/~ooura/

Я использовал многие БПФ Оура в течение многих лет, я должен послать ему как минимум "domo", и я использую его реальный radix-4 в нескольких разрабатываемых приложениях для iPad и iPhone. Я перевел код для работы с 32-битной одинарной точностью для производительности на ARM. Если посмотреть на ассемблер, созданный с помощью XCode 3.2.2, то он очень хорошо векторизуется с помощью инструкций NEON SIMD. На самом деле я был наполовину разочарован, так как сам хотел немного векторизовать код для еще большей производительности. Эти оптимизации невозможны без предварительного перевода БПФ в одинарную точность.

Хотя я использую Objective-C уже много лет, активно разрабатываю на нем и даже преподавал на нем курс объектно-ориентированного программирования, я не стал готовить такую обертку (хотя я сделал то же самое в 1992 году с другим БПФ) по причинам производительности.

Я не тестировал FFTW против FFT Ooura по крайней мере 10 лет, но когда я это делал, библиотека Ooura была быстрее для 1024-точечных реальных БПФ. Однако вполне возможно, что сейчас FFTW может работать намного лучше - но лицензировать ее и кросс-компилировать для ARM неудобно, а я всегда считал FFTW слишком громоздкой и навязчивой для моих потребностей в DSP. VecLib от Apple очень хорош, но, к сожалению, они не портировали его на iPhoneOS. Я открыл запрос функции в BugReporter, и вы тоже можете это сделать: https://bugreport.apple.com/

2
ответ дан 5 December 2019 в 05:45
поделиться

iPhone OS4 SDK будет включать фреймворк Accelerate , который (наконец) предоставит нам написанные Apple функции БПФ.

Accelerate предоставляет сотни математические функции, оптимизированные для iPhone и iPod touch, включая процедуры обработки сигналов, быстрые преобразования Фурье, базовые векторные и матричные операции, и стандартные отраслевые функции для факторизации матриц и решения систем линейных уравнений.

12
ответ дан 5 December 2019 в 05:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: