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

Децимация с произвольной финальной частотой

Привет, подскажите, как правильно сделать децимацию.

Есть исходный сигнал, который семплируется АЦП с частотой дискретизации 96кГц. Этот сигнал проходит через ПЛИС и подается на вход DSP. Проблема в том, что DSP работает с другой частотой и эта частота может меняться во время работы и может быть любой в диапазоне от 36 до 48кГц. Если тупо ставить антиалиасинговый фильтр на 18кГц, появляется проблема с тем, какой отсчет подавать на DSP - если просто последний, то я чувствую, что это неправильно.

 

Подскажите пожалуйста, как разруливаются такие ситуации?

 

 

Вот нашел похожую App Note https://www.xilinx.com/support/documentatio...tes/xapp936.pdf

Это правильный подход?

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


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

Непонятна постановка задачи. Если сигнал уже оцифрован и хранится в какой-то буферной памяти, то какая разница, с какой скоростью он будет обрабатываться дальше? Тут лишь вопрос, успеет ли проц справиться с потоком данных.

Или имеется в виду его дальнейшее восстановление после обработки (ЦАП)? Тогда заполняйте отсчетами вторую буферную память и считывайте ее в ЦАП со стабильной частотой...

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


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

Подскажите пожалуйста, как разруливаются такие ситуации?

У самого похожая или более худшая ситуация. Чем-то жертвовать придется, и с этим нужно смириться.

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

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

а амплитудные искажения допустимы и неизбежны.

В принципе, если выдавать последний отсчет, то небольшое смещение по фазе будет,

но т.к. частота выдачи ПЛИС больше, чем частота приема DSP, то это смещение будет маленькое.

Но если попробовать разбить интервал между отсчетами АЦП на несколько подинтервалов и для каждого высчитать

свое интерполированное значение, тем самым повысив скорость выдачи ПЛИС, то скачок фазы можно сделать минимальным.

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


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

Непонятна постановка задачи. Если сигнал уже оцифрован и хранится в какой-то буферной памяти, то какая разница, с какой скоростью он будет обрабатываться дальше?

В том-то и дело, что сигнал оцифровывается с определенной частотой и должен с минимальной задержкой поступить в DSP для дальнейшей обработки. Это система реального времени, поэтому никакая буферизация не приветствуется.

 

Но если попробовать разбить интервал между отсчетами АЦП на несколько подинтервалов и для каждого высчитать

свое интерполированное значение, тем самым повысив скорость выдачи ПЛИС, то скачок фазы можно сделать минимальным.

У меня требование - минимальная задержка. При интерполяцию я тоже думаю, но ее надо хитрым образом считать.

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


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

У меня требование - минимальная задержка. При интерполяцию я тоже думаю, но ее надо хитрым образом считать.

Будет задержка от 1 до 2 тактов.

Интерполяция: оконный sinc - правильнее всего, но если задержка минимальная, то как быть с окном - не понятно.

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

 

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


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

Привет, подскажите, как правильно сделать децимацию.

Есть исходный сигнал, который семплируется АЦП с частотой дискретизации 96кГц. Этот сигнал проходит через ПЛИС и подается на вход DSP. Проблема в том, что DSP работает с другой частотой и эта частота может меняться во время работы и может быть любой в диапазоне от 36 до 48кГц. Если тупо ставить антиалиасинговый фильтр на 18кГц, появляется проблема с тем, какой отсчет подавать на DSP - если просто последний, то я чувствую, что это неправильно.

 

Подскажите пожалуйста, как разруливаются такие ситуации?

 

На мой взгляд правильно это внутри DSP сделать. Ем унужна меняющаяся частота - ему и карты в руки. Тем более что сама частота дискретизации низкая

 

Вот нашел похожую App Note https://www.xilinx.com/support/documentatio...tes/xapp936.pdf

Это правильный подход?

 

Не очень. Вам бы что-то про Farrow structure почитать, особенно если частота может быть любой

 

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


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

В закромах есть книга:Гольденберг Л.М., Матюшкин Б.Д., Поляк М.Н. - Цифровая обработка сигналов 1985.djvu

Посмотрите главу 7.4

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


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

Не очень. Вам бы что-то про Farrow structure почитать, особенно если частота может быть любой

Читал про Farrow Structure. В Matlab в DSP Toolbox есть хорошее описание и блоки. Но проблема не столько в том, чтобы получить дробное соотношение частот дискретизации - на что и настроен Farrow, сколько в возможности изменения этого соотношения "на лету", что в Farrow structure, я так понимаю, не предусмотрено.

 

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


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

Читал про Farrow Structure. В Matlab в DSP Toolbox есть хорошее описание и блоки. Но проблема не столько в том, чтобы получить дробное соотношение частот дискретизации - на что и настроен Farrow, сколько в возможности изменения этого соотношения "на лету", что в Farrow structure, я так понимаю, не предусмотрено.

 

Farrow structure вообще-то позволяет получать отсчеты любым и меняющимся сдвигом относительно исходной последовательности.

https://www.dsprelated.com/freebooks/pasp/F..._Structure.html

 

Они как раз используются там, где полифазная интерполяция не прокатывает.

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


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

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

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

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

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

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

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

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

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

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