LINUX.ORG.RU

Колебание струны -> амплитуда звука


0

3

В научных статьях колебания струн (конкретно музыкального инструмента) выводят в виде зависимости (Y) отклонения точки X струны в момент времени T после удара по струне: Y(X, T).

Как зная эту зависимтсть получить аналог записи звучания такой струны с микрофона, то-есть A(T)?

★★★★

Ответ на: комментарий от mclaudt

Сделал 16 гармоник + основной тон. Дальше уже никакого практического смысла нет, на сонограмме составляющие этих частот уже неотличимы от шума. По звуку не сильно лучше (хотя разница и заметна) 1+9. Все остальное добавляют те самые негармонические составляюшие видимо, или что-то еще.

alexru ★★★★
() автор топика
Ответ на: комментарий от mclaudt

И все на чистом коде?

Ну как на чистом, динамика изменения амплитуды обертонов снимается с реальной записи, но ее пожать значительно легче, там гладкие и плавные кривые получились.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

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

mashina ★★★★★
()
Ответ на: комментарий от mashina

Ещё одно дополнение к методу. Для более лучшего результата (лучшей передачи высоких частот) желательно применять многополосную версию этого же алгоритма. В простом варианте нижние гармоники синтезировать по сонограмме с большим окном (порядка 2048 и частоты 40 Hz - 1 kHz) и верхние с меньшим (256 и частоты выше 1 kHz). Цифры взял на глаз для дискретизации 44100 (нижняя частота для окна W примерно равна 5 * 44100/W. Пятёрка это условный коэффициент для выполнения условия п.7 ), шаг H должен меняться пропорционально.

Одно большое окно будет слишком сильно сглаживать C(k, t) для верхних частот. В окно должно укладываться несколько полных периодов, от 5 до 15.

mashina ★★★★★
()
Ответ на: комментарий от mashina

Вот 40 гармоник (больше на сумме сонограммы не различить уже): http://dl.dropbox.com/u/6121480/synth/synth_c4_40.ogg. Субъективно - получше, но не то.

Теперь глядя на то как изменяются амплитуды гармоник, есть подозрение, что можно относительно несложной моделью деки и среды распространния получить что-то похожее. Буду теперь в этом направлении рыть.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

На слух немного лучше. Теперь там друная проблема, неправильно угадываешь гармоники верхних частот: часто вместо основных звучащих берёшь соседние тихие биения. Это видно если поставить рядом две сонограммы - оригинала и синтеза.

Найденные гармоники лучше сортировать по амплитуде и выбирать с наибольшей. Хотя здесь тоже не всё так просто, «интенсивность» звучания зависит не только от амплитуды, но и от частоты.

mashina ★★★★★
()
Ответ на: комментарий от mashina

Непонятно как их искать. Вот тут http://dl.dropbox.com/u/6121480/synth/harmonics_log.png изображен логарифм суммы сонограммы в направлении времени. По оси X - отсчеты FFT (4096 - это точная серидина от 8192). Теоретически основная частота тут должна быть на 48.6 отсчете и все остальные кратны ей. В реальности пик основной частоты на 50 (частично заползает на 49), возможно не точность настройки инструмента или оцифровки. Дальше координаты гармоник я брал по максимуму в точках примерно кратных 50 (максимумы хорошо видно, за исключением пары мест, где пика нет, точку я брал по середине в этом случае).

Из этого всего вроде как следует, что настоящая частота сигнала на записи не 261.63 Гц, но если взять FFT от всей исходной выборки, то пик получится на 261.63 Гц.

Если брать гармоники в теоретически расчитаных точках, а не снимать с сонограммы, то звук получается на колокольчик похож.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

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

mashina ★★★★★
()
Ответ на: комментарий от mclaudt

> Я знаю что затухание в явном виде в простом уравнении отсутствует. Речь о комплексной частоте для обычного синуса - разве это не решение волнового уравнения?

Так если ты тот член в волновое уравнение не добавил - то, конечно же, не решение. Аргументы синуса ведь не произвольно выбираются, а из решения задачи Штурма-Лиувилля.

Вопрос ОПу - какой смысл руками самому выдирать и синтезировать гармоники, если можно записать семпл и пожать, после чего он будет представлен теми же гармониками, но только при сжатии будут использованы отработанные алгоритмы, а не ручной велосипед? :) Все синтезаторы именно так и делают.

anonymous
()

Короче гугли алгоритмы кодирования мп3. Лучше у тебя все равно не получится.

anonymous
()
Ответ на: комментарий от anonymous

Вопрос ОПу - какой смысл руками самому выдирать и синтезировать гармоники, если можно записать семпл и пожать, после чего он будет представлен теми же гармониками, но только при сжатии будут использованы отработанные алгоритмы, а не ручной велосипед? :) Все синтезаторы именно так и делают.

Гармоники жать проще - они глпдкие и планые => легко представимы или сплайнами или полиномами. Если жать сэмплы, то нужно много памяти.

А потом ultimate goal - это попробовать таки на основании только математических моделей получить такой-же результат. Глядя на само оцифрованное колебание это кажется не реальным, глядя на отдельные гармоники - вполне.

alexru ★★★★
() автор топика
Ответ на: комментарий от anonymous

Кроме того достать хорошие банки сэмплов не так просто. Нужно оцифровать не только 88 клавиш, но еще и по 7+ уровней динамики нажатия. В High-end цифровых фортепиано так и есть, но и цена соответствующая. В low-end обычно цифруют ноты До и Фа-диез, а до останых ресэмплинг делают и пару уровней динамики, а остальное простым изменением громкости добивают.

У меня нет абсолютного слуха, но слушать как на 5 клавиш звучит один и тот-же сэмпл попрой забавно.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

> Гармоники жать проще - они глпдкие и планые => легко представимы или сплайнами или полиномами. Если жать сэмплы, то нужно много памяти.

Нет, гармоники не самый удобный вариант, по-этому lossless-форматы используют другие способы представления. А вот тот же мп3 хранит сигнал именно в виде гармоник - сперва при кодировании считается спектр, потом этот спектр «прореживается», убираются «ненужные» гармоники и потом все это дело упаковывается во фрейм. Так что запись семпла в формате .mp3 - это именно то, чего ты хочешь добиться.

А потом ultimate goal - это попробовать таки на основании только математических моделей получить такой-же результат.

Тембр инструмента определяется свойствами резонатора, так что такое моделирование возможно только при условии моделирования резонатора. Естественно, на практике это неприменимо, так что обычно просто пишутся семплы и все. Это и проще и результат более эффективен.

anonymous
()
Ответ на: комментарий от anonymous

Не забывайте, что форматы сжатия аудио расчитаны на длинные композиции. Семпл - это запись одной ноты. Для нее более эффективны другие способы сжатия. Я еще не закончил с точным определением огибающих гармоник, но скорее всего сейчас получится очень точно передать исходный звук.

Тембр инструмента определяется свойствами резонатора, так что такое моделирование возможно только при условии моделирования резонатора.

Да, модель комнаты и резонатора нужна будет. По-идее это и делает тот самый синтезатор от pianoteq.

Естественно, на практике это неприменимо, так что обычно просто пишутся семплы и все.

Что иногда приводит к тому, что оычно есть 1-2 клавиши с плохо записанными семплами и от этого уже не отделаешься. Такое есть на Yamaha NP-30 и каком-то из Casio CDP серии. Дешевки конечно, но тем не менее.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

> Не забывайте, что форматы сжатия аудио расчитаны на длинные композиции. Семпл - это запись одной ноты.

Секундный семпл тут ничем не отличается от часовой записи, все равно продолжительность фрейма меньше десятой секунды.

Да, модель комнаты и резонатора нужна будет. По-идее это и делает тот самый синтезатор от pianoteq.

Конечно же, он этого не делает. Иначе пришлось бы каждый семпл расчитывать часами. Тут ведь уже проблема даже не в моделировании самой звуковой волны (что по сути не сложно), а в моделировании вибрации резонатора. То есть это надо учитывать все напряжения в инструменте и т.п.

anonymous
()
Ответ на: комментарий от alexru

> Что иногда приводит к тому, что оычно есть 1-2 клавиши с плохо записанными семплами и от этого уже не отделаешься. Такое есть на Yamaha NP-30 и каком-то из Casio CDP серии. Дешевки конечно, но тем не менее.

Вообще, следует отметить, что имитация звучания реальных инструментов - это не задача синтезатора и никогда не была таковой.

anonymous
()
Ответ на: комментарий от anonymous

Конечно же, он этого не делает. Иначе пришлось бы каждый семпл расчитывать часами.

Возможно что-то удалось предварительно рассчитать. Возможно на основании модели удалось получить какие-то данные (те же профили затухания гармоник), которые позволяют в реальном времени генерировать сигнал.

Факт в том, что у этого синтезатора поча-что качество синтеза лучшее из тех, что я слышал. Хотя возможно, конечно, что они заплатили за качественную оцифровку. Посмотрим.

alexru ★★★★
() автор топика
Ответ на: комментарий от anonymous

Вообще, следует отметить, что имитация звучания реальных инструментов - это не задача синтезатора и никогда не была таковой.

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

Так что задача синтеза качественного фортепианного звука стоит, а то проффесионалы так и будут нос воротоить.

alexru ★★★★
() автор топика

Если речь идёт о фортепьяно, то для полного решения задачи нужно учитывать: распространение волн от нескольких настроенных не в унисон струн данной клавиши внутри (трёхмерного) ящика (не знаю, как он называется, в гитаре это называется «корпус»), может быть, нельзя пренебречь свойствами самого дерева (как минимум, поглощением звука в дереве, а может быть, и передачей его по дереву). Если нажата педаль, то учитывается ещё резонанс всех остальных струн инструмента. По всей видимости, резонансы влияют и на скорость откачки энергии из струны, так что изолированная струна без резонатора, наверное, будет звучать дольше, чем внутри музыкального инструмента. Затем инструмент выходит в воздух и нужно учесть ещё и акустику помещения.

Ещё одна дополнительная сложность - это звукоизвлечение. Даже для ф-но тут есть, по-видимому, пара степеней свободы, а для гитары или скрипки получается вообще ужас как сложно.

den73 ★★★★★
()
Ответ на: комментарий от den73

Ещё немного о фортепьяно. Если открыть крышку, легко убедиться, что большинству клавиш соответствует по три струны. У меня нет фортепьяно и я не могу сказать, все это клавиши или нет - не помню. Клавиши настраиваются не совсем в унисон, а имеют определённую расстройку. Поэтому при нажатии одной клавиши звук переливается - это работают биения. Общий период биений - единицы секунд. Любая мало-мальски адекватная модель фортепьяно должна это учитывать. Видимо,как первое приближение можно взять одну струну и воспроизвести её звук трижды с соответствующими частотами, а потом сложить, однако это будет, скорее всего лишь первым грубым приближением из-за того, что струны могут обмениваться энергией между собой.

den73 ★★★★★
()
Ответ на: комментарий от den73

Если открыть крышку, легко убедиться, что большинству клавиш соответствует по три струны.

Только басам, в центральном регистре по 2 и у дискантов по 1.

Биения хорошо слышны в синтезаторе из ОП, но это может быть и запись, где они слышны по определению.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

Педаль soft как раз и сдвигает блок клавиш так, что молоточки бьют только по 2 (из 3-х) или по 1 (из двух) струн.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

Банк здесь не поможет, т.к. резонанс других струн слишком сложен.

Например, нажали педаль сустейна и дважды нажали одну и ту же клавишу с небольшой паузой. При первом нажатии все остальные струны начали резонировать. До повторного нажатия остальные струны не успели ещё затихнуть. И при повторном нажатии часть остальных струн оказалась в фазе с струнами (с учётом расстояния между ними в корпусе), по которым мы ударили, их звук начнёт усиливаться. А часть окажутся в противофазе и их звук начнёт затихать. Т.е., тут нужно брать каждую струну (которую вдали от момента удара, видимо, можно моделировать набором независимых и независимо резонирующих гармоник) и писать диффур, выражающий динамику изменения амплитуды и фазы каждой гармоники в зависимости от амплитуды и фазы всех остальных струн. Клавиш 88, струн порядка 250, гармоник нужно учитывать, наверное, штук 10, каждая гармоника описывается двумя переменными. Итого получаем для описания резонанса систему линейных (?) дифференциальных уравнений с 5000 переменными, в которых участвует матрица 5000x5000 взаимных влияний между гармониками.

Точность моделирования, как мне кажется, сильно зависит от того, как численно соотносится мощность перекачки энергии между струнами к мощности, излучаемой вовне. Но банк тут вообще не подойдёт.

Но, пожалуй, без моделирования духовных сущностей тут вряд ли получится описать ситуацию, потому что в реальной жизни нужен не «звук клавиш», а «музыка». И явления появления и затухания резонанса - это существенная составляющая восприятия музыки, в то время, как при изменении паузы между нажатиями на сотые доли секунды явления резонанса могут сильно измениться.

Я не исключено, что психотропное действие музыкальных инструментов во многом основано именно на сложности передачи звука внутри корпуса, что даёт возможность духовным сущностям встроиться в процесс. Духовные сущности обладают очень маленькими физическими возможностями, их возможность влиять на физические величины примерна сопоставима с масштабом тепловых флуктуаций. Поэтому, там, где процесс моделируется набором дифференциальных уравнений, можно искать проявления этих сущностей лишь в тех точках, где решение вычислительно неустойчиво. В модели при этом решение определяется особенностями числовой шкалы и алгоритмов округления, а сами проявления действия духовных сил оказываются погрешностями решения.

Может быть, потому, синтезированная музыка кажется «мёртвой», что она является результатом вычисления, а не процесса в реальном мире и духовные сущности не могут в неё встроиться.

Если обобщать, то, постоянно обнаруживая магические явления в реальном мире, мы вряд ли сможем обнаружить их в компьютерных моделях (хотя об этом лучше спросить тех, кто профессионально занимается моделированием).

В этом свете «физическая картина мира» выглядит религией: она имеет готовое и непреодолимое объяснение для всех явлений, которые она на самом деле не в силах объяснить: их можно объяснить неутранимыми погрешностями вычислений и дискретизации.

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

Даже объяснение такого простого явления мира, как устойчивое существование в Солнечной системе довольно большого числа планет, оказалось пока не по зубам лучшим математикам мира.

den73 ★★★★★
()
Ответ на: комментарий от alexru

> Возможно что-то удалось предварительно рассчитать. Возможно на основании модели удалось получить какие-то данные (те же профили затухания гармоник), которые позволяют в реальном времени генерировать сигнал.

Ну да, так все и делают. Только вместо того, чтобы что-то расчитывать, просто записывают семпл, который и содержит все требуемые данные.

Факт в том, что у этого синтезатора поча-что качество синтеза лучшее из тех, что я слышал.

Хорошие семплы, хорошая постобработка. С синтезом это никак не связано.

anonymous
()
Ответ на: комментарий от alexru

> Так что задача синтеза качественного фортепианного звука стоит, а то проффесионалы так и будут нос воротоить.

Задача синтеза качественного фортепианного звука решена сотни лет назад при помощи девайса под названием «фортепиано». Задачей синтезаторов всегда был синтез звуков, которые из обычных инструментов извлечь сложно или вообще невозможно.

anonymous
()
Ответ на: комментарий от den73

> Например, нажали педаль сустейна и дважды нажали одну и ту же клавишу с небольшой паузой. При первом нажатии все остальные струны начали резонировать. До повторного нажатия остальные струны не успели ещё затихнуть.

Этими эффектами можно смело пренебрегать, главное учесть вибрацию резонатора при нажатии одной клавиши, именно ей определяется тембр звучания инструмента. Остальное внесет вклад на уровне «вон то фортепано звучит так, а это - по-другому», что по определению вполне укладывается в границы погрешности.

anonymous
()
Ответ на: комментарий от mclaudt

Черт, Буквально перед новым годом сдавал Игната по этой теме :) Хотел это же написать - опередил )

Jetty ★★★★★
()
Ответ на: комментарий от anonymous

> Не забывайте, что форматы сжатия аудио расчитаны на длинные композиции. Семпл - это запись одной ноты.

Секундный семпл тут ничем не отличается от часовой записи, все равно продолжительность фрейма меньше десятой секунды.

Всё правильно пишет топикстартер. MP3 алгоритм общего назначения и конкретно для его задачи он нафиг не нужен. Тем более вычленение ф-ий C(n, t) даёт возможность обобщения сэмплов разных струн или одной и той же струны при разных условиях возбуждения в один алгоритм генерации C(n, t). Это уже большое поле для технического творчества, как раз что ТС и нужно.

Конечно, это всё будет нормально работать если квазигармоническое разложение для образцов допустимо.

mashina ★★★★★
()
Ответ на: комментарий от anonymous

> Хорошие семплы, хорошая постобработка. С синтезом это никак не связано.

Дело в том, что в 19 Мб ну никак не могут уместиться хорошие семплы такого большого количества моделей инструментов. А звучит оно действительно _очень_ правдоподобно.

DJAnto
()
Ответ на: комментарий от DJAnto

Более-менее сносный патч для GUS назывался Bosendor или что-то в этом роде, занимает порядка 1Мб несжатого монофонического аудио. А так, я думаю, на более-менее реалистичное ф-но нужно мегабайт 500, если речь идёт о семплах. Есть такой инструмент «гигасемплер» для этого. Правда, резонансы при нажатой педали сустейн всё равно нужно моделировать отдельно.

Если говорить об электронной музыке, то есть ещё такая засада, как стандарт MIDI, который, как мне кажется, не позволяет достаточно точно передать информацию о времени нажатия клавиши при быстрой игре. Внутри инструмента,конечно, точность передачи звука может быть выше.

den73 ★★★★★
()
Ответ на: комментарий от den73

гармоник нужно учитывать, наверное, штук 10

Значительно больше. Ниже в простом образце одной струны уже насчитали более 30 гармоник и все они важны для звучания. Для разных струн они навряд ли будут пересекаться в больших кол-вах и в итоге их будет в десятки раз больше.

Итого получаем для описания резонанса систему линейных (?) дифференциальных уравнений с 5000 переменными, в которых участвует матрица 5000x5000 взаимных влияний между гармониками.

Почему вдруг с 5000x5000? Что за ересь...

Если моделировать струны и использовать диф. уравнения, то будет уравнений (нелинейных скорее всего) по количеству струн с двумя переменными на каждую (координата x и время t) + модель взаимодействия струн в среде. Это не так много, вся проблема заключается в поиске подходящих уравнений модели струн. И моделирование будет достаточно затратным.

Если обрабатывать каждую гармонику независимо, то диф. уравнений не будет. Будут просто наборы синтезирующих линий и правила их «зажигания». Такой подход является в большей мере «инженерным», но тоже сложен.

Если обобщать, то, постоянно обнаруживая магические явления в реальном мире, мы вряд ли сможем обнаружить их в компьютерных моделях (хотя об этом лучше спросить тех, кто профессионально занимается моделированием).

