x67 0 5 мая, 2011 Опубликовано 5 мая, 2011 · Жалоба Доброе время суток! Помогите чайнику. Есть QPSK сигнал Частота дискретизации 500 кГц. Символьная скорость 182044 Гц. Нужно произвести демодуляцию (программная реализация). Использовал за основу схему Петрова(qpsk_fb_symbol_sync_fb_phase_sync_agc_2008_05_15) По схеме на вход поступает сигнал с частотой дискретизайии в 8 раз превышающей символьную, для отработки на фильтре Фэрроу 3го порядка. Вопрос в том, что если на мою реализацию этой схему подается сигнал с Fd = nFs(n-целое), то все работает, я интерполирую сигнал, чтобы было 8 Fd, выход четкий как нужно. Но если, как в приведенных выше услових, т.е. нужна дробная интерполяция, то вылетает полная ерунда. Я действую так: интерполирую сигнал в три раза(простым добавлением нулей + КИХ фильтр) Fd = 3*500000 = 1500000 Гц А потом получается нужно получить частоту дискретизации 8*Fs = 8*182044 = 1456352 Гц. т.е провести децимацию сигнала в 1500000/1456352 = 1,02997 раза. Я это делаю путем прибавления к выходу схемы Гарднера (-0,02997/8). Это значение идет в фильтр Фэрроу. 8 потому что 8 отсчетов на 1 символ. Я либо все сильно усложняю, либо чего-то не понимаю, но не пойму что именно. Помогите разобраться! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 6 мая, 2011 Опубликовано 6 мая, 2011 · Жалоба почему сразу не сделать приемник на 8.24sps ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 6 мая, 2011 Опубликовано 6 мая, 2011 · Жалоба в схеме выше ерунда получается или в программной реализации ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x67 0 6 мая, 2011 Опубликовано 6 мая, 2011 · Жалоба почему сразу не сделать приемник на 8.24sps ? Вы имеете в виду почему сразу не интерполировать до нужной частоты дискретизации? А как это сделать если она дробная? в схеме выше ерунда получается или в программной реализации ? Трудно сказать, схема под MatLab работает, но она также работает если выход Гарднера заменить на const 1... Если вы знаете, то подскажите какой блок нужно поставить в MatLab, чтобы он вносил дополнительно ошибку по времени(тогда проверю работоспособность схемы MatLab) В любом случае моя реализация работает на сигналах, где нет нужды в дробной интерполяции, значит ошибка должна быть там. Мне кажется что в место, где нужно провести децимацию в 1,02997 раза, должно быть сделано по другому, но я не знаю как! И гугл ничего не подсказывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 6 мая, 2011 Опубликовано 6 мая, 2011 · Жалоба по матлабу не подскажу, делаю всегда и модели и прототипы на C/C++ фарроу 3 порядка не использую, т.к. он себя плохо ведет на малых кратностях sps особенно, если сигнал компактно сформирован с малым roll-off. Не хватает ему полосы. использую классический Лагранж 6-8 порядка, и 4 отсчета на посылку. Но децимацию провожу ДО схемы восстановления тактовой синхронизации т.е. dI = 1,02997 это всегда постоянное соотношение для дробной интерполяции с Fd => Fd` = N*Vm а ошибка со схемы тактовой dT (умноженная на какой-то Gain) - переменная - прибавляется dI с частотой следования символов Vm и честно говоря, судя по тому, как описана проблема, даже не понимаю, где может быть косяк в вашей схеме Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x67 0 9 мая, 2011 Опубликовано 9 мая, 2011 · Жалоба использую классический Лагранж 6-8 порядка, и 4 отсчета на посылку. А не подскажите книгу хорошую где про них можно почитать? Если с ссылкой так и вовсе сказка) А для чего нужна схема Годарда? Так и не нашел нигде вразумительного источника... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Student21 0 9 мая, 2011 Опубликовано 9 мая, 2011 · Жалоба Вообще сказака вот dsplib.ru там найдёте фильтры Фарроу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 9 мая, 2011 Опубликовано 9 мая, 2011 · Жалоба А как это сделать если она дробная? взять дробный NCO и все. Но децимацию провожу ДО схемы восстановления тактовой синхронизации т.е фактически вы используете схему с двойным преобразованием частоты. например для 8.24 спс, вы сначала делаете интерполяцию на 1.24 на не подстраиваемом NCO, а потом делаете 8спс уже в петле ОС? в таком случае вам требуется в 2 раза больше ресурса, два интерполятора и два NCO. В софтовой реализации это не принципиально, а вот в хардварной... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x67 0 9 мая, 2011 Опубликовано 9 мая, 2011 · Жалоба взять дробный NCO и все. А можно поподробней? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 10 мая, 2011 Опубликовано 10 мая, 2011 · Жалоба А можно поподробней? Куда еще то подробнее? вы же разобрались с принципом работы цифрового восстановления тактовой частоты, в модели петрова изучили как работает целочисленный NCO, осталось сделать один маленький шаг что бы сделать его дробным %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 10 мая, 2011 Опубликовано 10 мая, 2011 · Жалоба А не подскажите книгу хорошую где про них можно почитать? Если с ссылкой так и вовсе сказка) А для чего нужна схема Годарда? Так и не нашел нигде вразумительного источника... в разных книгах его встречал, а чтоб именно про лагранжа книга была такого не видел возьмите википедию или здесь, внизу есть ссылки на книги схема Годарда используется для начальной слепой настройки корректора. Наберите в гугле "Godard blind equalization" т.е фактически вы используете схему с двойным преобразованием частоты. например для 8.24 спс, вы сначала делаете интерполяцию на 1.24 на не подстраиваемом NCO, а потом делаете 8спс уже в петле ОС? а что такое 8.24 и 1.24 ? у NCO два слагаемого, первое - постоянное дробное, условно dI, чтобы интерполировать на кратную частоту следования символов. второе - переменное с выхода схемы тактовой синхронизации dT, поправка для dI. Не знаю, как еще по-другому объяснить. p.s. ----------------------- да, у меня еще такой вопрос, отчего на Электрониксе все так любит схему Гарднера для тактовой синхронизации, очень часто встречаю, что ее используют в своих моделях ? В свое время мне пришлось от нее отказаться из-за нестабильного поведения на плохих каналах: с большим МСИ, неравномерностью/завалом АЧХ. Очень высокий шум (джиттер) по выходу получался, может чего не доработал... На хороших каналах, естественно, все гуд. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 10 мая, 2011 Опубликовано 10 мая, 2011 · Жалоба а что такое 8.24 и 1.24 ? соотношение тактовой и символьной частоты. 8.24sample per symbol это тактовая частота сигнала в 8.24 раза выше символьной, фактически коэффициент преобразования частоты. у NCO два слагаемого, первое - постоянное дробное, условно dI, чтобы интерполировать на кратную частоту следования символов. второе - переменное с выхода схемы тактовой синхронизации dT, поправка для dI. Не знаю, как еще по-другому объяснить. хмм, может я не правильно что то говорю. вот положим есть демодулятор на нуле с частотой АЦП 8.24спс. Есть два варианта его сделать : 1. Поставить один интерполятор + один NCO с петлей по тактовой, настроить их на 8.24спс и работать. 2. Поставить интерполятор + один NCO вне петли по тактовой, на нем выполнить преобразование 8.24спс в 8спс. Затем поставить еще один интерполятор + один NCO с петлей по тактовой, настроенной на 8спс. или я не правильно понял вашу фразу :laughing: Но децимацию провожу ДО схемы восстановления тактовой синхронизации Кстати проверял лагранжа 3 го порядка (по схеме фарроу), при 4спс уже можно работать, при 6-8 все намного лучше, а начиная с 10-16 ти можно забыть про нелинейности ;) да, у меня еще такой вопрос, отчего на Электрониксе все так любит схему Гарднера для тактовой синхронизации, очень часто встречаю, что ее используют в своих моделях ? В свое время мне пришлось от нее отказаться из-за нестабильного поведения на плохих каналах: с большим МСИ, неравномерностью/завалом АЧХ. Очень высокий шум (джиттер) по выходу получался, может чего не доработал... На хороших каналах, естественно, все гуд. схема очень простая вот и все %) а на какую схему вы перешли ? я кстати проверял гарднера + Tanlock на QPSK нормально работает при отношении сигнал шум 6-8дБ и канале с бегающим спектральным нулем в -20дБ (при работающем эквалайзере) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 10 мая, 2011 Опубликовано 10 мая, 2011 · Жалоба хмм, может я не правильно что то говорю. вот положим есть демодулятор на нуле с частотой АЦП 8.24спс. Есть два варианта его сделать : 1. Поставить один интерполятор + один NCO с петлей по тактовой, настроить их на 8.24спс и работать. 2. Поставить интерполятор + один NCO вне петли по тактовой, на нем выполнить преобразование 8.24спс в 8спс. Затем поставить еще один интерполятор + один NCO с петлей по тактовой, настроенной на 8спс. конечно первый вариант, второй не имеет практического смысла. Петля по тактовой дает "прибавку" для дробного NCO. Кстати проверял лагранжа 3 го порядка (по схеме фарроу), при 4спс уже можно работать, при 6-8 все намного лучше, а начиная с 10-16 ти можно забыть про нелинейности ;) зависит от сигнала и характера искажений/ошибок в канале. С небольшой крутизной огибающей спектра и хорошим SNR можно работать и 2 отсчета на посылку для 3-фарроу, лишь бы выполнялось условие Найквиста для полосы обрабатываемого сигнала и АЧХ фарроу не искажала АЧХ сигнала. кстати, какие там нелинейности? 3-порядка Фарроу это всего лишь одна из форм реализации 4-узлов Лагранжа. Лагранж это КИХ-фильтр, линейная схема (если не учитывать эффекты квантования и дискретности окна интерполяции). схема очень простая вот и все %) а на какую схему вы перешли ? я кстати проверял гарднера + Tanlock на QPSK нормально работает при отношении сигнал шум 6-8дБ и канале с бегающим спектральным нулем в -20дБ (при работающем эквалайзере) сигнал реальный или модель ? я работал с позиционностями КАМ в нескольких сотен, там очень чувствуются МСИ и нестабильность опорного гетеродина (смесителя). На предельных SNR пришлось накручивать "кустарные" схемы выделения модуляционной частоты из спектра огибающей (+ PLL к ней для петли ОС) в сочетании со слежением точного пика корректора. И корректор, и петля ФАПЧ работали от общей схемы по решению. Недостаток - узкая полоса захвата, поэтому схема использовалась для установившегося режима без переходных процессов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 10 мая, 2011 Опубликовано 10 мая, 2011 · Жалоба зависит от сигнала и характера искажений/ошибок в канале. С небольшой крутизной огибающей спектра и хорошим SNR можно работать и 2 отсчета на посылку для 3-фарроу, лишь бы выполнялось условие Найквиста для полосы обрабатываемого сигнала и АЧХ фарроу не искажала АЧХ сигнала. имхо 2спс и фарроу расчитанный по лагранжу не айс. лучше сделать поднять частоту дискретизации в 2 раза, если есть возможность. кстати, какие там нелинейности? 3-порядка Фарроу это всего лишь одна из форм реализации 4-узлов Лагранжа. Лагранж это КИХ-фильтр, линейная схема (если не учитывать эффекты квантования и дискретности окна интерполяции). нелинейности вызванные тем, что АЧХ фарроу постоянно при постоянном mu, но нелинейна при переменном mu. В реальности тактовые генераторы передатчика приемника всегда плывут, и mu скачет. так что.... (mu - дробная ошибка) сигнал реальный или модель ? реальный модем, на реальном железе. я работал с позиционностями КАМ в нескольких сотен, там очень чувствуются МСИ и нестабильность опорного гетеродина (смесителя).... это же какое нужно генераторное оборудование что бы запихать хотя бы КАМ512/КАМ1024 в радиоканал :rolleyes: по остальному понятно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x67 0 10 мая, 2011 Опубликовано 10 мая, 2011 · Жалоба Куда еще то подробнее? вы же разобрались с принципом работы цифрового восстановления тактовой частоты, в модели петрова изучили как работает целочисленный NCO, осталось сделать один маленький шаг что бы сделать его дробным %) Или я чего-то не понимаю, или поправьте меня) 1. Целочисленная интерполяция - добавляем нулевые отсчеты и подаем на КИХ фильтр 2. Дробная реализуется через схему фэрроу, которая собой представляет тоже КИХ фильтр. Значит нужно Фэрроу поставит вместо фильтра в первом случае, я правильно ответил на свой вопрос???))) в разных книгах его встречал, а чтоб именно про лагранжа книга была такого не видел возьмите википедию или здесь, внизу есть ссылки на книги схема Годарда используется для начальной слепой настройки корректора. Наберите в гугле "Godard blind equalization" Спасибо за ссылочки, особенно за Годарада, почитаю)) Лагранж на dsplib все же доступней, попробую просто сделать не 3-го порядка а 6, и посмотреть как себя поведет модель. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться