Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ФЧХ её исправление
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
ivan219
Вобщем есть АЦП который искажает фазу сигнала как можно её востановить зная ФЧХ системы???
Самурай
Цитата(ivan219 @ Feb 6 2009, 17:18) *
Вобщем есть АЦП который искажает фазу сигнала как можно её востановить зная ФЧХ системы???


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

А что за АЦП такой, что фазу искажает? И что значит "искажает"?smile.gif
ivan219
Уменя два канала и один канал имеет задержку относительно другого что выражается в разности фаз.

А как всё это дело расчитать где брать такой фильт??? Да и АЧХ уменя тоже надо будет подправить.
shf_05
Цитата(ivan219 @ Feb 6 2009, 22:52) *
Уменя два канала и один канал имеет задержку относительно другого что выражается в разности фаз.

А как всё это дело расчитать где брать такой фильт??? Да и АЧХ уменя тоже надо будет подправить.

ну для начала надо знать в точности Ваши АЧХ, ФЧХ, что именно вносит искажения, какие частоты с-ла, потом уже думать.
ivan219
Я знаю ФЧХ и АЧХ! Как зная это можно её исправить. С АЧХ боле мене всё ясно а вот с ФЧХ я незнаю как поступить.
eugen_pcad_ru
По моему знание АЧХ и ФЧХ означает знание комплексного коэффициента передачи. А известный комплексный коэфициент передачи можно компенсировать (во всяком случае математически). Только вот не уверен что надо с этим заморачиваться. Может разность фаз проще учесть внеся скажем задержку?
shf_05
Цитата(ivan219 @ Feb 7 2009, 18:40) *
Я знаю ФЧХ и АЧХ! Как зная это можно её исправить. С АЧХ боле мене всё ясно а вот с ФЧХ я незнаю как поступить.

ну есть такие цепи- фазовые корректоры...
orthodox
Цитата(ivan219 @ Feb 6 2009, 19:52) *
Уменя два канала и один канал имеет задержку относительно другого что выражается в разности фаз.


Предположительно из-за того, что АЦП один на два канала?
Тогда задержка дожна быть на полтакта, лечится в цифре аналогичной задержкой в другом канале...
Любые аналоговые обработки - сделают хуже, чем было. Потому что все равно надо задерживать во всей полосе...

А еще можно взять честный АЦП, из качественных...
nl5
Цитата(ivan219 @ Feb 6 2009, 10:52) *
Да и АЧХ уменя тоже надо будет подправить.

Подправление АЧХ тоже изменит фазу, это не волнует?
Конечно, orthodox прав: задержку надо корректировать только задержкой. А о каких задержках вообще идет речь: доли периода сэмплирования, или намного дольше?
ivan219
Ну вобщето два АЦП и два канала, вобщем на максимальной частоте разность состовляет 10 градусов!!!

Фазовые коректоры что это как с ними работать где взять???
nl5
Цитата(ivan219 @ Feb 13 2009, 07:20) *
Ну вобщето два АЦП и два канала, вобщем на максимальной частоте разность состовляет 10 градусов!!!

Ну а цифры то какие, если не секрет: F sample, F max ?
ivan219
96000 Гц частота дискретизации и 0 - 48000 Гц рабочий диапазон
nl5
То есть 10 градусов на макс. частоте, это 5% периода сэмпла, или 0.5 мкс от 10 мкс?
Я не знаю, как это обычно делается, но может быть просто задержать измеренный сигнал в одном канале, беря его линейную интерполяцию между двумя сэмплами:
V(i) = V(i-1)*.05 + V(i)*0.95
Это должно быть почти равноcильно задержке на 5%.
alex_os
Цитата(ivan219 @ Feb 6 2009, 17:18) *
Вобщем есть АЦП который искажает фазу сигнала как можно её востановить зная ФЧХ системы???

Если нужно просто скорректировать задержку одного канала АЦП, можно так поступить
Скажем нужна задержка на время 1/(N*Fs).
1. Рассчитываете длинющий ФНЧ (FIR) с частотой среза чуть меньше чем Fs/(2*N) Гц. Пусть h будет импульсная
характеристика этого фильтра.
2. Из этого фильтра при помощи децимации делается N более коротких фильтров с импульсными характеристиками
h(1:N:end), h(2:N:end)...h(N:N:end) каждый фильтр дает свою задержку.
Скажем первый канал пропускаете через фильтр h(1:N:end) второй канал через фильтр h(2:N:end).
Вообщем гуглить "полифазные фильтры".
Еще вариант компенсировать задержку с помощью интерполятора Farrow он в соседней ветке упоминался..
ivan219
Ошибся biggrin.gif у меня задержка на максимальной частоте состовляет 180 градусов.

Помогите как боротся мне нужно чтобы оба канала были синхроны на всём диапазоне частот.
Самурай
Цитата(ivan219 @ Mar 1 2009, 13:09) *
Ошибся biggrin.gif у меня задержка на максимальной частоте состовляет 180 градусов.

Помогите как боротся мне нужно чтобы оба канала были синхроны на всём диапазоне частот.


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

Пока что, совершенно непонятно, что у Вас там происходит и в чем собственно проблема.
fontp
Цитата(ivan219 @ Mar 1 2009, 13:09) *
Ошибся biggrin.gif у меня задержка на максимальной частоте состовляет 180 градусов.

Помогите как боротся мне нужно чтобы оба канала были синхроны на всём диапазоне частот.



Если проблема в тривиальной задержке на целое число тактов - то простое решение уже предлагалось - задержать другой канал на
это число тактов

Если задержка на нецелое или неизвестное к-во тактов или линейные искажения имеют нелинейную (по частоте) фазовую задержку
то наиболее универсальное средство - провести калибровку каналов с помощью адаптивного фильтра.
Т.е. подать на входы 2х каналов одинаковый сигнал и привязать выходной сигнал одного канала к выходному сигнала с помощью адаптивного
фильтра до сходимости. В дальнейшем импульсную характеристику заморозить и пользовать
Мне кажется, что это значительно проще чем измерять частотные передаточные характеристики каналов и пытаться произвести коррекцию в частотной области (что тоже возможно).

Алгоритм адаптивной фильтрации при калибровке может быть любым, поскольку время сходимости некритично. Взять простейший LMS с очень низким коэффициентом адаптации.
vadkudr
Цитата(fontp @ Mar 1 2009, 22:04) *
Если проблема в тривиальной задержке на целое число тактов - то простое решение уже предлагалось - задержать другой канал на
это число тактов
Если задержка на нецелое или неизвестное к-во тактов или линейные искажения имеют нелинейную (по частоте) фазовую задержку
то наиболее универсальное средство - провести калибровку каналов с помощью адаптивного фильтра.


Из обсуждения я понял, что автор вопроса точно знает задержку. Ему нужно рассчитать фильтр, компенсирующий эту задержку. (Или вводящий такую же для первого канала).
Калибровку в оффлайне, лучше проводить с помощью измерительных сигналов (дельта импульсы, сайн-свипы итд). а не адаптивных фильтров. Автор, судя по всему, измерительную часть выполнил.
Проблема в расчете фильтра.
Компенсировать линейно-фазовые искажения можно
1. Fractional delay filters. Погуглите, много чего найдете.
2. Расчет IIR фильтра пометоду средних квадратов. Увидев тему, специально создал страничку на своем сайте. Пользовался этим алгоритмом сам. http://vadkudr.boom.ru/Algorithms/vadkudr_...ng.html#LangIIR. Гляньте примеры (демо). Там есть примеры расчета IIR фильтров с почти линейной фазой.
thermit
Что-то матлабские файлы не доступны на http://vadkudr.boom.ru/...
Это научно?
bahurin
Често говоря не понял как АЦП может внести фазовый сдвиг на 180 градусов? Это просто инверсия сигнала! поставьте знак минус и скомпенсируете фазу в 180 градусов. Если надо повернуть фазу во всем диапазоне частот на заданную величину, то лучше всего это делать задержкой на заданное время. Причем можно задержать внутри одного интервала сэмлирования. Это давно давно придумали уже в системах символьной синхронизации. Помочь могут фильтры Фарроу. Подробнее читай здесь. КОмпенсацию АЧХ можно произвести в частотной области, при этом при правильной реализации фаза не пострадает
ivan219
Нет не 180 это всё иза задержки на один семпл. А так фаза искажается всего на 3 градуса.
АНТОН КОЗЛОВ
АЦП производит измерение текущего, обычно зафиксированного устройством выборки и хранения, входного напряжения, какая бы там фаза ни была.
Результаты отстоят от соседних на время, равное времени преобразования. А запаздывание фазы, соответственно =(t_преобразования/Тi)*360 градусов, где Тi- период синусоиды на данной частоте. Т i=1/Fi. Лучше бы уйти на более скоростной АЦП и не париться с этим. Последнее - шутка. Работаем всегда на том, что есть.
bahurin
Фаза может разбегается из за задержки.
Цитата(ivan219 @ Aug 24 2009, 21:55) *
А так фаза искажается всего на 3 градуса.

Это для какой-то фиксированной частоты она на 3 градуса разбегается при фиксированной задержке, для большей частоты разбег будет больше.
Если задержка фиксированная, используйте ресамплинг как написано выше. При этом фильтр Фарроу третего порядка требует всего 3 умножения (два из низ на 0.5 и за умножения то можно не считать). Если надо пример пишите приведу матлабовский листинг как это можно сделать.
ivan219
Цитата(bahurin @ Aug 25 2009, 08:46) *
Фаза может разбегается из за задержки.

Это для какой-то фиксированной частоты она на 3 градуса разбегается при фиксированной задержке, для большей частоты разбег будет больше.
Если задержка фиксированная, используйте ресамплинг как написано выше. При этом фильтр Фарроу третего порядка требует всего 3 умножения (два из низ на 0.5 и за умножения то можно не считать). Если надо пример пишите приведу матлабовский листинг как это можно сделать.


Диапазон частот от 0 и до половины частоты дискретизации а фазы искожаются относительно двух АЦП при подоче на них одинаковые сигнала от 0 и до 3 градусов соответственно.

Да пример былобы не плохо правда в матлабе не силён я это дело через фурье делал.
thermit
Коллега, Вы написали дофига букаф, но проблема Ваша по-прежнему в тумане.
Я так понял, что есть 2 канала, с одинаковым сигналом на входе каждого (что за сигнал?).
Оцифрованные выходы оказываются некогерентны. Разность фаз ДПФ двух каналов в полосе частот 0...48000 меняется от 0 до 3градусов (линейно или как?). Надо сделать сигналы когерентными. Я прально обрисовал проблему?
ivan219
Сигнал синусоида в диапазоне частот 0..48кГц причём вся полоса сразу.
Линейно.
Да.
thermit
Угу. Идеально скомпенсировать разность фаз не выйдет. Тока с какой-то погрешностью. Какова максимально допустимая разница фазовых спетров 2-х каналов?
bahurin
Цитата(ivan219 @ Aug 28 2009, 15:37) *
Сигнал синусоида в диапазоне частот 0..48кГц причём вся полоса сразу.
Линейно.
Да.

Если частота дискретизации 96 кГц и для сигнала на частоте 48 кГц разбег фаз 3 градуса, то значит задержка между двумя АЦП при оцифровке составляет всего то dt = 3*pi/(180*2*pi*Fs) = 1/(120*Fs), где Fs = 96 кГц, получается 90 нс. Возьмите 90 нс и проведите передискретизацию. В статье ссылку на которую я давал подробно написано как это правильно сделать. Там есть пример и того как надо пересчитывать время и даже пример ресэмплинга на си приведен.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.