Ну зачем же так сразу.. Почитайте хотя бы этот же ЛОР - чуть ли не каждый день кто-то бегает с бубном около предмета труда и ласковыми движениями пытается заставить его работать. Магия рождается в больной голове, кто ищет тот всегда её найдет.

mashina ★★★★★
()
Ответ на: комментарий от mashina

> Магия рождается в больной голове, кто ищет тот всегда её найдет.
Магию видит тот, кто умеет думать и понимать. Ты к этой категории людей не относишься, т.к. ты не понял мою идею о том, как надо рассчитывать резонанс и неправильно её истолковал. Если хочешь, чтобы я с тобой вообще разговаривал, сначала пойми и истолкуй правильно, разжёвывыать не буду. Раз ты считаешь себя достаточно умным, чтобы делать столь общие выводы о магии, такие вещи ты должен понимать с полунамёка. Я вижу, ты похож на первого в этом году участника моего игнор-листа.

den73 ★★★★★
()
Ответ на: комментарий от den73

Ой, сопли не обязательно разводить. Разжёвывать ничего не нужно, просто у вас описана техническая глупость.

mashina ★★★★★
()
Ответ на: комментарий от den73

> Магию видит тот, кто умеет думать и понимать.

А какой толк в этом вашем «видении»? Вот оседлали бы вы увиденное, утилизировали тэксзть - честь вам и хвала.

gandjubas
()
Ответ на: комментарий от mashina

> MP3 алгоритм общего назначения и конкретно для его задачи он нафиг не нужен.

Нужен, не нужен, а он делает в точности то, что пытается навелосипедить ОП.

anonymous
()
Ответ на: комментарий от DJAnto

> Дело в том, что в 19 Мб ну никак не могут уместиться хорошие семплы такого большого количества моделей инструментов. А звучит оно действительно _очень_ правдоподобно.

Так семплами не надо все ноты покрывать. Десяток семплов на инструмент - вполне хватит.

anonymous
()
Ответ на: комментарий от mashina

> Если моделировать струны и использовать диф. уравнения, то будет уравнений (нелинейных скорее всего) по количеству струн с двумя переменными на каждую (координата x и время t) + модель взаимодействия струн в среде. Это не так много, вся проблема заключается в поиске подходящих уравнений модели струн. И моделирование будет достаточно затратным.

Так дело ведь не в струнах, звучат не струны, а корпус инструмента. Струну смоделировать не сложно, а вот вибрирующее не понять что из не понять какого материала не понять какой формы с не понять какими напряжениями внутре...

А моделируя струны ты никогда не получишь нужной тембральной окраски.

anonymous
()
Ответ на: комментарий от anonymous

Нужен, не нужен, а он делает в точности то, что

Неправда, mp3 решает немного другую задачу и не в совсем в удобном виде для ТС.

пытается навелосипедить ОП.

ТС, как я понимаю, делает это just for fun. От велосипеда можно много получить fun'а.

mashina ★★★★★
()
Ответ на: комментарий от anonymous

Так дело ведь не в струнах, звучат не струны, а корпус инструмента.

В общем соглашусь, но здесь тоже есть множество тонкостей. Речь ниже шла преимущественно о струнах, я не предлагаю опираться только на этот аспект.

а вот вибрирующее не понять что из не понять какого материала не понять какой формы с не понять какими напряжениями внутре...

Не обязательно всё это знать, эффект корпуса можно анализировать как чёрный ящик методом воздействий и анализа откликов. Может этот этап будет сложнее струн, но в принципе такое же моделирование.

mashina ★★★★★
()
Ответ на: комментарий от alexru

(den73)

Не вникая в детали метода, отмечу, что фаза критична для правильного отображения тона. Есть даже такие приборы, к-рые, вращая фазу высших гармоник, делают звук более ярким (кажется, энхансеры?). Если я ничего не путаю. А также, если есть биения, то получается, что нельзя брать точки отсчёта, кратные основному периоду - это приведёт к ошибкам.

anonymous
()

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

Основная частота: теоретическая: 261.63, практическая: 261.6375.

13 гармоника: теоретическая: 261.63 * 13 = 3401.19, практическая: 3483.3.

Набег происходит плавно и дальше увеличивается.

Какие будут идеи у уважаемой публики на этот счет?

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

Какие будут идеи у уважаемой публики на этот счет?

Нужен метод поиска пиков на суммарном спектральном профиле?

mashina ★★★★★
()
Ответ на: комментарий от mashina

Нужен метод поиска пиков на суммарном спектральном профиле?

Нужно понять в чем разница. Процесс идет в 2 стадии - анализ и синтез. При анализе я строю сонограмму и из нее беру амплитуды. Они точно соответствуют частотам «гармоник», так как я даже не смотрю на чатоту там, я просто беру отсчеты на частоте (точке), где сумма сонограммы (вдоль оси времени) максимальна (полная мощность за время всего процесса на данной частоте максимальна, другими словами).

При синтезе-же я беру ровную сетку частот n*F, где n - номер гармоники (1 - основная частота), F - частота основного тона, и применяю к этой сетке амплитуды, полученные при анализе. И тут все ломается, так как в реальном сигнале гармоники не в сетке n*F, а в какой-то своей.

Я не понимаю физику этого процесса.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

И тут все ломается, так как в реальном сигнале гармоники не в сетке n*F, а в какой-то своей.

Я сейчас попробую точнее понять как они расположены там, но это странно. Может есть какие известные эффекты, которые за это отвечают?

То, что частоты расположены не там, очевидно, если просто построить FFT от всей выборки сразу, а не окнами, при 200000 точках разрешение по частоте получается более чем достаточное.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

При синтезе-же я беру ровную сетку частот n*F, где n - номер гармоники (1 - основная частота), F - частота основного тона, и применяю к этой сетке амплитуды, полученные при анализе. И тут все ломается, так как в реальном сигнале гармоники не в сетке n*F, а в какой-то своей.

Что-то я не пойму. Т.е. кривые C(k. n) снимаешь для одного набора частот f(k), а синтезируешь с другим набором f'(k), который якобы теор. ожидаемые частоты? Где логика? Синтезировать нужно точно с такими же частотами.

Задача простая: нужно подогнать синтезируемый сигнал к реальному в спектральном плане. Если при синтезе будешь брать другие частоты, то, очевидно, не получишь модель образца и звучание будет иным.

То, что частоты расположены не там, очевидно...

Для реальной материальной струны нет никакого 'не там'. n*F справедливо только для идеальной струны которых в физическом мире нет.

Материальная струна из металла или нейлона похожа на идеальную только на длинных волнах (т.е. низкие частоты), у тебя так и получается - первые 3-4 гармоники более-менее попадают на линейную зависимость.

Для коротких же волн (высокие частоты) струна ведёт себя как стержень и там уже нет привычной зависимости n*F.

С частотами при анализе и синтезе нужно оперировать исключительно по факту их наличия.

mashina ★★★★★
()
Ответ на: комментарий от alexru

(den73)

Если ты имеешь в виду, что частота растёт по мере падения амплитуды, то это довольно естественно. При большой амплитуде движение струны может быть нелинейным и частота будет ниже. При затихании колебания переходят в линейную область и частота растёт.

anonymous
()
Ответ на: комментарий от mashina

Где логика? Синтезировать нужно точно с такими же частотами.

Я из теории ожидал, что гармоники будут там, где им положено быть. Honest mistake.

Для коротких же волн (высокие частоты) струна ведёт себя как стержень и там уже нет привычной зависимости n*F.
С частотами при анализе и синтезе нужно оперировать исключительно по факту их наличия.

Теперь буду это учитывать. Интересно как практика и теория не совпадают.

alexru ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.