PDA

Просмотр полной версии : Цифровая коррекция амплитудно-фазовых ошибок в ФФ приемнике



AF
03.09.2007, 20:29
Приветствую всех!

Проблема следующая.
Строим ФФ приемник: первое ПЧ на нулевую частоту в аналоговом виде, ФНЧ, АЦП, ЦФНЧ, второе ПЧ в цифровом виде. Из-за амплитудно-фазовых ошибок аналоговой части инверсный спектр полностью не подавляется.
Довольно давно встречал в интернете упоминание, что существуют цифровые алгоритмы коррекции, чтобы инверсный спектр сильно подавить.
Может кто-то поможет со ссылкой или объяснит???

DRUID 3
03.09.2007, 20:39
А что собственно объяснить??? Делаете управляемой амплитудно-фазовую характеристику в Вашем приемнике (ну у меня, например это через FFT можно) и "вручную" подгоняете. Но у Вас, наверное, надо управлять коэффициентом передачи фильтров I/Q каналов и фазами цифровых внутренних гетеродинов (раздельно разумееЦЦо).

AF
03.09.2007, 20:44
Для DRUID 3.

Нет. Нужен автоматический режим, без ручных регулировок.

DRUID 3
03.09.2007, 21:03
Для DRUID 3.

Нет. Нужен автоматический режим, без ручных регулировок.

Ахахахаха... круто, а откуда эта автоматика будет знать насколько ей подстраиваЦЦо??? Обратная связь - мать всей автоматики. :) . Тогда еще один генератор который бегает по всему диапазону работы SDR а внутри "автоматика" подстраивает коэффициенты по минимуму АЧХ зеркалки и заносит его в массив. Но полная автоматизация невозможна впринципе...

AF
04.09.2007, 16:58
Для DRUID 3.

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

Тогда еще вопрос для всех. Полифазер в цифровом виде можно реализовать??? Или выражение для КЧХ полифазера кто-нибудь знает???

UR5ZQV
05.09.2007, 08:43
Полифазер в цифровом виде можно реализовать??? Или выражение для КЧХ полифазера кто-нибудь знает???
Теоретически можно, и полифазер и ФВ высоких порядков. Сначала надо передаточную функцию найти математически (а это здесь наверное только VADIM_D сможет). В цифру потом перевести гораздо проще.

vadim_d
09.09.2007, 18:06
Теоретически можно, и полифазер и ФВ высоких порядков. Сначала надо передаточную функцию найти математически (а это здесь наверное только VADIM_D сможет). В цифру потом перевести гораздо проще.
Посмотрел всякие материалы по WDF (wave digital filters), собравшись было решить задачу в лоб, а именно LC схемную реализацию НЧФВ втащить по такой метОде, но поглядел внимательно на элементарное фазовое звено в цифровом исполнении и передумал. Вроде как из
H(z)=(a-z^(-1))/(1-a*z^(-1))
имеем
H(s)=(s-w)/(s+w), где w=(1-a)/(1+a)
Если так, то число умножений (не считая умножение на -1) равно порядку ФВ. Наверное, этот велосипед уже где-нибудь описан.

vadim_d
10.09.2007, 00:09
Что-то не совсем сошлись частоты, но ничего, сейчас ЦОС-профи быстро поправят :D

AF
10.09.2007, 10:07
Vadim_d, спасибо. Буду разбираться.

UR5ZQV
11.09.2007, 07:25
Спасибо vadim_d, обязательно будем попробовать.

vadim_d
11.09.2007, 13:44
Спасибо vadim_d, обязательно будем попробовать.
Если нужны коэффициенты под какие-то конкретные частоты и порядки, то это могу перегенерить с легкостью и выложить (или ставьте Маткад - вещь полезная). Хотел попробовать прогнать на верилоге, но в ближайшее время точно не смогу :-(

UR5ZQV
11.09.2007, 13:53
Спасибо, Вадим, Вашу инфу по коэфф. уже скачал. Да и Ланнэ под рукой. Главное в принципе, а точность всегда можно догнать.Сейчас думаю, как практически это в принципе в цифре проверить. Наверное заменив БПФ фазовращение на вращение во временной области в моей старенькой проге SDR. Благо орудия тестирования там встроено.

AF
12.09.2007, 17:26
Приветствую всех!

Вот помнил же что где-то в сети есть страничка на черном фоне! И сегодня случайно на нее наткнулся.

http://rw3ps.qrz.ru/sdr.htm

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

UR5ZQV
13.09.2007, 07:50
vadim_d, пожалуйста поподробнее по Вашей схеме цифрового ФВ звена. Что означают параметры в функции передачи и схеме (к примеру "Т"). Как эти параметры связать с частотой (или нормированной частотой) звена.

vadim_d
13.09.2007, 10:52
vadim_d, пожалуйста поподробнее по Вашей схеме цифрового ФВ звена. Что означают параметры в функции передачи и схеме (к примеру "Т"). Как эти параметры связать с частотой (или нормированной частотой) звена.
"Т" - задержка на один отсчет, то что исходно "зет в минус первой". Соответственно "Х" - умножение (на к-ты "m", посчитанные из собственных частот звеньев), "+" - сложение, умножение на "-1" можно делать простой заменой сложения на вычитание. Общая картина - как НЧФВ на активных RC звеньях первого порядка, две ветви. Мог наврать в формулах, проверяйте :D
Связь аналоговых и "цифровых" частот достаточно кривая, через тангенс, поэтому при исходном декадном перекрытии нужен был (в моем примере) прототип под отношение частот 12, по мере приближения верхней границы диапазона к половине частоты отсчетов будет еще хуже :-( Если "недопрояснил", спрашивайте дальше :D

UR5ZQV
13.09.2007, 13:49
vadim_d

"Т" - задержка на один отсчет, то что исходно "зет в минус первой". Соответственно "Х" - умножение (на к-ты "m", посчитанные из собственных частот звеньев), "+" - сложение, умножение на "-1" можно делать простой заменой сложения на вычитание. Общая картина - как НЧФВ на активных RC звеньях первого порядка, две ветви. Мог наврать в формулах, проверяйте
Насчет схемы звена 1-го порядка и их каскадирования (можно было не приводить) понял сразу, проблем нет. Насчет "Т" инстиктивно догадался, что это z^-1 (задержанный осчет). Насчет математических процедур тоже проблем нет. Проблема с коэфф. "а" и его связью с частотой звена первого порядка (пусть нормированной, в "цировую" по частоте дискретизации можно потом перегнать).

vadim_d
13.09.2007, 14:38
Проблема с коэфф. "а" и его связью с частотой звена первого порядка (пусть нормированной, в "цировую" по частоте дискретизации можно потом перегнать).
К-ты "а" - это те, которые в Маткаде были "альфа", и ими они были в Visio, пока я не втащил все это в Word, у которого этих шрифтов не оказалось. Поскольку было поздно, тупо поменял альфу на "а". Так что глядите начало Маткадного (или PDF) файла - альфы появляются в начале второй страницы. Если PDF не берется по "Save As" - могу послать почтой или выложить запакованный.

UR5ZQV
18.09.2007, 16:15
Вадим, спасибо за разъяснения. ПДФ тоже нормально скачался, буду разбираться с мнемоникой маткада (жалковато что нет комментариев).

vadim_d
18.09.2007, 19:37
буду разбираться с мнемоникой маткада (жалковато что нет комментариев).
Обращайте внимание на знаки равенства: если это "паскалевское" присвоение (:=), то это вычисление правой части и присвоение результата левой. Если просто знак равно - это распечатка значения переменной. По порядку появления:
tan - тангенс (аргумент в радианах)
ceil - ближайшее целое "вверх"
atan - арктангенс
concat - конкатенация строк
READPRN - считывание файла в матрицу или вектор
match - поиск в таблице
большое Т в показателе - транспонирование
показатель в угловых скобках - выбор столбца матрицы (после транспонирования). Остальное похоже на обычную математическую запись.

Если что забыл - спрашивайте.

AF
29.09.2007, 13:41
То vadim_d.

Не могли бы Вы привести функциональную схему полученного по Вашим расчетам цифрового полифазера?

vadim_d
30.09.2007, 00:10
То vadim_d.

Не могли бы Вы привести функциональную схему полученного по Вашим расчетам цифрового полифазера?
Функциональная схема в точности соответствует рисунку 89а из книги Полякова http://www.cqham.ru/ftp2/dw.php?RLTPP.djvu , то есть цифра полностью копирует аналог. Структура каждого звена в Word документе http://forum.cqham.ru/download.php?id=1672 8 , там же показано, что при каскадировании звеньев общие элементы задержки объединяются. Если нужно посчитать к-ты цифровых звеньев под конкретную частоту дискретизации и диапазон входных частот, то дайте знать - это не должно отнять много времени. В общем случае порядок цифрового ФВ будет выше или равен порядку аналогового ФВ при тех же параметрах (относительный диапазон частот и точность в нем).

vadim_d
07.10.2007, 20:36
Решил проверить свои изыски в области ЦОС, и сначала получил было гриб от-ЦОС-иновик, но нашел лажу в коде, и все весело побежало. Тестировал ФВ 4-го порядка 0.3-3кГц для 15кГц отсчетов, тот который считал выше. Взял самую низкую частоту, дабы не ставить на выходе интерполятор, то есть относительная частота 0.3/15=0.02. Утилита с китайским названием sin_gen.c генерит входной файл (запускается из mk_gen.bat), а dph_tst.c демонстрирует алгоритм ФВ, записывая I и Q отсчеты в выходной файл (запускается из mk_tst.bat). Входной и выходной файлы смотрятся в Маткаде, результат распечатан в PDF. Вроде, выходы в должной квадратуре после короткого переходного процесса.

Relayer
17.11.2007, 04:58
господа. посетила меня совершенно крамольная мысль :) не претендуя на изобретение лисапедов все же спешу поделиться.

итак будем рассматривать след. вариант построения сдр-тракта: IQ-сигналы комплексно множатся на квадратурный генератор-подставку сдвигая интересующий нас участок к 0Hz, далее демодулируем (по необходимости подавляя боковую). демодуляция и все такое нас интересовать не будет. займемся смесителем.

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

из получившегося результата я делаю следующий выводы:
1) дисбаланс фаз IQ-каналов можно компенсировать вводя соотв фазовый сдвиг в каналы квадратурного генератора и последующей амплитудной коррекцией вещественной и мнимой части рузультата (домножение на константу)
2) при правильном выборе сдвигов и коррекции можно скомпенсировать достаточно большие ошибки IQ-фазировки
3) как результат можно отказаться от требования получения максимально точного квадратурного выхода в VFO собственно самого приемника и прийти к простеньким фазосдвигающим цепям. при этом VFO может работать на частоте сигнала а не на учетверенной частоте как в случае использования цифровых фазовращателей на делителях.

хотелось бы услышать аргументированную критику моих рассуждений

Юрий(UR5VEB)
17.11.2007, 08:48
Приветствую всех!

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

Андрей, я то же как то подымал этот вопрос. Но привычные решения крепко держат многих. Я думаю что такое решение можно вполне реализовать и не заморачиваться с делением для точного получения этих 90град. Обработка то програмная. :D Главное создать аппаратно небольшой сдвиг фаз на самом НЧ диапазоне где то в 5град. И одной RC цепочки должно хватить на все диапазоны. Програмно только корректировать этот сдвиг до требуемых 90град. во всем диапазоне частот.
Идея стоящая и если у кого есть практические конструкции SDR с такими ФВр, то не грех это опробовать практически. В программах есть коррекция фазового сдвига и можно это испытать.

Relayer
17.11.2007, 11:19
на радиосканере подтвердили возможность программного подавления боковой 60+ дб при разбалансе в 10град

AF
29.11.2007, 14:01
Приветствую всех!

Когда начинал тему не думал, что найду много матерала. В общем-то обсуждать "в целом" уже особо нечего, так как наши заклятые друзья в 70-е годы уже все изобрели.
Зайдите на сайт www.freepatentsonlin e.com Там куча патентов США по этой теме, я около сотни нашел. Вводите в поиске фразы типа: I/Q I-Q gain amplitude phase imbalance errors compensation correction - и вперед! В том числе переходите по ссылкам в найденных описаниях. Также здесь доступны европейские патенты EP.
Можно провести такого же вида поиск и по международным заявкам WO, но они часто ссылаются на американские первоисточники. Сайт www.wipo.int Отдельно европейские патенты http://ep.espacenet.com/quickSearch?locale=e n_EP
***
Ну что можно сказать в общем.
Автоматическая регулировка каналов квадратур возможна. Как по тестовому сигналу (калибровка ППП), так и по рабочему сигналу. Анализируют фазовый разбаланс в основном по кросс-корреляции (ВКФ), амплитудный в основном - по средней амплитуде/мощности каналов. Больше распространена коррекция сразу всего диапазона. Более точная подгонка отдельных спектральных составляющих тоже реализована - те же методы но только через через БПФ.
***
В общем, изобретать уже нечего, да и патенты 90-х - 2000-х рассматривают уже частные случаи.
А жаль.

Relayer
29.11.2007, 16:47
AF
коль вы уже там рылись - приводите конкретные ссылки :) а то я как-то там рылся в патентах но по другой теме - так пол дня можно угробить запросто :)

PS что-то так никто и не отписался по моему предложению касательно произвольного фазового сдвига в IQ каналах :(

AF
29.11.2007, 17:21
То Relayer.

Ну не знаю даже с чего начать. Мне проще номера патентов указать - надеюсь уж точно найдете. Ну давайте, например, внавал:

Патенты США
In-phase and quadrature conversion error compensator - Patent 5150128, In-phase and quadrature-phase rebalancer - Patent 20020097812, IQ imbalance correction - Patent 20030123534, Method and apparatus for adaptive image rejection - Patent 6694131,
Method and apparatus for compensating for imbalances between quadrature signals - Patent 6009317, Method and apparatus for compensating I-Q imbalance in receivers - Patent 7280619, Method and apparatus for compensating I-Q imbalance in receivers - Patent 20050135521, Method and apparatus for compensation of imbalance in zero-if downconverters - Patent 5263196, Method and apparatus for correcting phase and gain imbalance between in-phase (I) and quadrature (Q) components of a received signal based on a determination of peak amplitudes - Patent 5949821, Method and apparatus for correcting phase imbalance in received in-phase and quadrature signals - Patent 6765623, Method and apparatus for estimating and correcting gain and phase imbalance in a code division multiple access system - Patent 7076008, Method and apparatus for estimating and correcting gain and phase imbalance in a code division multiple access system - Patent 20030095589, Method and apparatus for initializing equalizer coefficents using peridioc training sequences - Patent 5636244, Method and apparatus for I-Q mismatch calibration in a receiver - Patent 7123896, Method and apparatus for I-Q mismatch calibration in a receiver - Patent 20050047536, Method and apparatus for self-calibration in a mobile transceiver - Patent 20070159162, Method and apparatus to correct for in-phase and quadrature-phase gain imbalance in communication circuitry - Patent 6490326, Method and device for estimating phase error - Patent 5504453, Method and Device for the Compensation of Signal Errors in Iq-Modulators - Patent 20070253510, Method and system for detecting and correcting in-phase-quadrature imbalance in digital communication receivers - Patent 6122325, Method for detecting and correcting amplitude and phase imbalances between I and Q components in quadrature demodulator - Patent 6925132.....

Международные заявки
(WO-2000-044143) CORRECTION OF AMPLITUDE AND PHASE IMBALANCE IN PSK RECEIVERS (WO-2003-063336) SYSTEM AND METHOD FOR I−Q MISMATCH COMPENSATION IN A LOW IF OR ZERO IF RECEIVER, (WO-2003-094463) MAGNITUDE AND PHASE IMBALANCE CALIBRATION AND COMPENSATION IN QUADRATURE RECEIVERS, (WO-2006-121626) METHOD AND SYSTEM FOR I-Q IMBALANCE AND DC OFFSET CORRECTION, (WO-2006-107458) SYSTEMS AND METHOD FOR AUTOMATIC QUADRATURE PHASE IMBALANCE COMPENSATION USING A DELAY LOCKED LOOP, (WO-2005-112254) ADAPTATION OF IQ-ERROR COMPENSATION, (WO-2005-067250) METHOD AND APPARATUS FOR COMPENSATING I-Q IMBALANCE IN RECEIVERS, (WO-2005-029798) ADAPTIVE IQ IMBALANCE CORRECTION FOR MULTICARRIER WIRELESS COMMUNICATION SYSTEMS.....

Фух, устал... :D

Что касается Вашего предложения, то оно частично реализуется в нескольких патентах, между делом, например похож патент США Calibration of a quadrature receiver - Patent 6744829. Там также управляют фазой как и у Вас, если я правильно понял Ваш замысел.

AF
29.11.2007, 17:30
Еще для Relayer.

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

Relayer
29.11.2007, 17:40
да полдня это я так ... приблизительно написал :) номеров патентов вполне достаточно

UR5ZQV
30.11.2007, 15:04
Юрий(UR5VEB),Relayer ,AF,неплохая идея. Скажем если смеситель правого канала крутит на скажем +30 град. (левый ноль), то верхняя боковушка в правом канале получает сдвиг +30, нижняя -30. Крутим в цифре левый канал на +150, после суммирования нижняя боковуха компенсируется, верхняя векторно суммируется (конечно неприятно что суммарный модуль не получается полным и даже может быть меньше чем исходный, но терпимо в некоторых пределах). Вроде бы векторно выглядит все корректно. Теперь надо откалибровать эту коррекцию хотя бы для каждого поддиапазона. При малых порядках ВЧФВ придется плотно корректировать и внутри поддиапазона (не думаю, что сильно большая нагрузка для компа), но можно от точки коррекции рихтовать сдвиг и балланс программно заранее зная поведение известного математически ФВ.

Юрий(UR5VEB)
18.10.2009, 07:26
Приветствую всех!
Ну и как успехи в этом поприще? Получилось обойти 2Fc/4Fc гетеродин и сделать это на основной частоте с малым сдвигом по ВЧ? Или классика 90град. крепко держит в железных оковах?

UR5ZQV
19.10.2009, 14:04
Или классика 90град. крепко держит в железных оковах?

Ну не точно 90град., а около того. Ну так это удобнее схемотехнически, меньше элементов. Плюс аналоговые ШПФ с синусоидой работают, соответственно надо в меандр для ключевых смесителей переводить с разбросом сдвига из за нестабильности аналоговых элементов.

Леонид3
28.11.2014, 23:46
vadim_d, проверяю этот фазовращатель, работает, но чуть не так, как хотелось бы, отклоняется от теории ( на картинке снятая ЧХ фазовращателя 6-го порядка, в красном прямоугольничке -- теория для аналогового с такими же частотами звеньев, на второй картинке вычисленные коэффициенты α от частоты звена). Может вспомните, как эти коэффициенты правильно считать, например для частоты дискретизации 44100 Гц и частот звеньев 92.5, 311.1, 646.4, 1253.1, 2603.8, 8757.6, боюсь, что я ошибся :roll:

vadim_d
30.11.2014, 00:50
проверяю этот фазовращатель, работает, но чуть не так, как хотелось бы, отклоняется от теории
Леонид, это Вы про этот ФВ http://www.cqham.ru/forum/showthread.php?5883-%D6%E8%F4%F0%EE%E2%E 0%FF-%EA%EE%F0%F0%E5%EA%F 6%E8%FF-%E0%EC%EF%EB%E8%F2%F 3%E4%ED%EE-%F4%E0%E7%EE%E2%FB%F 5-%EE%F8%E8%E1%EE%EA-%E2-%D4%D4-%EF%F0%E8%E5%EC%ED%E 8%EA%E5&p=118445&viewfull=1#post11844 5 ? Я уже много позже понял, что тест там был не самый показательный, частота далеко от Найквиста, и все вполне прилично. Там аппроксимация Z-преобразования, вроде как тут http://en.wikipedia.org/wiki/Matched_Z-transform_method на примере наложения АЧХ фильтра

Леонид3
30.11.2014, 11:19
vadim_d, да, именно про этот, подкупает "простота" и малые ресурсы, но результат не обрадовал, хотя и звено вращает фазу не по arcTg, а по arcCtg, но разница-то между двумя звеньями такая же :smile: Два звена выдают сдвиг фаз почти точно совпадающий с аналоговой, а две ветви по два звена (фазосдвигатель 4-го порядка) отклоняются от теории много. Вот и засомневался: может просто нарастает погрешность при последовательном соединении звеньев, или неправильно я посчитал эти злополучные коэффициенты α :roll:

vadim_d
30.11.2014, 20:24
или неправильно я посчитал эти злополучные коэффициенты α
Леонид, детали этого изыска остались на другом компе, я попытаюсь их найти, но видимо не сегодня :-(. Из общих соображений: если звено (s-w0)/(s+w0) перевести в z-область, используя билинейное преобразование, то необходимо только перед проектированием аналогового ФВ дать граничным частотам диапазона работы предыскажение по тангенсу (если чего не путаю), потом для такого растянутого диапазона посчитать собственные частоты звеньев, после перехода в Z область все должно попасть на место. В результате достижимые параметры (точность сдвига) снижаются при том же порядке из-за большего отношения крайних частот. Как-то так :smile:

Леонид3
30.11.2014, 23:20
vadim_d, спасибо! Да, именно так, при более тщательном рассмотрении у этого звена в "дальней зоне" увидел отклонения от чистого arctg (arcctg) и для достижения заданой погрешности на заданом диапазоне надо увеличивать количество пар звеньев с уменьшением сдвига каждого звена, при этом наиболее высокочастотные звенья выходят за пределы половины частоты дискретизации (хотел применить 44100 Гц), к тому же подбирать их ручками без расчёта уж очень муторно :-( хотя при изрядном терпении можно :smile:
Придётся оставить слесарю слесарево :-P

vadim_d
30.11.2014, 23:36
при этом наиболее высокочастотные звенья выходят за пределы половины частоты дискретизации
Это так, для такого ФВ надо иметь запас частоты сверху

к тому же подбирать их ручками без расчёта уж очень муторно
но вроде как все считается, если предыскажения на аналоговую полосу работы задать сразу (могу уже деталей не помнить)

rx9cim
01.12.2014, 13:39
Я советую отходить от алгоритмов с ручной настройкой. Посмотрите как у меня в пионе программно сделан автомат.

Александр Вдовенко
01.12.2014, 20:54
Добрый день, Леонид!
Я экспериментировал с подобными фазовращателями: http://www.cqham.ru/forum/showthread.php?5637-%D4%E0%E7%EE%E2%EE%E 5-%EF%EE%E4%E0%E2%EB%E 5%ED%E8%E5-%E7%E5%F0%EA%E0%EB%F C%ED%EE%E3%EE-%EA%E0%ED%E0%EB%E0-%E2-RX-TRX-%F1-%ED%E8%E7%EA%EE%E9-%CF%D7&p=302383&viewfull=1#post30238 , там же есть и методика расчета коэффициентов. Вполне нормально работают.

Леонид3
01.12.2014, 21:17
Александр, спасибо, я здесь с 10-го года, но эту тему видел и тогда чуть по экспериментировал, сейчас вернулся к этим экспериментам, оказалось всё позабывал :-( Вот на картинке 6-ой порядок (две ветки по три звена) :smile: