Кепстральный анализ для обнаружения основного тона

Я ищу, чтобы извлечь поля из звукового сигнала.

Кто-то в IRC только что объяснил мне, как этого можно добиться с помощью двойного БПФ. Конкретно:

  1. взять БПФ
  2. взять журнал квадрата абсолютного значения (можно сделать с таблицей поиска)
  3. взять еще один БПФ
  4. принимать абсолютное значение

Я пытаюсь это сделать с помощью vDSP.

Не могу понять, как я не наткнулась на эту технику раньше. Я много искал и задавал вопросы; стоит несколько недель. Более того, я не могу понять, почему я не подумал об этом.

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

Однако меня интересует точность конечного результата.

Ранее я использовал метод, который просматривает частотные элементы одного БПФ для локальных максимумов. Когда он сталкивается с одним из них, он использует хитрый метод (изменение фазы с момента последнего БПФ), чтобы более точно поместить фактический пик в ячейку.

Я беспокоюсь, что эта точность будет потеряна с помощью техники, которую я здесь представляю.

Я предполагаю, что эту технику можно было бы использовать после второго БПФ, чтобы получить точное фундаментальное значение. Но похоже, что информация потеряна на шаге 2.

Поскольку это потенциально сложный процесс, может ли кто-нибудь с некоторым опытом просто посмотреть, что я делаю, и проверить его на вменяемость?

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

Итак, вопросы:

  • имеет ли этот подход смысл? Можно ли его улучшить?
  • Меня немного беспокоит компонент «логарифмический квадрат»; кажется, есть функция vDSP, которая делает именно это: vDSP_vdbcon. Однако нет никаких указаний на то, что он предварительно вычисляет таблицу журналов — я предполагаю, что это не так, поскольку функция БПФ требует вызова и передачи в нее явной функции предварительного расчета. А этой функции нет.
  • Есть ли опасность захвата гармоник?
  • Есть ли какой-нибудь хитрый способ заставить vDSP вытягивать максимумы, сначала самые большие?
  • Может ли кто-нибудь указать мне на некоторые исследования или литературу по этой технике?

  • главный вопрос: достаточно ли он точен? Можно ли повысить точность? Мне только что эксперт сказал, что точность ДЕЙСТВИТЕЛЬНО недостаточна. Это конец линии?

Pi

PS Меня ТАК раздражает, когда я хочу создать теги, но не могу. :| Я предложил мейнтейнерам, чтобы ТАК отслеживал попытки тегов, но я уверен, что меня проигнорировали. Нужны теги для vDSP, ускоренного фреймворка, кепстрального анализа


person P i    schedule 03.01.2011    source источник
comment
Если вы пометите свой вопрос [обработка сигналов], я думаю, что большинство заинтересованных людей найдут его.   -  person mtrw    schedule 03.01.2011
comment
phon.ucl.ac.uk/courses/spsci/matlab/ lect10.html   -  person P i    schedule 08.01.2011
comment
Отличный набор вопросов :).   -  person sumodds    schedule 11.04.2013


Ответы (5)


Хорошо, давайте пройдемся по одному:

Я ищу, чтобы извлечь поля из звукового сигнала.

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

То, что вы описываете, называется «кепстральным анализом», который в основном используется для извлечения высоты тона из речи. Кепстральный анализ полностью зависит от обилия и силы обертонов вашего сигнала. Если, например, вы пропустите чистую синусоиду через кепстральный анализ, вы получите ужасные результаты. Однако для речи, которая представляет собой сложный сигнал, имеется большое количество обертонов. (кстати, обертоны — это элементы сигнала, которые колеблются с частотой, кратной основной частоте, т. е. воспринимаемому нами тону). Кепстральный анализ может быть надежным средством обнаружения речи с отсутствующей основной частотой. То есть, предположим, вы построили график функции sin(4x)+sin(6x)+sin(8x)+sin(10x). Если вы посмотрите на это, станет ясно, что она имеет ту же частоту, что и функция sin(2x). Однако, если применить к этой функции анализ Фурье, бин, соответствующий sin(2x), будет иметь нулевую величину. Таким образом, считается, что этот сигнал имеет «отсутствующую основную частоту», потому что он не содержит синусоиды частоты, которую мы считаем. Таким образом, простой выбор самого большого пика на преобразовании Фурье не будет работать с этим сигналом.

Ранее я использовал метод, который просматривает частотные элементы одного БПФ для локальных максимумов. когда он сталкивается с одним из них, он использует хитрый метод (изменение фазы с момента последнего БПФ), чтобы более точно поместить фактический пик в ячейку.

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

Я беспокоюсь, что эта точность будет потеряна с помощью техники, которую я здесь представляю.

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

Если вы параболически интерполируете БПФ блока данных из 4098 выборок с частотой 44 100 Гц с шагом около 440 Гц, это будет означать, что он будет находиться между 40-м (430,66 Гц) и 41-м (441,430664064) бинами. Предполагая, что эта статья приблизительно верна в общем случае, в ней говорится о параболической интерполяции увеличивает разрешение более чем на порядок. Это оставляет разрешение не менее 1 Гц, что является порогом человеческого слуха. На самом деле, если вы используете идеальное гауссово окно, параболическая интерполяция будет точной на пиках (верно, точной. Помните, однако, что вы никогда не сможете использовать истинное гауссово окно, потому что оно бесконечно расширяется в в обоих направлениях.) Если вы все еще беспокоитесь о повышении точности, вы всегда можете дополнить БПФ. Это означает добавление нулей в конец БПФ перед преобразованием. Получается, что это эквивалентно «синхронной интерполяции», которая является идеальной функцией интерполяции для сигналов с ограниченной частотой.

Я предполагаю, что эту технику можно было бы использовать после второго БПФ, чтобы получить точное фундаментальное значение. Но похоже, что информация потеряна на шаге 2.

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

  • имеет ли этот подход смысл? Можно ли его улучшить?

Да и да, в конце я подробно расскажу об улучшении автокорреляции.

  • Я немного беспокоюсь о компоненте логарифмического квадрата; Кажется, есть функция vDSP, которая делает именно это: vDSP_vdbcon, однако нет никаких указаний на то, что она предварительно вычисляет таблицу журналов — я предполагаю, что это не так, поскольку функция БПФ требует, чтобы вызывалась и передавалась явная функция предварительного расчета. внутрь. а этой функции нет.

Я не знаю специфики библиотеки vDSP, извините.

  • Есть ли опасность захвата гармоник?

В вашей оригинальной технике пикового пика фазового вокодера? да. Кепстральным методом? нет, не совсем, все дело в том, что он учитывает все гармоники, чтобы получить оценку частоты. Например, предположим, что наша частота равна 1. Наши обертоны 2,3,4,5,6,7,8,9 и т. д. Мы должны убрать все нечетные гармоники, т.е. оставить 2,4,6, 8 и т. д., и удалите основную частоту, прежде чем ее начнут путать с одним из ее обертонов.

  • Есть ли какой-нибудь хитрый способ заставить vDSP вытягивать максимумы, сначала самые большие?

Не знаю vDSP, но в общем случае вы обычно просто перебираете их все и отслеживаете самые большие.

  • Может ли кто-нибудь указать мне на некоторые исследования или литературу по этой технике?

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

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

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

На практике получение корреляции со всеми этими задержанными во времени копиями сигнала происходит медленно. Обычно это реализуется таким образом (что математически эквивалентно):

Обнулите его, чтобы удвоить его первоначальную длину. Возьмите БПФ. Затем замените все коэффициенты их квадратными величинами, кроме первого, который вы установили равным 0. Теперь возьмите IFFT. Разделите каждый элемент на первый. Это дает вам автокорреляцию. Математически вы используете теорему о круговой свертке (поищите ее) и используете заполнение нулями для преобразования задачи линейной свертки в задачу круговой свертки, которую можно эффективно решить.

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

Это само по себе даст вам очень хорошее определение высоты тона по всем критериям. Однако иногда вы можете столкнуться с проблемой половинного и удвоения высоты тона. В основном проблема заключается в том, что если сигнал повторяется каждую секунду, он также повторяется каждые две секунды. Точно так же, если у него очень сильный обертон, вы можете уполовинить высоту тона. Таким образом, самый большой пик не всегда может быть тем, который вам нужен. Решением этой проблемы является алгоритм MPM Филиппа Маклеода. Идея такова:

Вместо того, чтобы выбирать самый большой пик, вы хотите выбрать первый пик, который достаточно велик, чтобы его можно было рассмотреть. Как определить, достаточно ли велик пик, чтобы его можно было рассмотреть? Если он не меньше A*, то самый большой пик, где A — некоторая константа. Филипп предлагает значение A около 0,9, я думаю. На самом деле написанная им программа Tartini позволяет сравнивать несколько различных алгоритмов определения высоты тона в режиме реального времени. Я настоятельно рекомендую загрузить его и попробовать (в нем реализованы Cepstrum, прямая автокорреляция и MPM). ): (если у вас возникли проблемы со сборкой, воспользуйтесь инструкциями здесь.

Последнее, что я должен отметить, касается работы с окнами. В общем, подойдет любое гладкое окно. Окно Ханнинга, окно Хэмминга и т. д. Надеюсь, вы знаете, как работать с окном. Я бы также предложил делать перекрывающиеся окна, если вам нужны более точные временные измерения.

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

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

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

person Jeremy Salwen    schedule 27.08.2011
comment
Этот ответ мне очень помог! Очень подробно! +1. Спасибо! - person Valentin Radu; 20.10.2011
comment
Большое спасибо, Джереми. +1 к вопросу и все ответы здесь. Хотелось бы +2. На самом деле спасибо. - person Ravi; 01.11.2012
comment
Отличный ответ, спасибо Пи за вопрос и Джереми за отличный ответ. Благодарим за то, что поделились этим. Это была особенно удивительная глубина, которую, я уверен, вы накопили за многие-многие годы. - person sumodds; 11.04.2013
comment
Почему мы устанавливаем первый элемент равным нулю при вычислении автокорреляции с помощью БПФ? - person Tom Huntington; 08.09.2020

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

Сначала рассмотрим синтетический сигнал.

На приведенном ниже графике показан кепстр синтетической устойчивой ноты E2, синтезированной с использованием типичного компонента, близкого к постоянному току, основной частоты 82,4 Гц и 8 гармоник с целыми кратными 82,4 Гц. Синтетическая синусоида была запрограммирована на генерацию 4096 отсчетов.

Обратите внимание на заметный не постоянный пик на 12,36. Ширина кепстра составляет 1024 (выход второго БПФ), поэтому пик соответствует 1024/12,36 = 82,8 Гц, что очень близко к истинной основной частоте 82,4 Гц.

Кепстр синтетической банкноты E2

Теперь рассмотрим реальный акустический сигнал.

На графике ниже показан кепстр ноты E2 настоящей акустической гитары. Сигнал не был обработан окном до первого БПФ. Обратите внимание на заметный пик без постоянного тока при 542,9. Ширина кепстра составляет 32768 (выход второго БПФ), поэтому пик соответствует 32768/542,9 = 60,4 Гц, что довольно далеко от истинной основной частоты 82,4 Гц.

Кепстр акустической гитары E2 note, не оконный

На приведенном ниже графике показан кепстр той же реальной ноты E2 акустической гитары, но на этот раз сигнал был обработан окном Ханна до первого БПФ. Обратите внимание на заметный пик без постоянного тока на уровне 268,46. Ширина кепстра составляет 32768 (выход второго БПФ), поэтому пик соответствует 32768/268,46 = 122,1 Гц, что еще дальше от истинной основной частоты 82,4 Гц.

Кепстр акустической гитары, нота E2, Ханн в окне

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

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

Использованная литература:

Данные реального аудиосигнала, генерация синтетического сигнала, графики, БПФ и кепстральный анализ были выполнены здесь: инструментальный кепстр

person Babson    schedule 13.02.2013

Что не так с вашей существующей техникой, что вас интересует новая? Я не думаю, что кепстр даст вам более точную высоту звука, если это ваша цель. Однако это поможет вам с подавленными основами. Я полагаю, вы могли бы использовать кепстр, чтобы приблизиться, затем вернуться к первому БПФ (которое я бы сохранил в его исходной форме), а затем применить свою хитрую технику к корзине, к которой вас направляет кепстр.

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

Я должен добавить, что метод квадратичной подгонки, по крайней мере, как указано в ссылке от Knowlton, зависит от использования прямоугольного окна в первом БПФ. Как объяснил Paul R в другом из ваших вопросов, если вы выполняете обработку звука, вы должны использовать окно Ханна или Хэмминга на первом БПФ. Итак, я предполагаю, что общий алгоритм может выглядеть так:

  • Возьмите временной буфер x, сделайте оконную копию w.
  • Sx = FFT(x), Sw = FFT(w)
  • c = Log of square magnitude of Sw
  • Cx = FFT(c)
  • Оцените основные (и, возможно, гармоники) с помощью Cx
  • Используйте Sw для хитрого фазового трюка с фундаментальными (или высшими гармониками) бинами.
  • И/или используйте Sx для подгонки квадратичного бина вокруг основной гармоники (или более высокой гармоники).

Примечание (or higher harmonic) применяется, если у вас действительно есть подавленные основные принципы.

И я упомянул об этом в другом вашем вопросе, но почему вы думаете, что для журнала требуется таблица поиска? Почему бы просто не вызвать функцию журнала? Я предполагаю, что время, затраченное на два БПФ (O(n*logn)) затмевает любую другую обработку, которую вы можете выполнить.

person mtrw    schedule 03.01.2011
comment
После шага 3, т. е. c = Log квадратной величины Sw, результирующий массив составляет половину длины исходного массива. Это правда? В этом случае Cx также имеет половину длины исходного массива, и как тогда определяется частота бина в Cx? Извините, если я спрашиваю что-то очень очевидное. - person Ravi; 28.11.2012

Анализ кепстра — это форма гомоморфной обработки, описанная в книге Oppenheim & Schafer «Обработка сигналов с дискретным временем». Когда-то считалось, что это полезно для отделения частоты возбудителя от огибающей формы (может быть, до сих пор, не знаю). Похоже, он работает лучше, когда предоставляется довольно длинное окно стационарных данных.

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

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

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

person hotpaw2    schedule 04.01.2011

Этот ответ предназначен для прочтения в дополнение к сообщению Джереми Салвена, а также для ответа на вопрос о литературе.

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

Обратитесь сюда за подробным объяснением термина и математики /Почти_периодическая_функция#Квазипериодические_сигналы_в_аудио_и_музыкальном_синтезе

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

  • Чистый синусоидальный тон
  • Струнные инструменты с длинными сустейнами и стабильной высотой звука (без вибрато), особенно это касается сустейна, но не так верно для транзиентов.
  • Духовые инструменты, которые дуют достаточно долго.

Примеры сигналов, которые не соответствуют этим условиям:

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

Для определения высоты тона с помощью автокорреляции есть учебник о том, как это реализовано в Praat:

  • http://www.pinguinorodriguez.cl/blog/pitch-in-praat/ Шаг в Праате Краткое объяснение алгоритма обнаружения шага Праата. Это описывает алгоритм под названием «ac».
  • www.fon.hum.uva.nl/paul/praat.html Точный краткосрочный анализ основной частоты и отношения гармоник к шуму семплированного звука. Пол Бурсма. Труды IFA 17: 97-110.

В документе подробно описывается использование несмещенной автокорреляции (термин, используемый Джереми Салвеном) для обнаружения основного тона, а также показано, что он превосходит автокорреляцию со смещением для обнаружения основного тона. Хотя он отмечает, что результаты автокорреляции значимы только до половины размера окна, вам не нужно вычислять вторую половину.

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

Алгоритм, использованный в статье Бурсма, можно описать в 5 шагов:

  1. Удалите DC из сигнала, который будет обработан в окне (x - x_avg)
  2. Окно сигнала с использованием функции конусности (он утверждает, что для этого используется окно Ханна или, лучше, окно Гаусса)
  3. Автокоррелирует сигнал
  4. Разделите функцию автокорреляции на автокорреляцию используемого окна.
  5. Выбор пика (аналогично предыдущим алгоритмам)

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

Далее ИНЬ: - Де Шевенье, Ален и Хидэки Кавахара. «ИНЬ, оценщик основной частоты речи и музыки». Журнал Акустического общества Америки 111.4 (2002): 1917-1930.

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

И наконец, SNAC и WSNAC Филипа МакЛеода (уже подключены Джереми Салвеном):

  • Филип Маклеод, Инструменты быстрого и точного определения высоты тона для анализа музыки, докторская диссертация, факультет компьютерных наук, Университет Отаго, 2008 г.
  • Маклеод. П, Вивилл. G, «Более разумный способ найти шаг», Proc. Международная компьютерная музыкальная конференция, Барселона, Испания, 5–9 сентября 2005 г., стр. 138–141.
  • Маклеод. П, Вивилл. G, «Визуализация музыкального поля», Proc. Computer Graphics International, Токио, Япония, 9–11 июля 2003 г., стр. 300–303.

Их можно найти на сайте Mira.otago.ac.nz/tartini/papers.html.

Я не особо вчитывался в это, но есть упоминание о нем как о методе уменьшения вредного воздействия сужающегося окна предвзятой автокорреляции, который отличается от метода, используемого Бурсма. (обратите внимание, что я ничего не встречал о MPM, поэтому ничего не могу сказать об этом)

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

Джереми Салвен:

То есть предположим, что вы построили график функции sin(4x)+sin(6x)+sin(8x)+sin(10x). Если вы посмотрите на это, станет ясно, что она имеет ту же частоту, что и функция sin(2x). Однако, если вы примените к этой функции анализ Фурье, ячейка, соответствующая sin(2x), будет иметь нулевую величину. Таким образом, считается, что этот сигнал имеет «отсутствующую основную частоту», потому что он не содержит синусоиды частоты, которую мы считаем.

Я хотел бы возразить, что хотя данный сигнал является периодическим при \omega=2, это не то же самое, что иметь ту же частоту, что и функция sin(2x). Как покажет анализ Фурье, составляющая sin(2x) имеет нулевую величину. Это связано с тем, что существует связь между высотой тона, частотой и основной частотой сигнала, но они разные и не взаимозаменяемые. Важно помнить, что высота звука является субъективным измерением, что она зависит от человека, как того, кто ее воспринимает. Похоже, что он имеет ту же частоту, что и sin(2x), так мы воспринимаем его визуально. Тот же эффект также проявляется в восприятии высоты тона и звука. пример, который сразу же пришел на ум, - это Beats, то есть воспринимаемая высота звука, которая слышна, когда есть две синусоиды с близкими, но разными частотами.

person shanihp    schedule 13.02.2014