Фильтрация от помех прибора

Захват, обработка и генерирование сигнала
Ответить
dimedrol
beginner
beginner
Сообщения: 13
Зарегистрирован: 02 мар 2010, 22:31
Версия LabVIEW: 8.2
Контактная информация:

Фильтрация от помех прибора

Сообщение dimedrol »

Всем доброго времени суток!

Хочу попросить помощи разобраться вот с какой задачкой.

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

Итак:
Если h(t) - импульсная переходная характеристика прибора, s(t) - сигнал, поступающий на вход прибора, то на выходе получим f(t)
если рассмотреть как свертку, то получается так:
F(w)= H(w)*S(w)

F(w), H(w), S(w) - фурье-образы функций f(t), h(t) и s(t), т.е. соответственно спектр отклика, передаточная функция системы и спектр входного сигнала. На прибор был подан меандр, записан ответ, на основе этих данных предполагается нахождение передаточной характеристики.

Ищу переходную характеристику:
1/H(w)= S(w) / F(w)
передаточная характеристика
передаточная характеристика
в конце перехожу обратно во временную область,

а потом уже делаю обратную свертку с реальным сигналом
2.jpg
2.jpg (23.84 КБ) 2593 просмотра

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

буду рад любому совету/подсказке
AlexRX
user
user
Сообщения: 76
Зарегистрирован: 26 июн 2011, 12:03
Версия LabVIEW: 2012
Контактная информация:

Re: Фильтрация от помех прибора

Сообщение AlexRX »

Рисунок 1. Тип данных на входе в блоки FFT-преобразования - комплексное число (CDB) ? Или DBL (по-умолчанию)? Если первое, то да - операция взятия модуля даст значения амплитуд (для реальных значений надо еще на N поделить), в случае с DBL - положительные числа. Фаза потеряна, да. Потом вы делаете обратное FFT с выводом результата в формате комплексного числа (CDB)

Рисунок 2. Если данные на входе (in) в формате DBL, а судя по тому, что красных точек у входов в блок Deconvolution я не наблюдаю, то это так, следовательно 1/h и идет сюда уже в формате DBL и, либо часть диаграммы отсутствует, либо действительно обратное FFT в комплексном виде не работает как надо, а комплексный вид тут и не нужен.

И еще непонятно, вы создаете массив нулей длиной в количество элементов в in и дополняете его массивом in, получается массив 2*(размер in) с половиной нулей...

Читаю помощь по Deconvolution и вижу:

The Deconvolution VI performs the discrete implementation of the deconvolution using the following steps.

Compute the Fourier transform of the input sequence X * Y.
Compute the Fourier transform of the input sequence Y.
Divide the Fourier transform of X * Y by the Fourier transform of Y. Call the new sequence h.
Compute the inverse Fourier transform of h to obtain the deconvolved sequence X.

т.е. она делает, то что вы описали на Рис 1
Аватара пользователя
kiparym
advanced
advanced
Сообщения: 178
Зарегистрирован: 06 сен 2011, 08:52
Версия LabVIEW: 8.2 & 2011
Откуда: г. Саров
Поблагодарили: 1 раз
Контактная информация:

Re: Фильтрация от помех прибора

Сообщение kiparym »

На прибор был подан меандр, записан ответ, на основе этих данных предполагается нахождение передаточной характеристики.
Для справки:
Для снятия АЧХ устройства меандра явно не достаточно. Мало частот.
Меандр это сумма нечётных гармоник, остальное нули!
Пример:http://www.labviewportal.eu/viewtopic.p ... 415#p52627
dimedrol
beginner
beginner
Сообщения: 13
Зарегистрирован: 02 мар 2010, 22:31
Версия LabVIEW: 8.2
Контактная информация:

Re: Фильтрация от помех прибора

Сообщение dimedrol »

AlexRX,
по рисунку 1:
на входе числа не комплексные, т.е. фазу я потерял и дальнейшие действия получается бессмысленны?
а подавая DBL на вход :labview: не будет считать, что мол есть действительная часть, а мнимую он всю по нулям примет? или добавление нулевой мнимой части надо сделать вручную? поможет ли, чтобы не потерять фазу?
или что сделать чтобы не потерять фазу то?

по 2 рисунку:
1/h идет в формате DBL, либо "в лоб" от предыдущего действа, либо выделив только дествитвительную часть из него (и так и так пробовал).

про "еще не понятно":
из хэлпа по обратной свертке:
X is the deconvolved sequence of X * Y and Y. The number of elements in X is size = n – m + 1 where n is the number of elements in X * Y and m is the number of elements in Y.
поскольку размер массивов 1/h и X одинаковой длины, то на выходе у меня получился бы массив из 1 точки, собственно поэтому и добавляю в начале массива X*Y массив с нулями той же длины.

еще вопрос:
"для реальных значений надо еще на N поделить" - что есть N? число элементов? и что получится? помню, что в двумерных массивах делят на определитель, а тут на число элементов? или я что-то не понимаю?

kiparym,
спасибо! эту особенность меандра я совсем забыл...
вопрос наивный, но: а как лучше тогда сделать?? набор гармоник в диапазане полезного сигнала создавать?
Аватара пользователя
kiparym
advanced
advanced
Сообщения: 178
Зарегистрирован: 06 сен 2011, 08:52
Версия LabVIEW: 8.2 & 2011
Откуда: г. Саров
Поблагодарили: 1 раз
Контактная информация:

Re: Фильтрация от помех прибора

Сообщение kiparym »

...а как лучше тогда сделать?? набор гармоник в диапазане полезного сигнала создавать?
Одиночный импульс. Чем короче, тем выше частотный диапазон. Идеал – дельта функция.
Импульс надо рассматривать как два перехода. Должен предупредить, что задача технически сложна в реализации.
"для реальных значений надо еще на N поделить" - что есть N? число элементов? и что получится?
ДПФ – это практически сумма синусоид. Что бы получить среднее, необходимо разделить на количество элементов. Если необходимо обратное преобразование, то делить не надо.
Ответить

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