Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2012, 16:42   #1
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию Частота и амплитуда FFT

Здравствуйте, возникла необходимость провести спектральный анализ сигнала.
Взял библиотеку AlgLib с реализацией дискретного преобразования Фурье.
Сгенерировал тестовый сигнал Sin(x) при x от 0 до 1024. Подал его на вход функции FFT. Получил преобразование.
Дальше нужно получить частоту гармоник и их амплитуду.
для получения частоты нашел 2 формулы но не могу определится какая правильная.
вот формула 1: Frq = i * (samples / nFFT / 2.0f);
вот формула 2: Frq = samples * fd / f.Length;

где i - номер элемента массива, полученного после FFT
samples - действительное значение i-го элемента
nFFT - число элементов FFT
fd - частота дискретизации в моем случае 1024

но график получается непонятный ... все значения стремятся к 0.
Менял функцию Sin(x) на Sin(x/2) результат один и тотже.

Вопрос:
Подскажите пожалуйста как правильно получить из массива, полученного после FFT, частоты всех гармоник и их амплитуды.
И как учитывать при этом мнимые части. Или они не нужны вовсе.
Спасибо.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 15.12.2012, 17:38   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

см. в блоге.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 15.12.2012, 17:39   #3
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
см. в блоге.
а ссылочку?
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 15.12.2012, 17:49   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 15.12.2012, 17:50   #5
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

антивирь сказал что там опасное содержимое ...
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 15.12.2012, 17:59   #6
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Правильно ли я понял что частота расчитывается по формуле arctg ( Imk / Rek ); ???

с используемой формулой получилось следующее.
Почему максимальная частота отрицательная получилась???
частота - нижний график ось Х
Y - амплитуда в попугаях
Изображения
Тип файла: jpg sample.jpg (32.0 Кб, 165 просмотров)
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.

Последний раз редактировалось WorldMaster; 15.12.2012 в 18:06.
WorldMaster вне форума Ответить с цитированием
Старый 15.12.2012, 18:06   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
антивирь сказал что там опасное содержимое ...
NOD?

Цитата:
arctg ( Imk / Rek );
это фаза.

Цитата:
амплитуду сигнала для каждой гармоники получаем складывая квадраты действительной и мнимой части и извлекая из суммы корень квадратный
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 15.12.2012, 18:07   #8
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
NOD?

это фаза.
мне частота нужна
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 15.12.2012, 18:25   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

cм. внимательнее. Невнимательные даже в комментариях переспрашивали.

Код:
F(i) = i * Fд / N;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 15.12.2012, 20:50   #10
UA3GDW
Пользователь
 
Регистрация: 25.04.2010
Сообщений: 16
По умолчанию

Есть у меня спектроанализатор сигнала со звуковой карты. Частота, амплитуда отображаются на графике. Писал для себя на Delphi. Могу исходником поделиться.
Компоненты для .NET Framework и Mono: http://radiosoft.info/index.php/net-controls
UA3GDW вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с БПФ (FFT) Teddy_bear Общие вопросы C/C++ 2 13.01.2012 18:13
BASS.dll, амплитуда, спектрограмма Voxa7 Помощь студентам 2 18.11.2010 17:34
Параллельный алгоритм быстрого преобразования Фурье (fft) для C# oleeg Помощь студентам 6 19.02.2010 13:19
разъясните терминалогию,референсная частота,частота чипа,памяти,шейдерного блока Jesus2.0 Компьютерное железо 5 04.05.2009 07:54
Амплитуда Levsha100 Помощь студентам 2 07.12.2008 22:42