[an error occurred while processing this directive]
Да, но для того, чтобы этим воспользоваться, надо знать Hmax :-(
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)
Отправлено
homekvn
19 июля 2006 г. 17:22
В ответ на:
Ответ: Нет. На сколько помню, система с линейной ФЧХ всегда может быть развалена на минимально-фазовую систему , максимально-фазовую и систему с нулями на единичном круге те Hlin(z) = Hmin*Hunit_circ*Hmax. Hmax - все нули вовне круга. Смотрю в Оппенгейма-Шафера и вижу что Hmax = Hmin(z^-1)z^(-M) M - число нулей в круге. Может быть это поможет+
отправлено andy_P 19 июля 2006 г. 17:07
Составить ответ
|||
Конференция
|||
Архив
Ответы
Или нули функции. Не знаю вычислительно дешевого ответа, поэтому и не встревал в дискуссию пока не увидел заведомо неправильного утверждения. Мне тоже кажется, что единственный вариант - это то что SM советует. Может можно еще отсинтезячить систему с линейной фазой и сдвигать ИХ влево отбрасывая шибко маленькие члены ИХ? Групповая задержка уменьшится все-таки.
—
andy_P
(19.07.2006 17:29
80.82.63.185
,
пустое
)
Да я так и начинал рассуждать, только долго ее так не подвигаешь - рано или поздно начнутся большие компоненты (ведь исходная ИХ симметричная). Вроде, получилось то, что надо. Действительно, похоже, только Гильбертом и можно определить мин. фазу.
—
homekvn
(19.07.2006 17:39
212.185.161.237
,
пустое
)
Ну еще вариант:-)) Найти нули квадрата АЧХ-и. Оставить те, что внутри круга. У тех, что на круге, хотя они неправильные, уполовинить кратность. :-))
—
-=ВН=-
(19.07.2006 18:13
193.125.71.140
,
пустое
)
Я уж лучше Гильберта возьму с логарифмом вкупе :-)
—
homekvn
(19.07.2006 18:26
212.185.161.237
,
пустое
)
Берите, берите, тока учтите, что Гильберт есть БИХ, причем нереализуемый, если подходить к нему с фильтровой точки зрения, а получить Вам надо КИХ:-) Да и чтобы Гильберта брать, нужно прежде нули вовнутрь упихать:-)
—
-=ВН=-
(19.07.2006 18:40
193.125.71.140
,
пустое
)
Да я КИХом Гильберта очень недурно саппросимирую - делал уже. Вопрос в порядке фильтра
—
homekvn
(19.07.2006 19:31
212.185.161.237
,
пустое
)
Ни разу не сомневаюсь:-) Но ПГ все-таки фильтр, сл-но длина его отклика =сумме длин входа и ИХ. И что получается - у Вас есть АЧХ, сколько-то там точек. Вы ее пропускаете через ПГ и получаете (по правилам) с-а-а-всем другое, большее, число точек в ФЧХ. Теперь нужно дорисовать недостающие точки АЧХ. Как? Опять через Гильберта, но другого размера. Однако теперь в АЧХ будет излишек точек, надо ФЧХ корректировать. Ой.
—
-=ВН=-
(19.07.2006 19:49
193.125.71.140
,
пустое
)
А что, выделить нужный кусок после пропускания через фильтр - трудно? Это как при любой блочной обработке.
—
homekvn
(19.07.2006 19:59
212.185.161.237
,
пустое
)
Причем здесь блочная обработка? :-)
—
-=ВН=-
(19.07.2006 20:03
193.125.71.140
,
пустое
)
Да вобщем-то и ни причем, разве что вот (+)
—
homekvn
(19.07.2006 20:11
212.185.161.237
, 151 байт)
Я это делаю так (см. ссылку). Только вместо hilbert будет стоять свертка с гильбертовским КИХ-фильтром.
—
homekvn
(19.07.2006 19:56
212.185.161.237
,
пустое
,
ссылка
)
Да вместо hilbert и оставьте ее реализацию - через ффт - как в sigal/hilbert.m
—
SM
(19.07.2006 20:07
195.225.131.186
,
пустое
)
тем более, что "сигнал", т.е. АЧХ, у Вас предмет вполне конечный.
—
SM
(19.07.2006 20:09
195.225.131.186
,
пустое
)
Да я это только для ВН написал, чтобы не привязываться к реализации. Формально там будет свертка с гильбертовским КИХом, а как она будет реализована - не все ли равно?
—
homekvn
(19.07.2006 20:13
212.185.161.237
,
пустое
)
Абсолютно все равно. Я про то, что либо Вы усекаете ее, либо используете циклическую.
—
-=ВН=-
(19.07.2006 20:24
193.125.71.140
,
пустое
)
Раньше усекал. В этот раз - подумаю. Поскольку раньше (в другой задаче) я пропускал через Гильберта поток - и там, разумеется была нормальная свертка. Здесь, вероятно, поступлю также, но утром поиграю и с циклической сверткой - может, вполне окажется пригодной.
—
homekvn
(19.07.2006 20:29
212.185.161.237
,
пустое
)
Да ни при чем здесь поток вообще. А с циклической получится неплохо.:-))
—
-=ВН=-
(19.07.2006 20:44
193.125.71.140
,
пустое
)
Не, с практической точки зрения поток здесь все-таки причем. Хотя чисто теоретически, может, и не причем. Если я пропускаю поток, то имею для заданного блока сигнала прогильбертированный блок. Надо только задержку в негильбертированный сигнал добаваить и все будет соответствовать. Я же привел примерчик кода на матлабе чуть выше (см. ссылку)
—
homekvn
(19.07.2006 21:27
84.146.47.137
,
пустое
,
ссылка
)
Да какой поток? Нет его. Речь об усечении, либо циклич. свертке. Потому что с линейной неусеченной сверткой ln(АЧХ) с Г. не справитесь. А как Вы эту усеченную линейную, либо циклическую свертки считаете - по барабану.
—
-=ВН=-
(19.07.2006 21:41
193.125.71.140
,
пустое
)
Все же советую глянуть в hilbert.m - проще и быстрее вряд-ли сделаете :)
—
SM
(19.07.2006 20:35
195.225.131.186
,
пустое
)
Хорошо. Спасибо за совет, посмотрю.
—
homekvn
(19.07.2006 21:21
84.146.47.137
,
пустое
)
Почему обязательно вовнутрь? Их надо с ед. окр. снести куда-нить. И не для гильберта, а для логарифма.
—
SM
(19.07.2006 18:50
195.225.131.186
,
пустое
)
Да нет, это св-во такое. В аналоге, функция претендующая на звания пер. ф-ии мин. фазовой цепи, не должна иметь нулей с полюсами в правой полуплоскости. А в цифре - соответственно снаружи ед. окр. А Гильберт просто связывает ln(АЧХ) и ФЧХ минимально-фазовой ф-ии.
—
-=ВН=-
(19.07.2006 18:57
193.125.71.140
,
пустое
)
Так ежели нули вышвырнуть с ед.окр., дабы логарифму не мешать, а затем фазу рассчитать как ПГ(лог(модуль)), они, нули, сами и влезут обратно вовнутрь :) Что и требуется. А про св-ва я знаю, где мин. фазовая цепь что иметь должна.
—
SM
(19.07.2006 19:09
195.225.131.186
,
пустое
)
Дык фильтр-то другой будет, если нули с ед. окружности выпихнуть:-) А насчет куда выпихивать - ну зачем же их наружу выпихивать, если все равно внутри им придется быть:-)
—
-=ВН=-
(19.07.2006 19:16
193.125.71.140
,
пустое
)
Ну так я и предупреждал там о некоем геморрое с нулями :) А выпихнуть их можно совсем чуток, чтобы остаться в допусках на АЧХ.
—
SM
(19.07.2006 19:22
195.225.131.186
,
пустое
)
SM, а все-таки: Если в АЧХ нулей нет то откуда нули возьмутся на единичном круге (может я не рюхаю чего?)
—
andy_P
(19.07.2006 19:31
80.82.63.185
,
пустое
)
Так это же был КИХ фильтр с линейной фазой. Они там, как правило, есть.
—
SM
(19.07.2006 19:33
195.225.131.186
,
пустое
)
А КИХ фильтр с линейной фазой просто не может быть мин-фазовым. Иначе у него фаза настолько минимальна, что одна и та же для разных фильтров:-)
—
-=ВН=-
(19.07.2006 19:41
193.125.71.140
,
пустое
)
Да не, тут уже договорились, что линейнофазовый КИХ из квадрата АЧХ синтезячить. Потом уже нули сортировать.
—
andy_P
(19.07.2006 19:44
80.82.63.185
,
пустое
)
Где договорились?
—
-=ВН=-
(19.07.2006 19:50
193.125.71.140
,
пустое
)
Да вот я писал про три составляющих передаточной функции линейнофазовой системы
—
andy_P
(19.07.2006 19:55
80.82.63.185
,
пустое
,
ссылка
)
Но ведь это раком. Ну представьте, заданная АЧХ, так сложилось, есть АЧХ минимально-фазового фильтра. А линейная фаза просто не бывает минимальной. Вы предлагаете из заданной АЧХ , значит и в этом случае, тоже как-то получить лин. фазовый. Ну Вы его получите только покорежив. Теперь из фильтра с лин. фазой и кореженной АЧХ надо получить мин. фазу и исх. АЧХ. Чем-то анекдот про 2-х ковбоев напоминает:-(
—
-=ВН=-
(19.07.2006 20:13
193.125.71.140
,
пустое
)
На счет раком - согласен - не мой день сегодня. Да и не выдвигал я это как лучший вариант по реализации, а просто как возможность. Если Гильберта не охота, то можно построить линейнофазовый фильтр из квадрата AЧХ и поискать его нули внтури верхней половинки единичного круга.
—
andy_P
(19.07.2006 20:21
80.82.63.185
,
пустое
)
АЧХ задана, фазу надо минимальной сделать :-)
—
homekvn
(19.07.2006 20:03
212.185.161.237
,
пустое
)
У homekvn вроде бы АЧХ была задана, если там нулей нет, то и проблем вроде бы нет? По ней линейнофазовый фильтр скажем типа I отсинтезячить - дело техники - у него полюсов соответственно тоже не появится?
—
andy_P
(19.07.2006 19:39
80.82.63.185
,
пустое
)
Его матлаб-пример явно говорил о том, что изначально в наличии КИХ с линейной фазой.
—
SM
(19.07.2006 19:54
195.225.131.186
,
пустое
)
А если он в частотной сразу синтезит по заданной АЧХ так тем проще. Нулей недопущать!
—
SM
(19.07.2006 19:56
195.225.131.186
,
пустое
)
Я просто думал - меня переклинило. Если в АЧХ нулей нет, то соответственно нулей на единичном круге и не будет.
—
andy_P
(19.07.2006 19:57
80.82.63.185
,
пустое
)
Кстати, если их нет в дискретных точках выборок АЧХ, это не значит, что они не окопались рядом, хорошо замаскировавшись :)
—
SM
(19.07.2006 20:14
195.225.131.186
,
пустое
)
Тоже так было подумал - но нет :-). Если нет, то на мой взгляд не появятся.
—
andy_P
(19.07.2006 20:25
80.82.63.185
,
пустое
)
Да промахнуться можно:-)
—
-=ВН=-
(19.07.2006 20:34
193.125.71.140
,
пустое
)
Смутили совсем :-) Пусть есть некий КИХ фильтр , скажем, c линейной фазой. Есть отсечты его АЧХ (ненулевые). Вопрос - могут ли нули передаточной его функции оказаться на единичном круге?
—
andy_P
(19.07.2006 20:43
80.82.63.185
,
пустое
)
Дык я старался:-) А вот Вам встречный вопрос:-) Есть КИХ длиной 256, все отсчеты ИХ =1. Находим его АЧХ путем взятия Фурье над ИХ, с дальнейшим модулем, длиной 256. Как Вы считаете, будет ли эта АЧХ соответствовать действительности? Этот фильтр на самом деле будет пропускать только 0 частоту, а остальные давить насмерть?:-)
—
-=ВН=-
(19.07.2006 20:51
193.125.71.140
,
пустое
)
Да согласен я :-) . По синку все полезет а не только 0. Линейность фазы и нули меня смутили. Там получается передаточная функция вполне определенного вида. Вот и казалось что H(exp(jw)) никак не сможет нулю равняться.
—
andy_P
(19.07.2006 21:15
80.82.63.185
,
пустое
)
Конечно могут. Если они расположены на частотах где-то между отсчетов.
—
SM
(19.07.2006 20:45
195.225.131.186
,
пустое
)
Сразу согласился бы если бы не было линейной фазы в вопросе. А вот с линейной - мне кажется что нет. Но доказать сходу блин не могу.
—
andy_P
(19.07.2006 20:48
80.82.63.185
,
пустое
)
Так можно подойти с обратной стороны - сначала расположить нули на ед. окр. (и не только), получив лин. фазу, а потом сделать выборки АЧХ как z-преобразования на ед.окр., да так, что ни один ноль не попадет :)
—
SM
(19.07.2006 20:50
195.225.131.186
,
пустое
)
Тьфу. Согласен. Торможу.
—
andy_P
(19.07.2006 20:53
80.82.63.185
,
пустое
)
Кстати, лин. фазу можно и без нулей на окружности получить - лишь бы пары были все симметричны относительно нее.
—
SM
(19.07.2006 21:11
195.225.131.186
,
пустое
)
Я то думал, что скажем синтезячил скажем фильтр типа I по АЧХ без нулей и автоматически не имеем нулей на единичном круге в передаточной функции.
—
andy_P
(19.07.2006 21:17
80.82.63.185
,
пустое
)
Да, я прямо в частотной области синтезю. Нули могу и убрать.
—
homekvn
(19.07.2006 20:01
212.185.161.237
,
пустое
)
Да вряд ли это выход на практику имеет при больших N. Просто при отсутствии нулей можно не бояться гильберта от логарифма делать.
—
andy_P
(19.07.2006 20:04
80.82.63.185
,
пустое
)
Вот я и не буду бояться логарифм брать (Гильберт уже не причем)
—
homekvn
(19.07.2006 20:15
212.185.161.237
,
пустое
)
Дык.
—
andy_P
(19.07.2006 20:24
80.82.63.185
,
пустое
)
Если там нет 0, значит там есть полюсы, а БИХ ему что-то не нужен, полюсы, кстати, должны тоже внутри быть, но это так естественно:-)
—
-=ВН=-
(19.07.2006 19:43
193.125.71.140
,
пустое
)
Я про нули на единичном круге трындел. Какие-то нули всяко есть Ажник N штук (N - длина фильтра).
—
andy_P
(19.07.2006 19:46
80.82.63.185
,
пустое
)
Так я же Вас и не обвиняю ни в чем:-) А чтобы 0 двигать, надо их хотя бы знать:-)
—
-=ВН=-
(19.07.2006 19:30
193.125.71.140
,
пустое
)
При четной симметрии и реальной ИХ можно еще нули внутри верхнего полукруга поискать. Но это - процесс нерадостный.
—
andy_P
(19.07.2006 17:53
80.82.63.185
,
пустое
)
Только искать-то надо те, что снаружи. Чтобы внутрь их запихать.
—
SM
(19.07.2006 17:56
195.225.131.186
,
пустое
)
Если те что внутри нашел, то те что снаружи - не проблема :-). В полукруге их N/4 и хоть облать поиска ограничена :-)
—
andy_P
(19.07.2006 18:01
80.82.63.185
,
пустое
)
И вообще это дело неблагодарное, нули искать...
—
SM
(19.07.2006 18:09
195.225.131.186
,
пустое
)
Эт точно. Думаю. что можно свести к решению системы линейных уравнений. Да хрена ль толку если скажем N > 1024 :-)
—
andy_P
(19.07.2006 18:15
80.82.63.185
,
пустое
)
Эт точно!
—
homekvn
(19.07.2006 17:56
212.185.161.237
,
пустое
)
Да, всю ее удвигать нафиг.
—
-=ВН=-
(19.07.2006 17:33
193.125.71.140
,
пустое
)
А с каким удовольствием я бы вместе с ней задвинул бы на всю работу вообще и ушел бы в отпуск :-(
—
andy_P
(19.07.2006 18:02
80.82.63.185
,
пустое
)
Я б тоже. Но в этом году уже почти весь отпуск отгулял...
—
homekvn
(19.07.2006 18:11
212.185.161.237
,
пустое
)
Чувтсвую, что ментальная смерть без отпуска уже наступила. Теперь жду физической :-)
—
andy_P
(19.07.2006 18:18
80.82.63.185
,
пустое
)
Ну, если философски взглянуть на этот вопрос, то, как говорят жить вредно - от этого умирают... :-)
—
homekvn
(19.07.2006 18:30
212.185.161.237
,
пустое
)
Философия - это гораздо хуже чем отпуск. Вы ведь должны помнить - недавно гуляли :-)
—
andy_P
(19.07.2006 18:32
80.82.63.185
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание