Определить наличие одного аудио сигнала в другом
-
- interested
- Сообщения: 9
- Зарегистрирован: 14 янв 2017, 12:40
- Версия LabVIEW: 13
- Контактная информация:
Определить наличие одного аудио сигнала в другом
Есть два аудио-сигнала .wav разной длинны, необходимо прогнать один по другому и определить содержится ли второй в первом. Строю спектр и нахожу сумму квадратов разностей.
Не уверенна что иду правильным путем, получается у меня проверится только совпадение начал этих сигналов, дальше нужно как-то сдвинуть сигнал и проверить дальше, не знаю как это реализовать.
Может уже были здесь похожие задачи
Не уверенна что иду правильным путем, получается у меня проверится только совпадение начал этих сигналов, дальше нужно как-то сдвинуть сигнал и проверить дальше, не знаю как это реализовать.
Может уже были здесь похожие задачи
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Определить наличие одного аудио сигнала в другом
Совпадение спектров двух сигналов может говорить о некотором совпадении, но не факт. Спектр Вы вычисляете всего сигнала, по этому и сдвигать его никуда не надо.jaxaaa писал(а):Есть два аудио-сигнала .wav разной длинны, необходимо прогнать один по другому и определить содержится ли второй в первом. Строю спектр и нахожу сумму квадратов разностей.
Не уверенна что иду правильным путем, получается у меня проверится только совпадение начал этих сигналов, дальше нужно как-то сдвинуть сигнал и проверить дальше, не знаю как это реализовать.
Может уже были здесь похожие задачи
Вам лучше использовать конволюцию: https://ru.wikipedia.org/wiki/%D0%A1%D0 ... %B8%D0%B7)
Convolution VI: http://zone.ni.com/reference/en-XX/help ... nvolution/
Можно даже положение определить.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- interested
- Сообщения: 9
- Зарегистрирован: 14 янв 2017, 12:40
- Версия LabVIEW: 13
- Контактная информация:
Re: Определить наличие одного аудио сигнала в другом
спасибо за информацию, после работы попробую разобраться
-
- interested
- Сообщения: 9
- Зарегистрирован: 14 янв 2017, 12:40
- Версия LabVIEW: 13
- Контактная информация:
Re: Определить наличие одного аудио сигнала в другом
я тут почитала всякого и правильно я понимаю:если функции имеют близкие значения, то их произведение(значение свертки) большое, а если их значения здорово отличаются - то произведение маленькое
Если да, подскажите как определить величину, сравнивая свертку с которой, я могу сказать, что сигналы похожи?
взять какой-то процент от квадрата БПФ сигнала который я хочу найти?
Далека от этой темы, если что не так исправьте меня
Если да, подскажите как определить величину, сравнивая свертку с которой, я могу сказать, что сигналы похожи?
взять какой-то процент от квадрата БПФ сигнала который я хочу найти?
Далека от этой темы, если что не так исправьте меня
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Определить наличие одного аудио сигнала в другом
Все верно, вот например свертка сигнала с импульсом, пик приходится на совпадение. Вам, можно сказать, нужен согласованный фильтр, в принципе это кросс-корреляция либо конволюция.jaxaaa писал(а):я тут почитала всякого и правильно я понимаю:если функции имеют близкие значения, то их произведение(значение свертки) большое, а если их значения здорово отличаются - то произведение маленькое
По поводу сравнения спектров я уже писал.jaxaaa писал(а):Если да, подскажите как определить величину, сравнивая свертку с которой, я могу сказать, что сигналы похожи?
взять какой-то процент от квадрата БПФ сигнала который я хочу найти?
Что касается порогового значения, то это Вы сами должны определить исходя из проведенных опытов и набранной статистики.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- interested
- Сообщения: 9
- Зарегистрирован: 14 янв 2017, 12:40
- Версия LabVIEW: 13
- Контактная информация:
Re: Определить наличие одного аудио сигнала в другом
Спасибо за помощь,с моими файлами получилось свертка 7,6, помогите определиться с порогом на примере этих файлов
- Вложения
-
- Курсовая.rar
- (781.11 КБ) 229 скачиваний
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Определить наличие одного аудио сигнала в другом
Ну Вы же видите, что получается какая-то ерунда .jaxaaa писал(а):Спасибо за помощь,с моими файлами получилось свертка 7,6, помогите определиться с порогом на примере этих файлов
Должно быть как-то так: А вот есть этот сигнал в исходном или нет, Вам лучше знать.
Но что по мне, то вероятность маленькая.
Здесь я вырезал часть сигнала из исходного, вот результаты. По графику свертки можно определить участок, который я вырезал для сравнения. А это я наложил на него аддитивный шум с амплитудой 0.5 (это 50% от амплитуды сигнала): Результаты свертки в принципе совпадают, но в зависимости от длины сигналов, эти значения будут изменяться.
Ради курсовика можно провести мини эксперимент и сделать выводы.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- interested
- Сообщения: 9
- Зарегистрирован: 14 янв 2017, 12:40
- Версия LabVIEW: 13
- Контактная информация:
Сравнение двух аудиофайлов
Добрый вечер!
Задача прогнать малый файл по большому и по методу наименьших квадратов определить содержится ли малый файл в большом
Вроде думала все что готово,но программа мне выдает, что доступ разрешен даже если сравниваю файлы которые не должны совпадать, не могу найти ошибку.Помогите пожалуста
Файлы 1 и 2 содержатся в файле 3
Файл 1 не содержится в 2
Задача прогнать малый файл по большому и по методу наименьших квадратов определить содержится ли малый файл в большом
Вроде думала все что готово,но программа мне выдает, что доступ разрешен даже если сравниваю файлы которые не должны совпадать, не могу найти ошибку.Помогите пожалуста
Файлы 1 и 2 содержатся в файле 3
Файл 1 не содержится в 2
- Вложения
-
- Программа.rar
- (1.68 МБ) 272 скачивания
-
- leader
- Сообщения: 526
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: Сравнение двух аудиофайлов
Второй цикл сделан так, что при любом входном массиве будет находиться ноль, т.е. "Доступ разрешён". А происходит это потому, что цикл не ограничен и, когда индекс элемента становится больше размерности массива, элемент не находится и значение в этом случае выдаётся по умолчанию, а именно 0.
Что касается метода наименьших квадратов, то там, чтобы получился ноль, необходимо чтобы обе функции были тождественно равны. В реальных сигналах такого никогда не бывает. Поэтому, если уж получил массив наименьших квадратов, то надо искать минимум и сравнивать его с неким числом, являющимся критерием равенства функций.
Что касается метода наименьших квадратов, то там, чтобы получился ноль, необходимо чтобы обе функции были тождественно равны. В реальных сигналах такого никогда не бывает. Поэтому, если уж получил массив наименьших квадратов, то надо искать минимум и сравнивать его с неким числом, являющимся критерием равенства функций.
-
- interested
- Сообщения: 9
- Зарегистрирован: 14 янв 2017, 12:40
- Версия LabVIEW: 13
- Контактная информация:
Re: Определить наличие одного аудио сигнала в другом
Изменила цикл второй, но чистый ноль в сумме квадратов не выходит, хотя я нарезала один файл: 2(начало 1) и 3(конец 1-при сравнении 1 и 3 на графике видно, что последнее значение сумм уходит в 0) содержатся в 1, 4 не содержится в 1.
- Вложения
-
- прога.rar
- (363.13 КБ) 199 скачиваний
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Сравнение двух аудиофайлов
У вас алгоритм не верен, должно быть как-то так:jaxaaa писал(а):Добрый вечер!
Задача прогнать малый файл по большому и по методу наименьших квадратов определить содержится ли малый файл в большом
Вроде думала все что готово,но программа мне выдает, что доступ разрешен даже если сравниваю файлы которые не должны совпадать, не могу найти ошибку.Помогите пожалуста
1. Вычисляете длину сигнатуры S которую будем искать - Ns
2. Вычисляете длину файла F в котором будем искать - Nf
3. Вырезаете из F кусок длиной Ns, для первого шага F[0..Ns-1]. Вычисляете расстояние по метрике, в Вашем случае МНК.
4. Затем то же самое для S и F[1..Ns].
5. И т.д. Получается, что нужно вычислить значения МНК для всех вариантов S и F[x..x+Ns-1], где x=0..Nf-Ns. Получится массив значений МНК, там где значение минимально, там максимальное совпадение. Если значение по метрике МНК=0, там полное совпадение.
6. На основании полученных значений уже принимается решение о наличии искомой сигнатуры в сигнале.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- interested
- Сообщения: 1
- Зарегистрирован: 11 янв 2021, 03:08
- Версия LabVIEW: 17
- Контактная информация:
Re: Определить наличие одного аудио сигнала в другом
Здравствуйте!
Подскажите, пожалуйста, как реализовать ваш алгоритм действий. Через какие-то действия с массивами? Если да, то через какие?
А то я попробовал разобраться и у меня не получилось
Подскажите, пожалуйста, как реализовать ваш алгоритм действий. Через какие-то действия с массивами? Если да, то через какие?
А то я попробовал разобраться и у меня не получилось
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Определить наличие одного аудио сигнала в другом
Если Вы имеете ввиду именно , то прочтите любую книгу, и все станет понятно. Благо сейчас нет недостатка в открытых источниках информации, например: LabVIEW в примерах и задачах и LabVIEW Справочник по функциям.
А при отсутствии желания, Вам ник-то не сможет помочь разобраться.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение