Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обратная импульсная характеристика
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
michael34
У меня есть среда передачи сигнала. Я задаю её импульсную характеристику в аналитическом виде как экспоненциально убывающую синусоиду. Далее делаю преобразование Фурье этой функции и получаю АФЧХ среды. Для моделирования использую MATLAB и функцию FFT. Работаю с массивами отсчётов ИХ и АФЧХ. Далее каждый элемент массива АФЧХ возвожу в степень минус один. Получаю масив обратной АФЧХ среды. Далее делаю обратное преобразование Фурье и должен бы получить обратную ИХ среды. Но... искажённый сигнал в свёртке с ней далеко не похож на исходный. И в результат свёртки прямой и обратной ИХ не есть дельта-функция. Кто-нибудь может подсказать, что я делаю неправильно?
st256
Цитата(michael34 @ Jul 26 2006, 16:08) *
У меня есть среда передачи сигнала. Я задаю её импульсную характеристику в аналитическом виде как экспоненциально убывающую синусоиду. Далее делаю преобразование Фурье этой функции и получаю АФЧХ среды. Для моделирования использую MATLAB и функцию FFT. Работаю с массивами отсчётов ИХ и АФЧХ. Далее каждый элемент массива АФЧХ возвожу в степень минус один. Получаю масив обратной АФЧХ среды. Далее делаю обратное преобразование Фурье и должен бы получить обратную ИХ среды. Но... искажённый сигнал в свёртке с ней далеко не похож на исходный. И в результат свёртки прямой и обратной ИХ не есть дельта-функция. Кто-нибудь может подсказать, что я делаю неправильно?


Хрен его знает... Но в любом случае, я бы не смог, во-первых, получить конечное ДПФ для Вашей ИХ, а во-вторых свернуть Вашу бесконечную ИХ с конечной, полученную при помощи обратного ДПФ... Но как я уже сказал ранее: хрен его знает, мОлодежь нынче шибко умная, букварей не читаетЬ, а читаетЬ она комиксы smile.gif

P.S. Забыл сказать, в комиксах про оконные методы не пишут... в смысле не рисуют... smile.gif
Stanislav
Цитата(st256 @ Jul 26 2006, 18:16) *
...Но в любом случае, я бы не смог, во-первых, получить конечное ДПФ для Вашей ИХ...
А вот я бы - смог. biggrin.gif

Цитата(st256 @ Jul 26 2006, 18:16) *
...а во-вторых свернуть Вашу бесконечную ИХ с конечной, полученную при помощи обратного ДПФ...
К Вашему сведению, это делает любой уважающий себя КИХ-фильтр. Но с уважением у нас, как водится, большие проблеммы...

Цитата(st256 @ Jul 26 2006, 18:16) *
...Но как я уже сказал ранее: хрен его знает, мОлодежь нынче шибко умная, букварей не читаетЬ, а читаетЬ она комиксы smile.gif
P.S. Забыл сказать, в комиксах про оконные методы не пишут... в смысле не рисуют... smile.gif
Интересно бы узнать, что это за методы, о которых не пишут в комиксах?

Цитата(michael34 @ Jul 26 2006, 11:08) *
У меня есть среда передачи сигнала. Я задаю её импульсную характеристику в аналитическом виде как экспоненциально убывающую синусоиду. Далее делаю преобразование Фурье этой функции и получаю АФЧХ среды. Для моделирования использую MATLAB и функцию FFT. Работаю с массивами отсчётов ИХ и АФЧХ. Далее каждый элемент массива АФЧХ возвожу в степень минус один. Получаю масив обратной АФЧХ среды. Далее делаю обратное преобразование Фурье и должен бы получить обратную ИХ среды. Но... искажённый сигнал в свёртке с ней далеко не похож на исходный. И в результат свёртки прямой и обратной ИХ не есть дельта-функция. Кто-нибудь может подсказать, что я делаю неправильно?
Метод построения обратного фильтра с помощью FFT в данном случае не слишком применим. Лучше рассмотреть возможность параметрического представления модели (напр. AR), тогда синтез обратного фильтра не составит большого труда. Эффективность же гораздо выше...

PS. Кроме того, возводить в степень -1 нельзя: какие-то термы FFT могут быть близки к 0.
PPS. Не задавайте ИХ в таком экстремальном виде - иначе проблемы неизбежны...
st256
Цитата(Stanislav @ Jul 27 2006, 00:42) *
Цитата(st256 @ Jul 26 2006, 18:16) *
...Но в любом случае, я бы не смог, во-первых, получить конечное ДПФ для Вашей ИХ...
А вот я бы - смог. biggrin.gif


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

Цитата(Stanislav @ Jul 27 2006, 00:42) *
Цитата(st256 @ Jul 26 2006, 18:16) *
...а во-вторых свернуть Вашу бесконечную ИХ с конечной, полученную при помощи обратного ДПФ...
К Вашему сведению, это делает любой уважающий себя КИХ-фильтр.


Да ну??? Таки все время он ето делает, делает и никак доделать не может? Ну дела....

Цитата
Но с уважением у нас, как водится, большие проблеммы...


А чо увАжить-то надо? Смелые мысли собеседника? Та за ради Бога! Подгоняйте мыслю.

Цитата
Цитата(st256 @ Jul 26 2006, 18:16) *
...Но как я уже сказал ранее: хрен его знает, мОлодежь нынче шибко умная, букварей не читаетЬ, а читаетЬ она комиксы smile.gif
P.S. Забыл сказать, в комиксах про оконные методы не пишут... в смысле не рисуют... smile.gif
Интересно бы узнать, что это за методы, о которых не пишут в комиксах?


Да хрен его знаить... Так казал щоб красивше було... Можа и нетути никаких методов таких... А можа про них даже в комиксах пишуть... В смысле, рисують...
NickNich
Цитата(michael34 @ Jul 26 2006, 11:08) *
Кто-нибудь может подсказать, что я делаю неправильно?


Вообщем-то все.

Простой пример - если у Вас есть ИХ длиной N отсчетов, и отрезок фильтруемого сигнала длиной N отсчетов, то результат фильтрации через свертку будет иметь длину 2N-1 отсчетов. Это правильный подход.

Подход интуитивно очевидный но неправильный - преобразовать оба эти отрезка (ИХ и кусок сигнала) через ДПФ, перемножить, и преобразовать обратно. Результат этой операции не будет равен написанному выше, уже потому что длина результата - N отсчетов.

Для того, чтобы два подхода дали одинаковый результат надо оба отрезка
(ИХ и кусок сигнала) добить нулями взад до длины 2N-1, рассчитать ДПФ, перемножить и преобразовать обратно.

Чтот касается восстановления сигнала, пропущенного через фильтр, то точно восстановить невозможно. АЧХ фильтра имеет нули, а на ноль делить как известно нельзя. но приближенно восстановить можно - гугль и ключевое слово deconvolution Вам в помощ.
michael34
Цитата(Stanislav @ Jul 26 2006, 20:42) *
PS. Кроме того, возводить в степень -1 нельзя: какие-то термы FFT могут быть близки к 0.
PPS. Не задавайте ИХ в таком экстремальном виде - иначе проблемы неизбежны...


В данном моём конкретном случае нулей нет.
А в каком виде задавать?
alex_os
C FFT хорошего мало у Вас получится. Лучше попытаться решить в (среднеквадратическом смысле) систему уравнений H*c = d, где H матрица сверти получается из вашей импульсной характеристики, с - искомая ихпульсная характеристика фильтра, d -желаемая импульсная хар-ки системы, в данном случае это вектор где один элемент =1 остальные нули. с получается в результате решения системы линейных уравнений: H'*H*c = H'*d; (см. прикрепленный файл); Это называется нормальное уравнение. Для информации можно поискать на темы "Метод наименьших квадратов" "Нормальное уравнение", или из области связи например "least square equalization".

Lh = 10; % length of impulse reponce
Lc = 20; % length of fir

h = sin( (1:Lh)*2*pi*3/Lh).*exp(-0.3*(1:Lh));
h=h.';
H = convmtx(h, Lc);
d = zeros(Lc+Lh-1, 1);
d(6) = 1;

c = pinv(H'*H)*(H'*d);
size(H)

figure(1);
plot(h );

figure(2);
plot©;

figure(3);
plot(conv(c, h)); % plot convolution c*h
Stanislav
Цитата(michael34 @ Jul 27 2006, 12:28) *
В данном моём конкретном случае нулей нет.
А в каком виде задавать?
Нули могут появиться, из-за усечения ИХ.
Вообще-то, конечно, можно и в таком (насколько я понимаю, это аналог колебательной системы 2-го порядка), если затухание за время анализа достаточно велико.
Только если Вы для оценивания параметров системы способом, подобным описанному в предыдущем посте, выберете, например, AR-модель 4-го порядка, решение может быть неустойчивым.
Иными словами, нужно следить за тем, чтобы порядок модели не превосходил порядок системы.
Добавление в систему шума повышает устойчивость решения.
В Матлабе есть хорошо документированный "System Identification Toolbox" и простой GUI к нему. Есть описание методов параметрического и непараметрического оценивания системы.
st256
Цитата(NickNich @ Jul 27 2006, 16:03) *
Цитата(michael34 @ Jul 26 2006, 11:08) *

Кто-нибудь может подсказать, что я делаю неправильно?


Вообщем-то все.

Простой пример - если у Вас есть ИХ длиной N отсчетов, и отрезок фильтруемого сигнала длиной N отсчетов, то результат фильтрации через свертку будет иметь длину 2N-1 отсчетов. Это правильный подход.


Не, не правильный. Если далее речь идет о ДПФ, то свертка будет иметь все-таки N отсчетов. Только называться она будет циклической.

Цитата
Подход интуитивно очевидный но неправильный - преобразовать оба эти отрезка (ИХ и кусок сигнала) через ДПФ, перемножить, и преобразовать обратно. Результат этой операции не будет равен написанному выше, уже потому что длина результата - N отсчетов.


Кхе-кхе...

Цитата
Для того, чтобы два подхода дали одинаковый результат надо оба отрезка
(ИХ и кусок сигнала) добить нулями взад до длины 2N-1, рассчитать ДПФ, перемножить и преобразовать обратно.


И скакой стороны предпологается добивать нулями? Справа или слева?

Цитата
Чтот касается восстановления сигнала, пропущенного через фильтр, то точно восстановить невозможно. АЧХ фильтра имеет нули, а на ноль делить как известно нельзя. но приближенно восстановить можно - гугль и ключевое слово deconvolution Вам в помощ.


Все смешалось в доме Облонских... И восстановить можно и даже делить на 0. Вот вам примерчик:

у среды z-преобразование вида 1+Z^(-1), а у компенсатора 1/(1+Z^(-1))

после коррекции имеем (1+Z^(-1))/(1+Z^(-1)) = 1

И последнее. Самое последнее дело ссылаться на англоязычные источники. Обычно, ничего хорошего в них нет, и Проакис тому лучшее подтверждение.
st256
Цитата(michael34 @ Jul 27 2006, 17:28) *
Цитата(Stanislav @ Jul 26 2006, 20:42) *

PS. Кроме того, возводить в степень -1 нельзя: какие-то термы FFT могут быть близки к 0.
PPS. Не задавайте ИХ в таком экстремальном виде - иначе проблемы неизбежны...


В данном моём конкретном случае нулей нет.
А в каком виде задавать?


Понимаете, все Ваши методы просто не могут быть точными. Скорее всего. Почему?

Чтобы получить обратную характеристику у фильтра не нужно никакого ДПФ. Достаточно найти обратное z-преобразование.
Пусть у Вас есть фильтр

a1+a2*Z^(-1)+....+aN*Z^(-1)
-------------------------------------
b1+b2*Z^(-1)+....+bN*Z^(-1)

то обратную характеристику будет иметь фильтр

b1+b2*Z^(-1)+....+bN*Z^(-1)
-------------------------------------
a1+a2*Z^(-1)+....+aN*Z^(-1)

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






Цитата(Stanislav @ Jul 27 2006, 23:17) *
Цитата(michael34 @ Jul 27 2006, 12:28) *
В данном моём конкретном случае нулей нет.
А в каком виде задавать?
Нули могут появиться, из-за усечения ИХ.



Ну чо за фигня-то? У КИХ всегда есть нули.

...хотя в Москве, возможно думают по-другому...
Stanislav
Цитата(st256 @ Jul 27 2006, 19:13) *
Ну чо за фигня-то? У КИХ всегда есть нули.

...хотя в Москве, возможно думают по-другому...
Шо за брэд?
Речь идёт о к-тах DFT конкретной функции.
st256
Цитата(Stanislav @ Jul 28 2006, 00:29) *
Цитата(st256 @ Jul 27 2006, 19:13) *
Ну чо за фигня-то? У КИХ всегда есть нули.

...хотя в Москве, возможно думают по-другому...
Шо за брэд?
Речь идёт о к-тах DFT конкретной функции.


Стоп! Уже совсем ничего не понимаю... Куда идет Речь? И чего ему там надо???
Stanislav
Цитата(st256 @ Jul 27 2006, 19:56) *
Стоп! Уже совсем ничего не понимаю... Куда идет Речь? И чего ему там надо???
Поднятие уровня Вашего понимания сегодня не входит в мои планы. Хотя, возможно, Вам будет полезно ознакомиться с комплексными числами...
st256
Цитата(Stanislav @ Jul 28 2006, 00:59) *
Цитата(st256 @ Jul 27 2006, 19:56) *
Стоп! Уже совсем ничего не понимаю... Куда идет Речь? И чего ему там надо???
Поднятие уровня Вашего понимания сегодня не входит в мои планы. Хотя, возможно, Вам будет полезно ознакомиться с комплексными числами...


А с чем есчо? Вы пишите, пишите. Я с благодарностью последую любой Вашей писанине!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.