Hot Topic (More than 25 Replies) Гитарный тюнер: теория и алгоритмы (Прочитано 8045 раз)
Ivana
Участник


Re: Гитарный тюнер: теория и алгоритмы
Ответ #20 - 23.01.2012 :: 20:55:47
Post Tools
Да даже если будет - это можно решить как аппаратно - задавить ВЧ до триггера чтобы его не было, так и программно - написать код так, чтобы этот дребезг не мешал, если он конечно мал по длительности. Короче, думаю навскидку, что это не проблема. Почему не делают - не знаю. Но для меня это не повод считать что это нерабочий вариант Улыбка
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
jer
Новичок канифольный
*
Вне Форума


GTLab - forever!

Сообщений: 29
Зарегистрирован: 07.01.2008
Re: Гитарный тюнер: теория и алгоритмы
Ответ #21 - 23.01.2012 :: 21:03:07
Post Tools
Ну я , в свою очередь, считал бы это рабочим вариантом только тогда, когда это заработает. А про то что давить ВЧ, вот здесь как раз верно, и при этом появляются фильтры, о которых говорилось уже, и опять же отсюда давится полный диапазон измерений, остается узкий, автоматическим измерением хроматической гаммы не пахнет. Честно, был бы рад ,если б ошибался, самому нужен тюнер  в атмеге 64-ой.
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Ivana
Участник


Re: Гитарный тюнер: теория и алгоритмы
Ответ #22 - 23.01.2012 :: 21:08:19
Post Tools
@ jer
Идея навскидку - ты наверное видел дешевые ("за 5 евро штука" (С)  Круглые глаза) китайские тестеры, которые меряют частоту? Они, если не ошибаюсь, меряют её именно только меандра. Подай сигнал с гитары через триггер на него, что покажет табло?
А насчет давить ВЧ - я не узкополосный фильтр гармоники предлагал, а просто отрезать все что немного повыше открытой первой струны = ми. И остается полный гитарный диапазон.
Я тоже конечно оставляю процент что я слишком оптимистичен, но мне кажется что вполне рабочий вариант. Во всяком случае, с нужной для тюнера точностью.
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Peratron
Гуру
*****
Вне Форума


GTLab - forever!

Сообщений: 13579
Зарегистрирован: 16.08.2009
Re: Гитарный тюнер: теория и алгоритмы
Ответ #23 - 23.01.2012 :: 21:16:25
Post Tools
Цитата:
Сомнения в том, что после триггера частота меандра будет равна частоте первой гармоники струны?
Тут скорей не сомнения, а уверенность - в том, что НЕ будет соответствовать.
Гитарный сигнал - не синус из ГСС...
« Последняя редакция: 26.01.2012 :: 17:27:02 от Peratron »  

(Вложенный файл удалён)

Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...
Наверх
 
IP записан
 
jer
Новичок канифольный
*
Вне Форума


GTLab - forever!

Сообщений: 29
Зарегистрирован: 07.01.2008
Re: Гитарный тюнер: теория и алгоритмы
Ответ #24 - 23.01.2012 :: 21:19:37
Post Tools
@ Ivana

По возможности попробую с тестером, а вобще, всем , кому интересно, не мешало бы попробовать любые варианты реализации тюнера и поделиться потом практическими наработками .
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Peratron
Гуру
*****
Вне Форума


GTLab - forever!

Сообщений: 13579
Зарегистрирован: 16.08.2009
Re: Гитарный тюнер: теория и алгоритмы
Ответ #25 - 23.01.2012 :: 21:19:55
Post Tools
Цитата:
Вы опасаетесь что у этого меандра будет "дребезг" на фронтах?
И дребезг тоже. Но главное не в дребезге - главное в гармониках кол##ания струны, которые могут быть по амплитуде существенно больше основной гармоники.
  

(Вложенный файл удалён)

Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...
Наверх
 
IP записан
 
Ivana
Участник


Re: Гитарный тюнер: теория и алгоритмы
Ответ #26 - 23.01.2012 :: 21:22:22
Post Tools
Хорошо, давайте углубимся в вопрос.
Если у нашего гитарного сигнала на середине и макушках квази-синусоиды будет твориться что угодно, только не пересекающее ноль - то триггеру это все равно. Значит, период (пойманный триггером по пересечению нуля) будет ловиться точно. Сомнения только в том, что у исходного сигнала вблизи пересечений нуля на самом деле много микропересечений за счет гармоник. Которые, кстати, и у ГСС тоже есть. Эти микропересечения могут вылиться только в дребезг на фронтах меандра. А общий период будет правильным, с точностью до этого дребезга (если он вообще будет). Так он имхо обходится и аппаратно и программно - уже писал выше об этом.
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Peratron
Гуру
*****
Вне Форума


GTLab - forever!

Сообщений: 13579
Зарегистрирован: 16.08.2009
Re: Гитарный тюнер: теория и алгоритмы
Ответ #27 - 23.01.2012 :: 21:29:29
Post Tools
Цитата:
а вобще, всем , кому интересно, не мешало бы попробовать любые варианты реализации тюнера и поделиться потом практическими наработками
Все практические наработки уже жеваны-пережёваны в темах про октаверы: как минимум, требуется не простой ТШ (с фиксированными порогами), а адаптивный (с детектированием огибающей и введением зависимости порогов от неё).
Но если в теме октаверов такой АТШ в целом достаточен, то при измерениях высоты тона требуется ещё ряд нетривиальных алгоритмических приёмов, что б получить удобоваримые показания.
Удобоваримые - это значит, появляющиеся достаточно быстро и остающиеся устойчивыми в процессе индикации.
Причём, в отношении тюнеров - простейшие аналоговые (стрелочные) порой показывают расстройку гораздо вразумительней, чем цифровые с недостаточно адаптированными к задаче алгоритмами.
  

(Вложенный файл удалён)

Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...
Наверх
 
IP записан
 
Peratron
Гуру
*****
Вне Форума


GTLab - forever!

Сообщений: 13579
Зарегистрирован: 16.08.2009
Re: Гитарный тюнер: теория и алгоритмы
Ответ #28 - 23.01.2012 :: 21:33:48
Post Tools
Цитата:
Сомнения только в том, что у исходного сигнала вблизи пересечений нуля на самом деле много микропересечений за счет гармоник.
Это не микропересечения! Просто синтезируй волновую форму с второй-третьей гармоникой - и посмотри, какая волновая форма получится и сколько раз будет пересекаться ноль (как и любая произвольно выбранная линия уровня).
А потом попиши гитарку - и посмотри в волновом редакторе на реальный живой сигнал, в котором ещё и колебательные моды играют, а с ними - и гармонический состав.
  

(Вложенный файл удалён)

Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...
Наверх
 
IP записан
 
Peratron
Гуру
*****
Вне Форума


GTLab - forever!

Сообщений: 13579
Зарегистрирован: 16.08.2009
Re: Гитарный тюнер: теория и алгоритмы
Ответ #29 - 23.01.2012 :: 21:36:55
Post Tools
Предлагаю всё таки отделить тему алгоритмизации тюнера от чисто микропроцессорных дел и вынести её в отдельное производство.
Модеры! Ау!
Плз, отрежьте последний (сегодняшний) кусок дискуссии и переместите его в тему "Гитарный тюнер: алгоритмы и реализации".
  

(Вложенный файл удалён)

Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...
Наверх
 
IP записан
 
Ivana
Участник


Re: Гитарный тюнер: теория и алгоритмы
Ответ #30 - 23.01.2012 :: 21:40:12
Post Tools
Тоже хорошая идея - записать гитару через триггер на комп и в волновом редакторе посмотреть форму. Правда, дискретность АЦП съест возможный мелкий дребезг, но крупные артефакты останутся.
И все таки я продолжаю оптимистично надеяться, что из идеи можно сделать рабочий тюнер. Пусть и придется даже делать какой-то анализ выборки массива интервалов.
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
jer
Новичок канифольный
*
Вне Форума


GTLab - forever!

Сообщений: 29
Зарегистрирован: 07.01.2008
Re: Гитарный тюнер: теория и алгоритмы
Ответ #31 - 23.01.2012 :: 21:40:48
Post Tools
@ Peratron

А еще какие-то варианты, кроме адаптивных триггеров Вам известны, может ссылочки есть какие, да хотя б и на эту тему с октаверами, почитал бы. Правда с аналоговой схемотехникой и теорией у меня хуже, чем с цифрой. Но мало ли, мож чего пригодится. Улыбка
Кстати, да! про отдельную тему - это ТЕМА! ))
« Последняя редакция: 23.01.2012 :: 21:42:48 от jer »  

(Вложенный файл удалён)
Наверх
 
IP записан
 
jer
Новичок канифольный
*
Вне Форума


GTLab - forever!

Сообщений: 29
Зарегистрирован: 07.01.2008
Re: Гитарный тюнер: теория и алгоритмы
Ответ #32 - 23.01.2012 :: 21:49:43
Post Tools
Я кстати повторюсь, сам делал тюнер с подсчетом максимумов функции автокорреляции от гитарного сигнала. В чем вижу выигрыш, нет зависисмости от того какой сигнал на входе просто синус или сложный гармонический. Не нужны фильтры, можно померять любую частоту. Минусы, аппаратные возможности мне не позволили сделать быстрый и точный анализ на атмеге 64. Хотя опять же в железе еще не смотрел , только в протеусе (комповый симулятор железа).
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Ivana
Участник


Re: Гитарный тюнер: теория и алгоритмы
Ответ #33 - 23.01.2012 :: 21:50:29
Post Tools
@ jer

Раз уж вспомнили про Остапа Бендера - то как он говорил Адаму Козлевичу - "Бензин ваш, идеи наши! Поехали!" (С)  Круглые глаза

Вам эта тема практически интересна, вы понимаете что по фронтам считать проще чем БПФ и т.п. Улыбка Вот и опубликуйте результаты ваших опытов с триггером в тестере и волновом редакторе с картинками, для начала  Класс Гитара, надеюсь, у вас есть  Круглые глаза
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Peratron
Гуру
*****
Вне Форума


GTLab - forever!

Сообщений: 13579
Зарегистрирован: 16.08.2009
Re: Гитарный тюнер: теория и алгоритмы
Ответ #34 - 23.01.2012 :: 21:52:56
Post Tools
@ Ivana
А вот тебе вопросик на засыпку: расскажи ка, как ты намереваешься получить при помощи частотомера время реакции (выдачи показаний) не более 0.1 сек при разрешении по частоте ну хотя б 1 Гц (хотя по уму желательно 0.1 Гц).
Ы?

Вопрос с подколкой - но с небольшой: контрольный ответ существует, и мы твой ответ сверим с ним.
Ага?
А целью этого вопроса является не попытка загнать оппонента в угол, а лишь желание показать, что задача вовсе не так тривиальна, как пока предполагается обсуждающими. Точней, одним из обсуждающих...
  

(Вложенный файл удалён)

Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...
Наверх
 
IP записан
 
Peratron
Гуру
*****
Вне Форума


GTLab - forever!

Сообщений: 13579
Зарегистрирован: 16.08.2009
Re: Гитарный тюнер: теория и алгоритмы
Ответ #35 - 23.01.2012 :: 21:56:49
Post Tools
@ jer
Автокорелляционный анализ - это хорошо. Но немножко из пушки по воробьям. ИМХО.
В задаче выделения основного тона хорошо работает синхронная фильтрация - там сразу реализуется гребенчатый фильтр, учитывающий все гармоники, а не пытающийся уследить за единственной - которая может и вовсе пропадать в силу вращения первой колебательной моды поперёк вектора чувствительности датчика.
  

(Вложенный файл удалён)

Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...
Наверх
 
IP записан
 
OlegFX
Гуру
*****
Вне Форума



Сообщений: 5097
Местоположение: Киев
Зарегистрирован: 12.08.2008
Re: Гитарный тюнер: теория и алгоритмы
Ответ #36 - 23.01.2012 :: 21:59:31
Post Tools
http://diyfactory.ru/forum/index.php?showtopic=1086&hl=%F2%FE%ED%E5%F0
Вот здесь парни значительно продвинулись в теме (выделения первой гармоники) и даже сделали работающие образцы. А в целом, конечно, (устойчивое) выделение этой самой первой гармоники - задача нетривиальная, триггером тут не отделаешься.
« Последняя редакция: 23.01.2012 :: 22:00:59 от OlegFX »  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Ivana
Участник


Re: Гитарный тюнер: теория и алгоритмы
Ответ #37 - 23.01.2012 :: 22:01:32
Post Tools
Видимо, я настолько оптимистичен и несведущ, что не вижу даже подводных камней. Время (частота) выдачи показаний у нас имхо не определяется точностью измерения частоты. Даже если я буду получать значение частоты каждые 0.1 сек, я могу выдавать их через 0.05 сек - просто дублируя предыдущее пока не получил следующее, хотя это и несколько "неспортивно" Улыбка
Ну и разрешение по частоте измерения совсем не пойму как тут завязано. В идеале - нижняя частота измерения у нас.... ну пусть 50гц. Значит я получаю за 0.1 сек 10 значений полупериодов. Могу их статистически обработать и выдать результат. Более того, прошлые значения могу накапливать в буфере любой длины для удлиннения статистики (если надо).
Или я не понял подколки вопроса.
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Ivana
Участник


Re: Гитарный тюнер: теория и алгоритмы
Ответ #38 - 23.01.2012 :: 22:13:25
Post Tools
@ OlegFX

Спасибо за ссылку, интересно. В итоге автор удовлетворился автокорреляцией Улыбка Но имхо для тюнера достаточно поймать ноту на большой громкости, без хвостов, и с большой задержкой. И даже если 2-я и 3-я гармоники будут портить полупериоды, программно их нейтрализовать на накопительном интервале выборки.
  

(Вложенный файл удалён)
Наверх
 
IP записан
 
Peratron
Гуру
*****
Вне Форума


GTLab - forever!

Сообщений: 13579
Зарегистрирован: 16.08.2009
Re: Гитарный тюнер: теория и алгоритмы
Ответ #39 - 23.01.2012 :: 22:13:41
Post Tools
Цитата:
@Peratron
А еще какие-то варианты, кроме адаптивных триггеров Вам известны,
В отношении выделения основного тона?
Известны - например нейронная сеть, а-ля Аксон  Круглые глаза
Про синхронный (гетеродинный) фильтр я уже упомянул.
Ну, автокоррелятор - таки да, тоже справный метод.
Классический фурье - само собой. Но он в неадаптивном варианте слишком тормозной и не позволяет получить значение тона одновременно и быстро, и точно. Впрочем, гетеродинная фильтрация тоже эффективна только в адаптивном варианте.
Ну, тупой - но правильный вариант, это гребёнка фильтров. Но не фурье - с его постоянной частотной полоской фильтра: оптимальна в данном случае гребёнка с постоянной добротностью (линейно возрастающей пол частоте полосой пропускания).

Наиболее простым и правильным вариантом для решения задачи не-полифонического тюнера я считаю сочетание  программно реализованного АТШ с несложной системой измерения периода и пост-обработкой (пересчётом периода в частоту для индикации).
  

(Вложенный файл удалён)

Схемотехническая мантра: титцешенкохоровицехилл. Повторять до просветления...
Наверх
 
IP записан
 
 
  « Главная ‹ Раздел Наверх этой страницы