Перейти к содержанию
    

Вопрос по амплитудному детектору

Коллеги, есть такая схема : АЦП с тактовой 1100МГц - преобразователь Гильберта - прореживание на 4 - вычисление модуля комплексного сигнала - прореживание на 2 - слабенький ФНЧ - логарифм. Т.е. общий коэффициент децимации 8 и частота клока на выходных модулях ФНЧ и логарифма равна 137,5МГц. Проблема в том что при уменьшении уровня входного сигнала (на АЦП подаётся импульсный радиосигнал с генератора длительностью 10мкс) на выходе логарифма становится видно частоту биений между частотой радиосигнала и тактовой частотой 137,5МГц. На картинке видно это биение с частотой 2МГц при частоте радиосигнала 139,5МГц. Раньше эта схема работала с децимацией 16 раз - ничего подобного не замечалось. Модули,входящие в тракт,  не изменялись, изменился только второй коэффициент прореживания (вместо 4 стал 2). И в матлабе ничего подобного не наблюдается. Помогите,плз,разобраться. Я понимаю что сигнал с частотой 139,5МГц реально после децимации в 8 раз будет находиться на частоте 2МГц,но сигнал ведь комплексный, модуль должен остаться константой...

2018-10-29_153031.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы на косяк в модуле (или до него) поставил, если раньше этого не было видно - на выходе явно ж гармошка есть, которой там не должно быть - модуль комплексной экспоненты должен оставаться постоянным как его ни прореживай. Не видно ее могло быть из-за того, что ФНЧ ее отфильтровывал, а с уменьшением фактора прореживания его полоса раздулась, вот он и перестал. Гармоника из модуля может вылезти если например квадратуры брать несинхронно (re и im отсчеты сдвинуты относительно друг друга).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Большое спасибо, коллеги! Мне нужен был начальный толчок и я его получил. Очень похоже что вы оба правы - вычислитель модуля у меня работает без квадратов и корней, по Лайонсу. Отложил все дела и занялся этим вплотную.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пришёл к выводу что и ПГ, и вычислитель модуля работают хорошо и не имеют никакого отношения к проблеме. А проблему создаёт постоянная составляющая во входном сигнале. Как-то упустил я при моделировании этот фактор. Величина амплитуды пульсаций как раз равна величине смещения. А так как вклад смещения наибольший при слабом входном сигнале то логарифм усиливает эту пульсацию(на этом участке большая крутизна). Причина возникновения пульсации понятна, а вот как решить проблему не ясно. Поставил перед ПГ блок автоматического устранения смещения, амплитуда пульсаций уменьшилась, но она остаётся видна - на картинке импульс неприятного вида. Буду рад выслушать любые советы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Немного отвлёкся от этой темы, сейчас вот опять вернулся. Прихожу к выводу что блок автоматического устранения смещения и вычислитель модуля нужно выполнять в математике с плавающей точкой. Что скажете, коллеги?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Алгоритм аппроксимации модуля alpha*Min+betta*Max может дать такие волны, которые зависят от фазы сигнала, запросто.

Вы заменяли оценку abs на "правильное вычисление", сравнивали результаты? Какая у вас разрядность фиксированной точки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

59 минут назад, coding4dsp сказал:

Алгоритм аппроксимации модуля alpha*Min+betta*Max может дать такие волны, которые зависят от фазы сигнала, запросто.

Вы заменяли оценку abs на "правильное вычисление", сравнивали результаты? Какая у вас разрядность фиксированной точки?

Так эти волны даже в матлабе есть. Взять идеальные sin,cos например амплитудой 10, и прибавить к ним небольшое смещение, например +1. После этого вычислить abs(x).

2018-12-18_161751.png

Комплексный сигнал на входе abs(x) перестаёт быть аналитическим со всеми вытекающими...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда расскажите о реализации блока компенсации постоянной составляющей!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, coding4dsp сказал:

Тогда расскажите о реализации блока компенсации постоянной составляющей!

Банальный сумматор с интегратором в обратной связи. Но у него всегда будет ошибка в пределах 1МЗР. На картинке видно к чему приводит такая ошибка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 hours ago, _sda said:

Банальный сумматор с интегратором в обратной связи. Но у него всегда будет ошибка в пределах 1МЗР. На картинке видно к чему приводит такая ошибка.

отфильтрована нужная полоса, с учетом эффективной разрядности, сделано честное округление?

Ну и в вашем случае, радиосигнала, comb фильтр поставить или парочку не пойдет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 18.12.2018 в 16:19, _sda сказал:

Так эти волны даже в матлабе есть. Взять идеальные sin,cos например амплитудой 10, и прибавить к ним небольшое смещение, например +1. После этого вычислить abs(x).

Не могу понять, как постоянная добавка приводит к порче abs(x). Может, из-за смещения по разному округляются верх и низ синусов с косинусами?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 минут назад, ViKo сказал:

Не могу понять, как постоянная добавка приводит к порче abs(x). 

Я ведь выше ответил - с добавкой сигнал перестаёт быть аналитическим. Ну представьте что Вы берёте от балды комплексный сигнал и считаете его модуль - получите мусор. Константа появится только для аналитического сигнала. Когда компоненты связаны уравнением A = SQRT(RE^2 + IM^2).

 

3 часа назад, des00 сказал:

отфильтрована нужная полоса, с учетом эффективной разрядности, сделано честное округление?

Ну и в вашем случае, радиосигнала, comb фильтр поставить или парочку не пойдет?

Comb фильтр стоит, после модуля, но тут компромисс - или давим пульсацию вместе с сигналом, или пропускаем сигнал вместе с пульсацией. Сейчас выбрана оптимальная полоса фильтра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Abs() это расстояние от нулевой точки до комплексной точки на диаграмме квадратур. Для exp(1j*phi*t) колебания (круг на комплексной диаграмме) без всяких смещений и дисбалансов будет константа, а, например, DC смещение сдвинет круг куда-то в сторону, вот и расстояние от нулевой точки поплывет. 

Судя по амплитуде пульсаций, постоянка велика, как будто бы ее и не компенсировали. Неужели блок компенсации оставляют такое смещение? А какое время накопления в блоке оценки DC?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 минут назад, coding4dsp сказал:

Abs() это расстояние от нулевой точки до комплексной точки на диаграмме квадратур. Для exp(1j*phi*t) колебания (круг на комплексной диаграмме) без всяких смещений и дисбалансов будет константа, а, например, DC смещение сдвинет круг куда-то в сторону, вот и расстояние от нулевой точки поплывет. 

Судя по амплитуде пульсаций, постоянка велика, как будто бы ее и не компенсировали. Неужели блок компенсации оставляют такое смещение? А какое время накопления в блоке оценки DC?

А как по Вашему какое смещение должен оставить компенсатор? На мой взгляд +-1 при шине integer имеет право быть. Ведь компенсатор примет за ноль значения в диапазоне -1...+1 , ведь у целочисленных значений дробной части нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...