Задачка на засыпку для профи

Захват, обработка и генерирование сигнала
kadr
beginner
beginner
Сообщения: 10
Зарегистрирован: 02 авг 2011, 18:14
Версия LabVIEW: 10
Контактная информация:

Задачка на засыпку для профи

Сообщение kadr »

Вот головоломка для профи (я свой мозг уже сломал :crazy: ) Вот спектр двух входящих сигналов:
1входной сигнал к примеру
1входной сигнал к примеру
и
2-й входной сигнал - к примеру белый шум (желательны и другие варианты)
2-й входной сигнал - к примеру белый шум (желательны и другие варианты)
, а это спектр выходного сигнала
выходной сигнал, искажения допустимы, но по сути это негатив сигнала 1 на фоне сигнала 2
выходной сигнал, искажения допустимы, но по сути это негатив сигнала 1 на фоне сигнала 2
Простой вопрос как это сделать? :thank:
Плиииззз, 8-ю бессонную ночь мой мозг не выдержит :suicide:
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Задачка на засыпку для профи

Сообщение IvanLis »

это не совсем спектр
т.к. у спектра по оси Х должна быть частота, а по оси Y значение амплитуды гармоники на этой частоте, (угол фазы гармоники - для спектра фаз)

а в Вашем случае по оси Y - частота, а по оси Х - [чмс], это видимо время, но не понятно как его притянуть к частотному спектру

так что пока, это графики
не похожие не на один из известных мне спектров :rtfm:


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

тогда итоговый сигнал получается путем преобразования "свертки" сигнала, а потом его восстановлением
kadr
beginner
beginner
Сообщения: 10
Зарегистрирован: 02 авг 2011, 18:14
Версия LabVIEW: 10
Контактная информация:

Re: Задачка на засыпку для профи

Сообщение kadr »

ну можно спектрограммой назвать, не суть. на графиках по осям время и частота, может Power Spectrum или WVD Spectrogram VI могут подобное нарисовать, проблема не нарисовать а посчитать разницу амплитуд на соответствующих частотах входных сигналов... можно и нарисовать примерно так...
fig4_big.gif
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Задачка на засыпку для профи

Сообщение IvanLis »

kadr писал(а):ну можно спектрограммой назвать, не суть. на графиках по осям время и частота, может Power Spectrum или WVD Spectrogram VI могут подобное нарисовать, проблема не нарисовать а посчитать разницу амплитуд на соответствующих частотах входных сигналов... можно и нарисовать примерно так...
как раз проблема... разобраться в том, что же Вам надо
если необходимо просто вычислить "разницу амплитуд на соответствующих частотах"
то берите и вычисляйте, для этого существует БПФ - FFT, это то дело 5 минут
и не надо тут пудрить голову "страшными" рисунками
kadr
beginner
beginner
Сообщения: 10
Зарегистрирован: 02 авг 2011, 18:14
Версия LabVIEW: 10
Контактная информация:

Re: Задачка на засыпку для профи

Сообщение kadr »

IvanLis писал(а):
kadr писал(а):ну можно спектрограммой назвать, не суть. на графиках по осям время и частота, может Power Spectrum или WVD Spectrogram VI могут подобное нарисовать, проблема не нарисовать а посчитать разницу амплитуд на соответствующих частотах входных сигналов... можно и нарисовать примерно так...
как раз проблема... разобраться в том, что же Вам надо
если необходимо просто вычислить "разницу амплитуд на соответствующих частотах"
то берите и вычисляйте, для этого существует БПФ - FFT, это то дело 5 минут
и не надо тут пудрить голову "страшными" рисунками
Эт как же? FFT минус FFT? Может конечно я чего-то не понимаю, а для Вас эт естественно, ну научите пожалуйста... покажите на пальцах ( и на VI тож желательно)
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Задачка на засыпку для профи

Сообщение IvanLis »

kadr писал(а):проблема не нарисовать а посчитать разницу амплитуд на соответствующих частотах входных сигналов...
kadr писал(а):Эт как же? FFT минус FFT? Может конечно я чего-то не понимаю, а для Вас эт естественно, ну научите пожалуйста... покажите на пальцах ( и на VI тож желательно)
Если частота дискретизации сигналов одинаковая, то ДА. Просто минус.
Если частоты различаются, то ситуация сложнее. Надо будет каким, то образом извращаться, но слету сказать не могу как.
Так что сразу вводите ограничение, что интервалы следования отсчетов у обоих сигналов совпадают.

не хочу навязывать своего времени, но мне кажется, что сделать Вам нужно совершенно другое
kadr
beginner
beginner
Сообщения: 10
Зарегистрирован: 02 авг 2011, 18:14
Версия LabVIEW: 10
Контактная информация:

Re: Задачка на засыпку для профи

Сообщение kadr »

IvanLis писал(а):
kadr писал(а):проблема не нарисовать а посчитать разницу амплитуд на соответствующих частотах входных сигналов...
kadr писал(а):Эт как же? FFT минус FFT? Может конечно я чего-то не понимаю, а для Вас эт естественно, ну научите пожалуйста... покажите на пальцах ( и на VI тож желательно)
Если частота дискретизации сигналов одинаковая, то ДА. Просто минус.
Если частоты различаются, то ситуация сложнее. Надо будет каким, то образом извращаться, но слету сказать не могу как.
Так что сразу вводите ограничение, что интервалы следования отсчетов у обоих сигналов совпадают.

не хочу навязывать своего времени, но мне кажется, что сделать Вам нужно совершенно другое
чет не получается, если амплитуда сигнала 1 больше амплитуды сигнала 2, то разница уходит в минус, и на спектре мы получаем инверсию, а задачка в том чтоб стремилось к нулю...
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Задачка на засыпку для профи

Сообщение IvanLis »

kadr писал(а):чет не получается, если амплитуда сигнала 1 больше амплитуды сигнала 2, то разница уходит в минус, и на спектре мы получаем инверсию, а задачка в том чтоб стремилось к нулю...
на каком спектре?
kadr писал(а):проблема не нарисовать а посчитать разницу амплитуд на соответствующих частотах входных сигналов...
это кажется Вы писали?

и как Вы не поймете, что не спектр у вас на рисунке....!
kadr
beginner
beginner
Сообщения: 10
Зарегистрирован: 02 авг 2011, 18:14
Версия LabVIEW: 10
Контактная информация:

Re: Задачка на засыпку для профи

Сообщение kadr »

IvanLis писал(а):
kadr писал(а):чет не получается, если амплитуда сигнала 1 больше амплитуды сигнала 2, то разница уходит в минус, и на спектре мы получаем инверсию, а задачка в том чтоб стремилось к нулю...
на каком спектре?
kadr писал(а):проблема не нарисовать а посчитать разницу амплитуд на соответствующих частотах входных сигналов...
это кажется Вы писали?

и как Вы не поймете, что не спектр у вас на рисунке....!
ну а что это тогда?
Да тут не просто разница, суть в том что, чем больше амплитуда конкретной частоты в данный момент времени в сигнале 1, тем должна быть меньше амплитуда этой же частоты в этот же момент времени в сигнале 2... Может фильтр управляемый какой-то есть?
Вложения
чтоэто.vi
(50.75 КБ) 166 скачиваний
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Задачка на засыпку для профи

Сообщение IvanLis »

kadr писал(а):ну а что это тогда?
Да тут не просто разница, суть в том что, чем больше амплитуда конкретной частоты в данный момент времени в сигнале 1, тем должна быть меньше амплитуда этой же частоты в этот же момент времени в сигнале 2... Может фильтр управляемый какой-то есть?
Дело немного сдвинулось... :super:
Спектрограмма или как еще называют - Сонограмма
Сонограмма
вот представь что ты видишь перед собой спектр сигнала за небольшой кусочек времени. По оси Х слева-направо отложены частоты: от 20Гц до 20кГц. По оси У отложен уровень каждой из частот в дБ. Т.е. спектр тебе показывает скока каких частот находится в этом кусочке.
Далее напрягись и включай воображение. Напомню, что сейчас ты видишь перед собой некоторую кривую: зависимость громкости от частоты. Теперь для прикола поворачиваем этот наш график на 90 градусов налево: теперь 20Гц внизу, а 20кГц вверху. Теперь представь, что ты пытаешься заглянуть на всё это дело слева: т.е. смотришь не на экран, а вдоль экрана и видишь всего лишь одну вертикальную линию от 20Гц до 20кГц. Значение же уровня с этой точки ты наблюдать не можешь: они кажутся тебе одинаковыми. Возникает вопрос - как смотря сбоку понять какая точка ближе к тебе, а какая дальше. Представь что ты на самолёте летишь и тебе надо понять какой из домов выше, а какой ниже, притом что ты видишь только их крышу. Ну так вот давай договоримся, что чем выше дом, тем белее у него крыша. А чем ниже - тем темнее. Т.е. земля без дома - чёрного цвета. А самый высокий дом имеет крышу белого цвета. Т.е. уровень сигнала чёрный, когда амплитуда стремится к -бесконечности и белый, когда она равна 0дБ. Теперь вспоминаем, что наш график был для одно маленького участочка во времени. Весь наш трэк поделён на большое число таких участочков. Вот мы берём и для каждого из них делаем вот такой вот график с видом сбоку ираскрашенный в соответствии с указанным тока что правилом. Затем выстраиваем их друг за другом и... получаем чёрно-белую сонограмму. Понятно боле-менее? Цветная от чёрно-белой отличается ровно тем, что вместо градаций серого для значения амплитуды выбирают какой-то из оттенков цветов. Например самый тихий - чёрный. Потому уровень постепенно увеличивается и он становится синим, потом из синего переходит в зелёный и наконец самый громкий сигнал рисуешь красным цветом. Ну одним словом это надо уже конкретно смотреть на то по какому принципу сонограмма раскрашена.
достаточно образное описание, но понятно я думаю
в принципе, как и предполагалось ранее, это "оконная свертка"

Посмотрите статью: Осторожно, сонограмма, или не верь глазам своим!
wikipedia.org - Spectrogram

Слету не готов сказать, попробую отпишусь, Вы тоже ручки не складывайте.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Задачка на засыпку для профи

Сообщение IvanLis »

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

вот сам файл
Sonogramma.vi
lv2010
(33.39 КБ) 178 скачиваний
kadr
beginner
beginner
Сообщения: 10
Зарегистрирован: 02 авг 2011, 18:14
Версия LabVIEW: 10
Контактная информация:

Re: Задачка на засыпку для профи

Сообщение kadr »

IvanLis писал(а):в частотной области сделал

вот сам файл
[/attachment]
Здорово!!! Огромное спасибо!!! Работает так как надо, только вот чем сделать обратное STFT чтоб сигнальчик получить??
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Задачка на засыпку для профи

Сообщение IvanLis »

kadr писал(а):Работает так как надо, только вот чем сделать обратное STFT чтоб сигнальчик получить??
По идее операция "локального преобразования фурье" не обратимая, но это мне так кажется. Если и обратима, то с определенными погрешностями, которые зависят от параметров прямого преобразования.
По описаниям STFT используется для анализа, но не преобразований, так что не знаю.

У меня сейчас времени не много этим заниматься, по возможности попробую, что-нибудь родить.
Но мне кажется нужно делать преобразования на этапе FFT в этом случае и обратное преобразование гарантировано, а STFT использовать только для самоконтроля и визуализации.
Последний раз редактировалось IvanLis 07 авг 2011, 16:33, всего редактировалось 1 раз.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5467
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 88 раз

Re: Задачка на засыпку для профи

Сообщение IvanLis »

А Вы случайно не подобное пытаетесь реализовать?
Simple Noise Reduction.pdf
Система шумоподавления для аудио, основанная на методе спектрального вычитания
(317.48 КБ) 172 скачивания
2010.DSPA.Tkachenko_Lukin.Denoising.ru.pdf
Многомасштабный метод спектрального вычитания для подавления шумов в аудиосигналах
(131.49 КБ) 165 скачиваний
Только почему в Вашем примере из шума сигнал вычитали? фильтрация сигнала осуществляется по другому принципу... Хотя какая разница...
В приложенных файлах есть даже ссылки на алгоритмы.
kadr
beginner
beginner
Сообщения: 10
Зарегистрирован: 02 авг 2011, 18:14
Версия LabVIEW: 10
Контактная информация:

Re: Задачка на засыпку для профи

Сообщение kadr »

IvanLis писал(а):А Вы случайно не подобное пытаетесь реализовать?
<!-- ia1 -->Simple Noise Reduction.pdf<!-- ia1 -->
<!-- ia0 -->2010.DSPA.Tkachenko_Lukin.Denoising.ru.pdf<!-- ia0 -->
Только почему в Вашем примере из шума сигнал вычитали? фильтрация сигнала осуществляется по другому принципу... Хотя какая разница...
В приложенных файлах есть даже ссылки на алгоритмы.
Да, все правильно, в примерах именно из шума сигнал, а вообще цель - по тому же алгоритму из сигнала "вычесть" другой сигнал...
Ответить

Вернуться в «Обработка сигнала»