Дискретное преобразование Фурье
Анализ статистики быстродействия алгоритмов для различного количества входных значений данных. Характеристика различных методов реализации алгоритма быстрого преобразования Фурье, исследование их быстродействия в консольном приложении на языке Си.
| Рубрика | Программирование, компьютеры и кибернетика |
| Вид | отчет по практике |
| Язык | русский |
| Дата добавления | 18.02.2019 |
| Размер файла | 808,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное агентство железнодорожного транспорта
Омский государственный университет путей сообщения
Кафедра «Автоматика и системы управления»
ОТЧЕТ
по учебной практике
Место прохождение учебной практики
ООО «Системы комплексной энергоэффективности»
Студент гр. 26м
Котельный С.И.
« » 2017 г.
Руководитель учебной практики -
доцент кафедры «АиСУ»
Елизаров Д.А.
Омск 2017
Содержание
Введение
1. Реализация теста функции FFT
1.1 Задание
1.2 Используемые библиотеки
1.3 Алгоритм Simple radix-2 FFT
1.4 Алгоритм Simple split-radix FFT
1.5 Алгоритм Simple conjugate-pair FFT
1.6 Алгоритм Simple tangent FFT
1.7 Тесты быстродействия алгоритмов функций FFT
Заключение
Введение
Дискретное преобразование Фурье (в англоязычной литературе DFT, Discrete Fourier Transform) - это одно из преобразований Фурье, широко применяемых в алгоритмах цифровой обработки сигналов (его модификации применяются в сжатии звука в MP3, сжатии изображений в JPEG и др.), а также в других областях, связанных с анализом частот в дискретном (к примеру, оцифрованном аналоговом) сигнале. Дискретное преобразование Фурье требует в качестве входа дискретную функцию. Такие функции часто создаются путем дискретизации (выборки значений из непрерывных функций). Дискретные преобразования Фурье помогают решать дифференциальные уравнения в частных производных и выполнять такие операции, как свертки. Дискретные преобразования Фурье также активно используются в статистике, при анализе временных рядов. Существуют многомерные дискретные преобразования Фурье.
Быстрое преобразование Фурье (БПФ, FFT) - алгоритм быстрого вычисления дискретного преобразования Фурье (ДПФ). То есть, алгоритм вычисления за количество действий, меньшее чем O(N2). O(N2), требуемых для прямого (по формуле) вычисления ДПФ. Иногда под БПФ понимается один из быстрых алгоритмов, называемый алгоритмом прореживания по частоте/времени, имеющий сложность O(N*log(N)).
1. Реализация теста функции FFT
1.1 Задание
Необходимо собрать статистику работы различных реализаций функций алгоритма "Быстрое преобразование Фурье" FFT. 1 измерением будем считать измерение времени выполнения функции 1000 раз. Нужно провести 100 измерений (100 циклов, в каждом из которых делается измерение всех методов).
1.2 Используемые библиотеки
В реализации функций используются стандартные библиотеки С++:
1.2.1. <stdio.h> - стандартный заголовочный файл ввода-вывода
1.2.2. <stdlib.h> - заголовочный файл стандартной библиотеки языка С++, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие.
1.2.3. <iostream> - заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++.
1.2.4. <cmath> - заголовочный файл стандартной библиотеки языка программирования С++, разработанный для выполнения простых математических операций.
1.2.5. <complex> - заголовочный файл стандартной библиотеки языка программирования С++, в котором объявляются функции для комплексной арифметики.
1.2.6. <ctime> - заголовочный файл стандартной библиотеки языка программирования С++, содержащий типы и функции для работы с датой и временем.
1.3 Алгоритм Simple radix-2 FFT
Листинг 1 - Алгоритм функции Simple radix-2 FFT
1.4 Алгоритм Simple split-radix FFT
Листинг 2 - Алгоритм функции Simple split-radix FFT
1.5 Алгоритм Simple conjugate-pair FFT
Листинг 3 - Алгоритм функции Simple conjugate-pair FFT
1.6 Алгоритм Simple tangent FFT
Листинг 4 - Алгоритм функции Simple tangent FFT
Листинг 5 - Алгоритм функции Simple tangent FFT
1.7 Тесты быстродействия алгоритмов функций FFT
Листинг 6 - Тесты функций FFT
Листинг 7 - Тесты функций FFT
В таблице 1 представлена статистика быстродействия рассмотренных алгоритмов для различного количества входных значений данных.
Таблица 1 - Быстродействие алгоритмов
|
Кол-во точек N |
Быстродействие 1 измерения функций, мс |
||||
|
ditfft2, мс |
splitfft, мс |
conjfft, мс |
tangentfft4, мс |
||
|
8 |
16 |
17 |
9 |
10 |
|
|
16 |
54 |
63 |
30 |
31 |
|
|
32 |
152 |
186 |
85 |
95 |
|
|
64 |
339 |
505 |
222 |
237 |
|
|
128 |
962 |
1276 |
553 |
579 |
На рисунке 1 изображен график быстродействия функций, наглядно иллюстрирующий зависимость необходимого времени для 1 измерения и количества входных значений данных.
Рисунок 1 - График быстродействия функций
Заключение
фурье алгоритм приложение консольный
В ходе учебной практики были рассмотрены различные методы реализации алгоритма быстрого преобразования Фурье, а так же протестированы их быстродействия в консольном приложении на языке С++.
В процессе разработки программы была изучена лексика и синтаксис языка С++.
Размещено на Allbest.ru
Подобные документы
Разработка функции вычисления дискретного преобразования Фурье от входного вектора. Исследование свойств симметрии ДПФ при мнимых, четных и нечетных входных сигналах. Применение обратного преобразования Фурье для генерации периодической функции косинуса.
лабораторная работа [228,8 K], добавлен 13.11.2010Сигнал как некоторое средство для передачи информации. Знакомство с параллельными алгоритмами двумерного быстрого преобразования Фурье, анализ способов вычисления. Общая характеристика процессора Power5 64-bit RISC. Рассмотрение функций библиотеки MPI.
дипломная работа [1,6 M], добавлен 09.10.2013Анализ проблем, возникающих при совмещении изображений в корреляционно-экстремальных навигационных системах. Использование двумерного дискретного преобразования Фурье. Нахождение корреляционной функции радиолокационного и моделируемого изображений.
дипломная работа [3,6 M], добавлен 07.07.2012Состав и принцип работы аппаратуры. Выбор параметров корреляционного анализа и Фурье-анализа. Разработка и применение алгоритма корреляционного анализа. Реализация алгоритма Фурье-анализа на языке С++ и алгоритма корреляционного анализа на языке С#.
дипломная работа [4,6 M], добавлен 30.11.2016Характеристика сигнала и его представление в виде математического ряда. Условия ортогональности двух базисных функций. Ряд Фурье, его интегральное преобразование и практическое использование в цифровой технике для обработки дискретной информации.
реферат [69,9 K], добавлен 14.07.2009Исследование простейших радиотехнических сигналов, разложение их в ряд Фурье. Построение амплитудных спектров синуса, суммы синусов и синка. Создание в среде программирования Matlab программ с параметрами: длина сигнала, амплитуда, частота дискретизации.
лабораторная работа [990,4 K], добавлен 23.11.2014Обзор существующих методов межпроцедурного анализа. Получение входных и выходных данных подпрограмм с помощью графа алгоритма. Описание входных и выходных данных подпрограммы в терминах фактических параметров. Определение параллелизма по графу алгоритма.
учебное пособие [77,5 K], добавлен 28.06.2009Разработка приложений для измерения и сбора данных, управления измерительными приборами, анализа данных измерений и составления отчетов. Электронный цифровой двухканальный осциллограф в LabVIEW. Разложение несинусоидального напряжения в ряд Фурье.
курсовая работа [2,4 M], добавлен 03.06.2019Создание программного продукта на языке Pascal в визуальной среде программирования Borland Developer Studio в консольном приложении. Разработка типизированного файла для записи данных и их вывод на экран, добавление данных в конец файла, поиск информации.
курсовая работа [1,0 M], добавлен 04.12.2011Обзор алгоритмов решения задачи: точные методы, генетический и жадный алгоритмы. Характеристика жадного алгоритма: его описание, анализ точности приближения, вычислительной сложности. Программная реализация и проверка корректности и быстродействия.
курсовая работа [228,7 K], добавлен 14.10.2017


