Формирующий фильтр стандарта DVB-s2

Все что касается фильтрации
stesw
Сообщения: 2
Зарегистрирован: 22 ноя 2022, 18:17

Формирующий фильтр стандарта DVB-s2

Сообщение stesw »

Здравствуйте!
Просьба помочь сопоставить параметры фильтра из документа с параметрами из теории. Есть несколько не состыковок на мой не профессиональный взгляд.
Ссылка на документ описывающий стандарт DVB-S2: https://www.etsi.org/deliver/etsi_en/30 ... 10401p.pdf
Далее буду приводить выдержки из этого документа.

1. Есть следующие параметры:
Ts - период символа
Rs = 1/Ts - символьная скорость
fN - частота Найквиста
Далее приведена зависимость этих параметров:
fN = 1/2Ts=Rs/2
fn-ts.jpg
fn-ts.jpg (4.38 КБ) 1627 просмотров
Вопрос №1: Почему частота Найквиста в два раза меньше символьной скорости fN = 1/(2Ts)? Не наоборот должно быть? (2/Ts)

2. Приведена частотная характеристика корня из приподнятого косинуса
формула.jpg
На первый взгляд не совпадает с формулой из теории, но если альфу заменить на бету и sin выразить через cos, то всё совпадает.

3. Далее приведена АЧХ фильтра
ачх.jpg
Вопрос №2: Почему две кривые АЧХ? Это для разных порядков или типов фильтров?
Вопрос №3: Нормировка относительно fN. Пересекается с вопросом №1.

4. Далее групповая задержка
групповаязадержка.jpg
Вопрос №4: может ли быть отрицательная групповая задержка в КИХ фильтре? Или это теоретический не реализуемый вариант? Пересекается с вопросом №2.

5. Далее таблица для разных точек
таблица.jpg
Вопрос №5: Основной вопрос, как реализовать данный фильтр? :) Если более конкретно, то в MATLAB есть функция

rcosdesign(rolloff,span,sps)
//span - Filter span
//sps -Samples per symbol

но как сопоставить параметры sps и span с параметрами приведёнными в стандарте. Например,
групповая задержка выраженная в семплах = N/2. N - порядок фильтра. С другой стороны N=span*sps. А исходя из документа групповая задержка относительно частоты Найквиста равна 0.07/fN=0.07*2*Ts в соответствии с документом.
Тогда, учитывая, что время одного семпла Ts/sps, (N/2)*(Ts/sps) = (span*sps/2)*(Ts/sps) = 0.07*2*Ts. Сокращая Ts и sps получаем span = 0.28. Как такое может быть? Или ошибся в расчётах?

Если подходить с другой стороны для оценки порядка фильтра, то согласно статье
N>=K*2*pi/dw. В данной формуле дельта омеги (разность частоты) нормирована относительно частоты дискретизации. В документе нормировано относительно частоты Найквист. Что бы привести к одинаковым нормировкам нужно знать частоту дискретизации, которая зависит от порядка фильтра. Получается замкнутый круг.

Вопрос №6:
Как задаётся частота среза? В статье, где приведён пример синтеза КИХ фильтра задаются две частоты, но потом используется только разность частот для порядка фильтра. В итоге частота среза получилась 0.5. А если потом для примера, нужно задать 0.2? Каким образом это сделать?

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Формирующий фильтр стандарта DVB-s2

Сообщение Бахурин Сергей »

1. По символьной скорости надо время почитать повнимательнее.
2. Две АЧХ приведены как требование. Ваш фильтр должен укладываться в границы заданными этими графиками. В таблице приведены численные значения корридора АЧХ.
3. По групповой задержке приведены требования по отклонению от постоянной задержки. Если фильтр ких, то его задержка может быть постоянной, и равной половине порядка фильтра. Поскольку стандарт не лимитирует порядок, то они просто говорят что задержка не должна отличаться от постоянной более чем на 0.07 сэмпла.
4. При синтезе фильтра в частотной области, количество нулей определяет частоту среза. Если надо уменьшить частоту, то надо обнулить дополнительные спектральные отсчеты перед ifft.

stesw
Сообщения: 2
Зарегистрирован: 22 ноя 2022, 18:17

Re: Формирующий фильтр стандарта DVB-s2

Сообщение stesw »

Сергей, спасибо большое за ответ!!! По изображениям АЧХ и групповой задержки стало понятно :)

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

Есть функция реализующая данный фильтр rcosdesign(rolloff,span,sps). На выходе которой коэффициенты фильтра. На входе span - количество символов импульсной характеристики, sps -семплов на символ. rolloff - коэффициент сглаживания.

Порядок фильтра N=sps*span.

Если зафиксировать beta и sps (семплы на символ) и менять span, то частота среза АЧХ остаётся примерно одинаковой, меняется крутизна АЧХ, логично, т.к. чем больше порядок, тем круче характеристика фильтра.

А если менять sps и зафиксировать всё остальное, то меняется частота среза. Хотя из теории мне представлялось, что фильтр приподнятого косинуса всегда имеет частоту среза 0,5. Кстати, если нормировать график АЧХ из стандарта по символьной скорости, а не по "их частоте Найквиста", то примерно так и получатся.
нормировка фильтра.jpg
Собственно вопрос, каким образом sps (семплов на символ) влияет на частоту среза? Не могу это сопоставить в голове.
Так же верно понимаю, что сохраняя частоту дискретизации фильтра всегда пропорциональной символьной скорости, то коэффициенты фильтра перестраивать не нужно? Отношение как раз равно sps. Так же данное соотношение важно с точки зрения максимальной частоты дискреции ЦАП. Если ЦАП имеет 250 Msps, то максимальная символьная скорость возможна 64 мегасимволов/с сохраняя постоянным соотношение sps (сэмплов в секунду), т.к. 64*3=192. А 64*4=256, что ЦАП уже не успевает. Поэтому, исходя из этого было бы здорово задать sps постоянным, но при sps=3 матлаб выдаёт частоту среза 0,33

Заранее благодарю за ответ

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Формирующий фильтр стандарта DVB-s2

Сообщение Бахурин Сергей »

sps напрямую влияет на частоту среза. Чем больше sps тем меньше частота среза получается. Представьте у вас на символ 2 сэмпла, тогда частота среза будет 0.5, т.к. надо сгладить по 2 сэмплам. А если sps = 4, то получается, что надо сглаживать по 4 отсчетам, а для этого нужна частота среза 0.25.

Честно говоря я тоже не понял почему f_N в документации так задано.
Мне кажется, номрировать к символьной скорости правильно.

Ответить