syoma 1 5 апреля, 2017 Опубликовано 5 апреля, 2017 · Жалоба Привет, подскажите, как правильно сделать децимацию. Есть исходный сигнал, который семплируется АЦП с частотой дискретизации 96кГц. Этот сигнал проходит через ПЛИС и подается на вход DSP. Проблема в том, что DSP работает с другой частотой и эта частота может меняться во время работы и может быть любой в диапазоне от 36 до 48кГц. Если тупо ставить антиалиасинговый фильтр на 18кГц, появляется проблема с тем, какой отсчет подавать на DSP - если просто последний, то я чувствую, что это неправильно. Подскажите пожалуйста, как разруливаются такие ситуации? Вот нашел похожую App Note https://www.xilinx.com/support/documentatio...tes/xapp936.pdf Это правильный подход? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 8 5 апреля, 2017 Опубликовано 5 апреля, 2017 · Жалоба Непонятна постановка задачи. Если сигнал уже оцифрован и хранится в какой-то буферной памяти, то какая разница, с какой скоростью он будет обрабатываться дальше? Тут лишь вопрос, успеет ли проц справиться с потоком данных. Или имеется в виду его дальнейшее восстановление после обработки (ЦАП)? Тогда заполняйте отсчетами вторую буферную память и считывайте ее в ЦАП со стабильной частотой... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 5 апреля, 2017 Опубликовано 5 апреля, 2017 · Жалоба Подскажите пожалуйста, как разруливаются такие ситуации? У самого похожая или более худшая ситуация. Чем-то жертвовать придется, и с этим нужно смириться. Выкидывать отсчеты из потока категорически запрещено, т.к. по амплитуде изменения практически незаметны, но на слух ощущаются приличные щелчки. Решил, что фазу сигнала нужно сохранять всеми средствами, а амплитудные искажения допустимы и неизбежны. В принципе, если выдавать последний отсчет, то небольшое смещение по фазе будет, но т.к. частота выдачи ПЛИС больше, чем частота приема DSP, то это смещение будет маленькое. Но если попробовать разбить интервал между отсчетами АЦП на несколько подинтервалов и для каждого высчитать свое интерполированное значение, тем самым повысив скорость выдачи ПЛИС, то скачок фазы можно сделать минимальным. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 5 апреля, 2017 Опубликовано 5 апреля, 2017 · Жалоба Непонятна постановка задачи. Если сигнал уже оцифрован и хранится в какой-то буферной памяти, то какая разница, с какой скоростью он будет обрабатываться дальше? В том-то и дело, что сигнал оцифровывается с определенной частотой и должен с минимальной задержкой поступить в DSP для дальнейшей обработки. Это система реального времени, поэтому никакая буферизация не приветствуется. Но если попробовать разбить интервал между отсчетами АЦП на несколько подинтервалов и для каждого высчитать свое интерполированное значение, тем самым повысив скорость выдачи ПЛИС, то скачок фазы можно сделать минимальным. У меня требование - минимальная задержка. При интерполяцию я тоже думаю, но ее надо хитрым образом считать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 5 апреля, 2017 Опубликовано 5 апреля, 2017 · Жалоба У меня требование - минимальная задержка. При интерполяцию я тоже думаю, но ее надо хитрым образом считать. Будет задержка от 1 до 2 тактов. Интерполяция: оконный sinc - правильнее всего, но если задержка минимальная, то как быть с окном - не понятно. При вашем соотношении частот и требованиях к задержке, видимо, последний отсчет лучше всего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 5 апреля, 2017 Опубликовано 5 апреля, 2017 · Жалоба Привет, подскажите, как правильно сделать децимацию. Есть исходный сигнал, который семплируется АЦП с частотой дискретизации 96кГц. Этот сигнал проходит через ПЛИС и подается на вход DSP. Проблема в том, что DSP работает с другой частотой и эта частота может меняться во время работы и может быть любой в диапазоне от 36 до 48кГц. Если тупо ставить антиалиасинговый фильтр на 18кГц, появляется проблема с тем, какой отсчет подавать на DSP - если просто последний, то я чувствую, что это неправильно. Подскажите пожалуйста, как разруливаются такие ситуации? На мой взгляд правильно это внутри DSP сделать. Ем унужна меняющаяся частота - ему и карты в руки. Тем более что сама частота дискретизации низкая Вот нашел похожую App Note https://www.xilinx.com/support/documentatio...tes/xapp936.pdf Это правильный подход? Не очень. Вам бы что-то про Farrow structure почитать, особенно если частота может быть любой Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bve 1 5 апреля, 2017 Опубликовано 5 апреля, 2017 · Жалоба В закромах есть книга:Гольденберг Л.М., Матюшкин Б.Д., Поляк М.Н. - Цифровая обработка сигналов 1985.djvu Посмотрите главу 7.4 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 6 апреля, 2017 Опубликовано 6 апреля, 2017 · Жалоба Не очень. Вам бы что-то про Farrow structure почитать, особенно если частота может быть любой Читал про Farrow Structure. В Matlab в DSP Toolbox есть хорошее описание и блоки. Но проблема не столько в том, чтобы получить дробное соотношение частот дискретизации - на что и настроен Farrow, сколько в возможности изменения этого соотношения "на лету", что в Farrow structure, я так понимаю, не предусмотрено. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 6 апреля, 2017 Опубликовано 6 апреля, 2017 · Жалоба Читал про Farrow Structure. В Matlab в DSP Toolbox есть хорошее описание и блоки. Но проблема не столько в том, чтобы получить дробное соотношение частот дискретизации - на что и настроен Farrow, сколько в возможности изменения этого соотношения "на лету", что в Farrow structure, я так понимаю, не предусмотрено. Farrow structure вообще-то позволяет получать отсчеты любым и меняющимся сдвигом относительно исходной последовательности. https://www.dsprelated.com/freebooks/pasp/F..._Structure.html Они как раз используются там, где полифазная интерполяция не прокатывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться