_sda 0 29 октября, 2018 Опубликовано 29 октября, 2018 · Жалоба Коллеги, есть такая схема : АЦП с тактовой 1100МГц - преобразователь Гильберта - прореживание на 4 - вычисление модуля комплексного сигнала - прореживание на 2 - слабенький ФНЧ - логарифм. Т.е. общий коэффициент децимации 8 и частота клока на выходных модулях ФНЧ и логарифма равна 137,5МГц. Проблема в том что при уменьшении уровня входного сигнала (на АЦП подаётся импульсный радиосигнал с генератора длительностью 10мкс) на выходе логарифма становится видно частоту биений между частотой радиосигнала и тактовой частотой 137,5МГц. На картинке видно это биение с частотой 2МГц при частоте радиосигнала 139,5МГц. Раньше эта схема работала с децимацией 16 раз - ничего подобного не замечалось. Модули,входящие в тракт, не изменялись, изменился только второй коэффициент прореживания (вместо 4 стал 2). И в матлабе ничего подобного не наблюдается. Помогите,плз,разобраться. Я понимаю что сигнал с частотой 139,5МГц реально после децимации в 8 раз будет находиться на частоте 2МГц,но сигнал ведь комплексный, модуль должен остаться константой... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 29 октября, 2018 Опубликовано 29 октября, 2018 · Жалоба Я бы на косяк в модуле (или до него) поставил, если раньше этого не было видно - на выходе явно ж гармошка есть, которой там не должно быть - модуль комплексной экспоненты должен оставаться постоянным как его ни прореживай. Не видно ее могло быть из-за того, что ФНЧ ее отфильтровывал, а с уменьшением фактора прореживания его полоса раздулась, вот он и перестал. Гармоника из модуля может вылезти если например квадратуры брать несинхронно (re и im отсчеты сдвинуты относительно друг друга). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 30 октября, 2018 Опубликовано 30 октября, 2018 · Жалоба Могу предположить, что модуль вычисляется не совсем точно, там же в квадрат возводится и корень берется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 30 октября, 2018 Опубликовано 30 октября, 2018 · Жалоба Большое спасибо, коллеги! Мне нужен был начальный толчок и я его получил. Очень похоже что вы оба правы - вычислитель модуля у меня работает без квадратов и корней, по Лайонсу. Отложил все дела и занялся этим вплотную. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 9 ноября, 2018 Опубликовано 9 ноября, 2018 · Жалоба Пришёл к выводу что и ПГ, и вычислитель модуля работают хорошо и не имеют никакого отношения к проблеме. А проблему создаёт постоянная составляющая во входном сигнале. Как-то упустил я при моделировании этот фактор. Величина амплитуды пульсаций как раз равна величине смещения. А так как вклад смещения наибольший при слабом входном сигнале то логарифм усиливает эту пульсацию(на этом участке большая крутизна). Причина возникновения пульсации понятна, а вот как решить проблему не ясно. Поставил перед ПГ блок автоматического устранения смещения, амплитуда пульсаций уменьшилась, но она остаётся видна - на картинке импульс неприятного вида. Буду рад выслушать любые советы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 18 декабря, 2018 Опубликовано 18 декабря, 2018 · Жалоба Немного отвлёкся от этой темы, сейчас вот опять вернулся. Прихожу к выводу что блок автоматического устранения смещения и вычислитель модуля нужно выполнять в математике с плавающей точкой. Что скажете, коллеги? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
coding4dsp 0 18 декабря, 2018 Опубликовано 18 декабря, 2018 · Жалоба Алгоритм аппроксимации модуля alpha*Min+betta*Max может дать такие волны, которые зависят от фазы сигнала, запросто. Вы заменяли оценку abs на "правильное вычисление", сравнивали результаты? Какая у вас разрядность фиксированной точки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 18 декабря, 2018 Опубликовано 18 декабря, 2018 · Жалоба 59 минут назад, coding4dsp сказал: Алгоритм аппроксимации модуля alpha*Min+betta*Max может дать такие волны, которые зависят от фазы сигнала, запросто. Вы заменяли оценку abs на "правильное вычисление", сравнивали результаты? Какая у вас разрядность фиксированной точки? Так эти волны даже в матлабе есть. Взять идеальные sin,cos например амплитудой 10, и прибавить к ним небольшое смещение, например +1. После этого вычислить abs(x). Комплексный сигнал на входе abs(x) перестаёт быть аналитическим со всеми вытекающими... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
coding4dsp 0 19 декабря, 2018 Опубликовано 19 декабря, 2018 · Жалоба Тогда расскажите о реализации блока компенсации постоянной составляющей! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 19 декабря, 2018 Опубликовано 19 декабря, 2018 · Жалоба 1 час назад, coding4dsp сказал: Тогда расскажите о реализации блока компенсации постоянной составляющей! Банальный сумматор с интегратором в обратной связи. Но у него всегда будет ошибка в пределах 1МЗР. На картинке видно к чему приводит такая ошибка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 20 декабря, 2018 Опубликовано 20 декабря, 2018 · Жалоба 15 hours ago, _sda said: Банальный сумматор с интегратором в обратной связи. Но у него всегда будет ошибка в пределах 1МЗР. На картинке видно к чему приводит такая ошибка. отфильтрована нужная полоса, с учетом эффективной разрядности, сделано честное округление? Ну и в вашем случае, радиосигнала, comb фильтр поставить или парочку не пойдет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 20 декабря, 2018 Опубликовано 20 декабря, 2018 · Жалоба В 18.12.2018 в 16:19, _sda сказал: Так эти волны даже в матлабе есть. Взять идеальные sin,cos например амплитудой 10, и прибавить к ним небольшое смещение, например +1. После этого вычислить abs(x). Не могу понять, как постоянная добавка приводит к порче abs(x). Может, из-за смещения по разному округляются верх и низ синусов с косинусами? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 20 декабря, 2018 Опубликовано 20 декабря, 2018 · Жалоба 7 минут назад, ViKo сказал: Не могу понять, как постоянная добавка приводит к порче abs(x). Я ведь выше ответил - с добавкой сигнал перестаёт быть аналитическим. Ну представьте что Вы берёте от балды комплексный сигнал и считаете его модуль - получите мусор. Константа появится только для аналитического сигнала. Когда компоненты связаны уравнением A = SQRT(RE^2 + IM^2). 3 часа назад, des00 сказал: отфильтрована нужная полоса, с учетом эффективной разрядности, сделано честное округление? Ну и в вашем случае, радиосигнала, comb фильтр поставить или парочку не пойдет? Comb фильтр стоит, после модуля, но тут компромисс - или давим пульсацию вместе с сигналом, или пропускаем сигнал вместе с пульсацией. Сейчас выбрана оптимальная полоса фильтра. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
coding4dsp 0 20 декабря, 2018 Опубликовано 20 декабря, 2018 · Жалоба Abs() это расстояние от нулевой точки до комплексной точки на диаграмме квадратур. Для exp(1j*phi*t) колебания (круг на комплексной диаграмме) без всяких смещений и дисбалансов будет константа, а, например, DC смещение сдвинет круг куда-то в сторону, вот и расстояние от нулевой точки поплывет. Судя по амплитуде пульсаций, постоянка велика, как будто бы ее и не компенсировали. Неужели блок компенсации оставляют такое смещение? А какое время накопления в блоке оценки DC? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 20 декабря, 2018 Опубликовано 20 декабря, 2018 · Жалоба 18 минут назад, coding4dsp сказал: Abs() это расстояние от нулевой точки до комплексной точки на диаграмме квадратур. Для exp(1j*phi*t) колебания (круг на комплексной диаграмме) без всяких смещений и дисбалансов будет константа, а, например, DC смещение сдвинет круг куда-то в сторону, вот и расстояние от нулевой точки поплывет. Судя по амплитуде пульсаций, постоянка велика, как будто бы ее и не компенсировали. Неужели блок компенсации оставляют такое смещение? А какое время накопления в блоке оценки DC? А как по Вашему какое смещение должен оставить компенсатор? На мой взгляд +-1 при шине integer имеет право быть. Ведь компенсатор примет за ноль значения в диапазоне -1...+1 , ведь у целочисленных значений дробной части нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться