Текущее время: 28 мар 2024, 19:52 • Часовой пояс: UTC + 3 часа
Сообщения без ответов | Активные темы

Оценка качества сигнала на заданной частоте

Начать новую темуОтветить на тему Страница 1 из 1 [ Сообщений: 6 ]
Версия для печати Пред. тема | След. тема
АвторСообщение
Сообщение Добавлено: 06 сен 2012, 16:56. Заголовок сообщения:  Оценка качества сигнала на заданной частоте
Зарегистрирован:
    06 сен 2012, 16:38
Сообщения: 7
Здравствуйте, пытаюсь решить задачу определения наличия/отсутствия несущей, а также качества сигнала.
Использую тюнер Behold TV H85 и технологию DirectShow.

Хотел уточнить следующие моменты:

Какие значения может возвращать метод интерфейса IAMTuner::SignalPresent? При настройки на разные частоты он выдавал либо 0, либо 100. Правильно ли я понимаю, что он позволяет лишь определить наличие/отсутствие несущей и не дает ни какой оценки уровня сигнала?

Как я могу дать оценку качества сигнала на выбранной частоте?
Могу ли я это сделать используя интерфейс IKsPropertySet и получая несущую и оффсет до нее?
Профиль 
Сообщение Добавлено: 07 сен 2012, 10:25. Заголовок сообщения:  Re: Оценка качества сигнала на заданной частоте
Beholder
Аватара пользователя
Зарегистрирован:
    19 авг 2004, 11:47
Сообщения: 190
Здравствуйте.

Эта тема недавно обсуждалась, чтобы не повторяться, прочтите сначала топик:
http://www.beholder.ru/bb/viewtopic.php?p=75974#p75974

Если после этого возникнут вопросы - задавайте.
Профиль 
Сообщение Добавлено: 07 сен 2012, 12:41. Заголовок сообщения:  Re: Оценка качества сигнала на заданной частоте
Зарегистрирован:
    06 сен 2012, 16:38
Сообщения: 7
Я видел эту тему, хотелось бы вот что узнать:

1. Действительно ли SignalPresent выдает только 0 и 100 (возможно -1, 0, 100).
Согласно http://msdn.microsoft.com/en-us/library ... 85%29.aspx он должен бы выдавать -1, 0, 1.
До этого работал с тюнером AverMedia и выяснилось, что он выдает значения в диапазоне от -1 до 5, т.е. дает некую оценку уровня/качества сигнала. Когда стал пробовать тюнер Behold получил результат, который описал ранее (сделал для себя вывод, что оценить уровень сигнала таким же способом не получится и, что реализация методов зависит от производителя).

Из темы, которую вы мне предоставили я понял, что нужно использовать IKsPropertySet.
Понял, что могу получать наличие/отсутсвие несущей и оффсет до нее и таким образом оценивать качество.

Но:

2. Я не до конца понимаю, как я могу это сделать.

Я бы мог оценить качество зная:

Какая частотная окрестность используется для определения наличия сигнала (методом SignalPresent или каким либо другим). И, зная величину в герцах единицы оффсета (а это, как я понял, я и получаю в KSPROPERTY_TUNER_MODE_CAPS_S::ulTuningGranularity), я бы мог разделить диапазон в герцах на величину единицы оффсета в герцах и получить градацию качества сигнала. А дальше, настраиваясь на частоту и получая оффсет, мог бы оценивать качество/уровень.

Правильно ли я понял, что только таким способом я могу делать нужную мне оценку?
Профиль 
Сообщение Добавлено: 10 сен 2012, 11:47. Заголовок сообщения:  Re: Оценка качества сигнала на заданной частоте
Beholder
Аватара пользователя
Зарегистрирован:
    19 авг 2004, 11:47
Сообщения: 190
писал(а):
1. Действительно ли SignalPresent выдает только 0 и 100 (возможно -1, 0, 100).
Согласно http://msdn.microsoft.com/en-us/library ... 85%29.aspx он должен бы выдавать -1, 0, 1.
До этого работал с тюнером AverMedia и выяснилось, что он выдает значения в диапазоне от -1 до 5, т.е. дает некую оценку уровня/качества сигнала. Когда стал пробовать тюнер Behold получил результат, который описал ранее (сделал для себя вывод, что оценить уровень сигнала таким же способом не получится и, что реализация методов зависит от производителя).

У каждого вендора есть отклонения в реализации. В конкретном случае у AverMedia добавлен "костыль", вероятно для удобства работы с собственным ПО. В нашем случае SignalPresent=100 это наследие от логики Philips. В случае, когда драйвер рапортует в KSPROPERTY_TUNER_MODE_CAPS_S::Strategy значение KS_TUNER_STRATEGY_PLL, это означает что hardware не поддерживает выдачу уровня сигнала. Вменяемый уроверь сигнала в dBuV на аппаратном уровне выдают только тюнеры TDA18273HN. Поэтому драйвер у нас возвращает всегда KS_TUNER_STRATEGY_PLL, что означает, что он поддерживает выдачу отклонения до несущей (KSPROPERTY_TUNER_STATUS_S::PLLOffset). В этом случае поле SignalPresent лишь выдает наличие несущей. Любое положительное число > 0 говорит о наличие несущей и далее нужно искать отклонение через PLLOffset. Все Microsoft надстройки над IKsPropertySet корректно обрабатывают KSPROPERTY_TUNER_STATUS_S::SignalStrength=100, поэтому в случае стратегии KS_TUNER_STRATEGY_PLL данное число не имеет значения.

писал(а):
Из темы, которую вы мне предоставили я понял, что нужно использовать IKsPropertySet.
Понял, что могу получать наличие/отсутсвие несущей и оффсет до нее и таким образом оценивать качество.

Да. Для этого получаете указатель на интерфейс IKsPropertySet через IBaseFilter::QueryInterface, используя IID_IKsPropertySet. Указатель на IBaseFilter должен быть фильтром устройства тюнера, либо его наследуемый интерфейс, например IAMTVTuner. Для работы с тюнером используются ID KSPROPERTY_TUNER_XXX. Поработая с IKsPropertySet вы удивитесь, что перестройка частоты работает на порядок быстрее, чем через IAMTVTuner, поскольку IAMTVTuner это надстройка Microsoft, она довольно грубая и не умеет переключать частоту напрямую, использует переключение каналов с ожиданием (крутит внутренние циклы).

Логика поиска очень проста. Можно переключать каналы как через IAMTVTuner, так и напрямую частоту через IKsPropertySet. Если переключаете каналы через IAMTVTuner, проверяете SignalStrength, если >0, проверяете PLLOffset. Если PLLOffset показал отклонение 0 или +/-1, значит канал найден, иначе это ложная несущая. Если переключаете частоту напрямую, то логика проверки та же самая, только шагать нужно дискретно по 0.250 МГц.

ПО Beholder использует собственные раcширения IKsPropertySet в драйвере, которые более удобны и функциональны, чем "дубовые" универсальные IAMTVTuner и KSPROPERTY_TUNER_XXX, но одновременно драйвер поддерживает и все стандартные методы, позволяя работать сторонним приложениям.
Профиль 
Сообщение Добавлено: 12 сен 2012, 09:24. Заголовок сообщения:  Re: Оценка качества сигнала на заданной частоте
Зарегистрирован:
    06 сен 2012, 16:38
Сообщения: 7
Спасибо за информацию.
Профиль 
Сообщение Добавлено: 22 янв 2014, 07:43. Заголовок сообщения:  Re: Оценка качества сигнала на заданной частоте
Зарегистрирован:
    08 сен 2013, 14:53
Сообщения: 21
Что-то не пойму, про несущую какого вещания вы сейчас говорите?
Телевидения или радио?
Можно ли отследить наличие/отсутствие несущей FM-вещания?
WM-сообщениями или каким-либо другим способом.
Профиль 
Показать сообщения за:  Поле сортировки:    
Начать новую темуОтветить на тему  Страница 1 из 1  [ Сообщений: 6 ]  
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Найти:  
Перейти: