![]() |
Страницы: (9) Все « Первая ... 2 3 [4] 5 6 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
Kpeved |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 26.2.2012 Репутация: нет Всего: нет |
Pavia, а что у вас делает функция Amp(x)? вычисляет корень из суммы квадратов реальной и мнимой части?
|
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Да.
|
|||
|
||||
Kpeved |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 26.2.2012 Репутация: нет Всего: нет |
Ффу , наконецто в С переписал ... Результаты просто поражают . показатели расходятся +- 0.1 Гц при учёте того что я беру 2000 значений из нужных 4х )) . И при увеличении массива точность не меняется !
![]() Ещё раз всем спасибо за помощь . ) ![]() |
|||
|
||||
vedun |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 23.12.2010 Репутация: 2 Всего: 2 |
Раскажите на каком алгоритме вы остановились ?
|
|||
|
||||
Kpeved |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 26.2.2012 Репутация: нет Всего: нет |
vedun, на подборе частоты с помощью синуса и косинуса . Другими словами алгоритм
Pavia ) . Впринципе судить только по синусоидальному сигналу (которые я выложил выше ) нельзя , т как у гитары там набор синусоид , косинусоид и непонятно чего , но если выбирать между этим алгоритмом и параболой то он намного точнее . Самой по себе параболы быть не может - фронт и спад у неё разные + погрешности самого преобразования |
|||
|
||||
Kpeved |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 26.2.2012 Репутация: нет Всего: нет |
Блин , ещё одна небольшая проблема возникла . Взял акустику , и решил так же сделать пару записей разных нот . Делаю преобразование от этого массива по 2000 знач с ЧД 8000, и пока амплитуда максимальная ( первые пол секунды - секунда) граффик фурье просто обрезается где то на 100- 500 Гц . Пики до этого момента сохраняются , а потом просто идёт сплошной ноль (на самом деле что то в районе 0 +-5 )
вот , на скрине все видно . ![]() сам фурье брал вот отсюда http://psi-logic.narod.ru/fft/fft6.htm П.с На самом деле акустика намного громче электрики ). Микрофон был в 20см . Может он просто не воспринимает такую амплитуду и что то обрезает , искажает сигнал? или может слишком большие числа для фурье и дело в нем? Это сообщение отредактировал(а) Kpeved - 8.3.2012, 17:57 |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Kpeved,
Сигнал после Фурье принято выводить в дБ в виду того что амплитуда может быть очень большой или очень маленькой (0.000001). Во вторых тот листинг что вы взяли для 2 в степени N, а у вас массив в 2000. |
|||
|
||||
Kpeved |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 26.2.2012 Репутация: нет Всего: нет |
Да ,были небольшие ошибки в коде из -за особенностей с++. Все переделал и сделал по дБ с логарифмической шкалой - да , намного удобнее . Сам по себе звуковой сигнал затухает логарифмом , поэтому на граффике все плавно и хорошо видно )
С массивом в 2000 вполне хорошо справляется - точность от этого не страдает , ведь мы только выделяем нужную частоту , а потом уже её уточняем .Разницы большой нет если бы мы сразу взяли от 2К фурье - просто так на граффике разброс побольше .) |
|||
|
||||
Santik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.3.2012 Где: Мирный (Якутия) Репутация: нет Всего: нет |
А если взять экспоненциально затухающий синус с генератора? Мне кажется этот эффект останется! (Или эмулировать) Это сообщение отредактировал(а) Santik - 13.3.2012, 12:58 |
|||
|
||||
Santik |
|
||||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.3.2012 Где: Мирный (Якутия) Репутация: нет Всего: нет |
Я тоже думаю, что упругость струны тут не при чём. Такой же эффект наблюдается и в протонных магнитометрах. Но там частоту считают с точностью 0.001 Гц Это сообщение отредактировал(а) Santik - 13.3.2012, 21:42 Присоединённый файл ( Кол-во скачиваний: 8 ) ![]() |
||||
|
|||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Проверил чисто математически без преобразователей динамик-микрофон
Эффекта уплывания частоты нет. Более того я данные с гитары пробовал выравнивать по амплитуде эффект отсройки частоты сохранялся. То есть мой алгоритм детектирования частоты не зависит от амплитуды. Это сообщение отредактировал(а) Pavia - 13.3.2012, 21:46 |
|||
|
||||
Santik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.3.2012 Где: Мирный (Якутия) Репутация: нет Всего: нет |
Надо подумать. Может вид огибающей неправильно выбран. Я то всегда думал, что это из-за амплитудной модуляции эффект. В магнитометрах сдвиг около 0.002 Гц приблизительно.
|
|||
|
||||
vedun |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 23.12.2010 Репутация: 2 Всего: 2 |
![]() |
|||
|
||||
Pavia |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 6.12.2008 Репутация: 11 Всего: 12 |
Santik,
По мерил один вслеск с некоторым шагом. 484.1473 484.1523 484.1524 484.1526 484.1527 484.1528 484.1528 484.1495 Ошибка измерения +-0.0020 Тут частота стабильная в приделах метода. То что тут плавает это из за того что у нас частота дискретизации не кратна измеряемой. В моем методе это не учитывается. А ещё это я без оконной функции сделал, так что эффект Гиббса присутствует(скорее всего это он и есть). Если попадает два импульса в один буфер, то тут из за разной частоты или разных начальных фаз будет нестабильность. 484.1084 484.0920 484.0878 С дискретизацией напутал. Это сообщение отредактировал(а) Pavia - 14.3.2012, 07:19 |
|||
|
||||
Santik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 13.3.2012 Где: Мирный (Якутия) Репутация: нет Всего: нет |
Что- то совсем не те частоты получились!
Магнитное поле около 62000Нт и частота должна быть 62000/23.8=2605 Гц Да и на мой "немузыкальный" слух это на телефонный гудок непохоже (440 Гц) ![]() Да и данные - это измерения в движении по конкретному профилю, а не в точке, так что ошибку не корректно так считать. Даже если в точке - всё равно надо вычитать естественные вариации магнитного поля. Это сообщение отредактировал(а) Santik - 14.3.2012, 00:02 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |