реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Децимация с произвольной финальной частотой, Подскажите правильный алгоритм
syoma
сообщение Apr 5 2017, 08:34
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



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

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


Вот нашел похожую App Note https://www.xilinx.com/support/documentatio...tes/xapp936.pdf
Это правильный подход?
Go to the top of the page
 
+Quote Post
V_G
сообщение Apr 5 2017, 13:11
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Непонятна постановка задачи. Если сигнал уже оцифрован и хранится в какой-то буферной памяти, то какая разница, с какой скоростью он будет обрабатываться дальше? Тут лишь вопрос, успеет ли проц справиться с потоком данных.
Или имеется в виду его дальнейшее восстановление после обработки (ЦАП)? Тогда заполняйте отсчетами вторую буферную память и считывайте ее в ЦАП со стабильной частотой...
Go to the top of the page
 
+Quote Post
adnega
сообщение Apr 5 2017, 14:00
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(syoma @ Apr 5 2017, 11:34) *
Подскажите пожалуйста, как разруливаются такие ситуации?

У самого похожая или более худшая ситуация. Чем-то жертвовать придется, и с этим нужно смириться.
Выкидывать отсчеты из потока категорически запрещено, т.к. по амплитуде изменения практически незаметны,
но на слух ощущаются приличные щелчки. Решил, что фазу сигнала нужно сохранять всеми средствами,
а амплитудные искажения допустимы и неизбежны.
В принципе, если выдавать последний отсчет, то небольшое смещение по фазе будет,
но т.к. частота выдачи ПЛИС больше, чем частота приема DSP, то это смещение будет маленькое.
Но если попробовать разбить интервал между отсчетами АЦП на несколько подинтервалов и для каждого высчитать
свое интерполированное значение, тем самым повысив скорость выдачи ПЛИС, то скачок фазы можно сделать минимальным.
Go to the top of the page
 
+Quote Post
syoma
сообщение Apr 5 2017, 14:08
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(V_G @ Apr 5 2017, 15:11) *
Непонятна постановка задачи. Если сигнал уже оцифрован и хранится в какой-то буферной памяти, то какая разница, с какой скоростью он будет обрабатываться дальше?

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

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

У меня требование - минимальная задержка. При интерполяцию я тоже думаю, но ее надо хитрым образом считать.
Go to the top of the page
 
+Quote Post
adnega
сообщение Apr 5 2017, 14:20
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(syoma @ Apr 5 2017, 17:08) *
У меня требование - минимальная задержка. При интерполяцию я тоже думаю, но ее надо хитрым образом считать.

Будет задержка от 1 до 2 тактов.
Интерполяция: оконный sinc - правильнее всего, но если задержка минимальная, то как быть с окном - не понятно.
При вашем соотношении частот и требованиях к задержке, видимо, последний отсчет лучше всего.
Go to the top of the page
 
+Quote Post
andyp
сообщение Apr 5 2017, 19:29
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



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

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


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

Цитата
Вот нашел похожую App Note https://www.xilinx.com/support/documentatio...tes/xapp936.pdf
Это правильный подход?


Не очень. Вам бы что-то про Farrow structure почитать, особенно если частота может быть любой
Go to the top of the page
 
+Quote Post
bve
сообщение Apr 5 2017, 21:51
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 20-02-05
Из: Ленинградская обл.
Пользователь №: 2 765



В закромах есть книга:Гольденберг Л.М., Матюшкин Б.Д., Поляк М.Н. - Цифровая обработка сигналов 1985.djvu
Посмотрите главу 7.4
Go to the top of the page
 
+Quote Post
syoma
сообщение Apr 6 2017, 07:40
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(andyp @ Apr 5 2017, 21:29) *
Не очень. Вам бы что-то про Farrow structure почитать, особенно если частота может быть любой

Читал про Farrow Structure. В Matlab в DSP Toolbox есть хорошее описание и блоки. Но проблема не столько в том, чтобы получить дробное соотношение частот дискретизации - на что и настроен Farrow, сколько в возможности изменения этого соотношения "на лету", что в Farrow structure, я так понимаю, не предусмотрено.
Go to the top of the page
 
+Quote Post
andyp
сообщение Apr 6 2017, 08:51
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(syoma @ Apr 6 2017, 10:40) *
Читал про Farrow Structure. В Matlab в DSP Toolbox есть хорошее описание и блоки. Но проблема не столько в том, чтобы получить дробное соотношение частот дискретизации - на что и настроен Farrow, сколько в возможности изменения этого соотношения "на лету", что в Farrow structure, я так понимаю, не предусмотрено.


Farrow structure вообще-то позволяет получать отсчеты любым и меняющимся сдвигом относительно исходной последовательности.
https://www.dsprelated.com/freebooks/pasp/F..._Structure.html

Они как раз используются там, где полифазная интерполяция не прокатывает.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th June 2025 - 13:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01449 секунд с 7
ELECTRONIX ©2004-2016