Запись, запись и еще раз запись.

Запись, запись и еще раз запись.

Поговорим о записях. О тех проблемах и нюансах с которыми приходится сталкиваться регулярно, о тех возможностях которые заложены в SA последних версий.

Собственный загрузчик в SA появился не просто так, одной из причин его разработки стало, с одной стороны, достаточно широкое распространение формата I/Q, и с другой, как ни странно, относительно низкое качество записей в этом формате.

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

Несколько I/Q записей с ресурса

При загрузке этих файлов в SA(см. файлы-приложения к статье), вы будете удивлены чрезвычайно низким уровнем записи.



При этом, записи судя по всему, должны демонстрировать всю мощь и возможности SDR технологии. К сожалению результат совершенно противоположный. Это нельзя считать ни образцами, ни примерами качественной работы, уж тем более ни о каком превосходстве SDR технологии перед аналоговой техникой это не говорит, скорее наоборот.

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



Динамический дипазон таких "сигналов" чрезвычайно низкий, спектрально такие записи выглядят очень плоско и безжизненно, я их называю "мертвыми" записями, фоновый уровень шума, обусловленный грубой дискретизацией по уровню, очень высок. Для анализа такие записи представляют крайне сомнительный(честно говоря вообще никакого) интерес, несмотря на то, что это I/Q формат который должен обеспечивать наивысшее качество.

Эта проблема очень характерна для SDR приемников, мы с ней столкнулись около 4-х лет назад, однако попытки обратить внимание на чудовищное качество поставляемого материала для анализа, особого понимания не нашли, по крайней мере поток неликвидного материала ничуть не уменьшился.

Достаточно любопытно наблюдать все это сегодня, когда качество SDR приемников неуклонно растет, разрядность АЦП повышается, а проблема как была так и существует и никуда исчезать не собирается. :)

Может показаться, что в основе проблемы недостаточное усиление в трактах обработки сигнала SDR приемников. На самом деле это не совсем так. В ЦОС(DSP) все увязано в единое целое, ничто не берется из ниоткуда, и ничто не исчезает в никуда. Если основной АЦП имеет разрядность в 16 бит, то эти 16 бит распределяются по всей полосе оцифровки, и если эта полоса, например 40 мГц, то на один разряд приходится ~600-620 Гц. Это значит, если после такого АЦП вы попытаетесь выделить из 40 мГц, полосу к примеру в 10 кГц, то никогда там не будет полноценных 16 бит, а будет всего лишь примерно 20-40 разрядов/уровней. На самом деле это достаточно грубый и прямолинейный пример, но в целом это соответствует действительности, хотя и является всего лишь одной из проблем связанных с разрядностью АЦП используемых в современных SDR приемниках. Эта проблема достаточно легко маскируется различными обеляющими фильтрами, переходом на более высокую разрядность или на арифметику с плавающей точкой после АЦП, но это не меняет реального положения вещей, и вынуждает разработчиков решать непростые вопросы, сузить основную полосу оцифровки до приемлимых величин, использовать более мощные и более дорогие АЦП с разрядностью в 24, 32 бита и выше, или просто закрыть глаза на проблему замаскировав её.

Сегодня представлено достаточно много SDR приемников имеющих на борту весьма мощные АЦП, и обеспечивающих выход сигнала в 24-х или 32-х битном формате. Мы не будем рассматривать аспекты, насколько "честные" эти 24 или 32 бита, в какой полосе обработки эти биты используются и т.д., предполагаем, что все честно. Казалось бы в такой ситуации, качество записей должно быть на высоте по умолчанию, однако это далеко не всегда так.

Динамический диапазон 16 битных записей примерно 96 дБ, 24-х битных около 145 дБ, 32-х битных порядка 193 дБ. Если рассматривать реально существующие форматы которые широко используются для записей, то для 32-х битных чисел с плавающей точкой это за 700 дБ, а для 64 битных за 7000-8000 дБ. Это фантастические величины динамического диапазона, отобразить которые в реальности на спектре не возможно, вы просто не увидите разницы между 650 и 680 дБ, в противном случае спектр будет напоминать мелко нарубленный хаотический цветной салат, разобраться в котором будет очень не просто, да и вряд ли возможно, уже на 16 битах, качественное отображение полного динамического диапазона является определенной проблемой, не говоря уже о том, что воспроизвести те же 140-145 дБ для 24-х битных записей, весьма и весьма непросто.

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

Типичный, даже классический пример. Запись 24-х битная, что должно обеспечить динамический диапазон в 140-145 дБ.



Хорошо видно, что случайная, импульсная помеха, полностью сводит на нет все преимущества 24-х битного формата, так как в этой записи на основной сигнал пришлось около 5000-7000(!) разрядов, из примерно 16700000 возможных. Львиная доля динамического диапазона потрачена на безупречное представление, случайного, одиночного мощного импульса, в ущерб основным данным. А учитывая, что в этой записи общая полоса 96 кГц, а сам сигнал требующий анализа занимает 3 кГц, то в итоге шансы получить картину приведенную ранее очень и очень велики.

Эта проблема усугубляется еще и тем, что очень часто, по различным причинам, требуются именно 16 битные записи, и в этом случае прямая конвертация оказывает очень плохую услугу. Обычно используют для этих целей какие либо звуковые редакторы. Загружают файл как 24-х или 32-х битный и сохраняют как 16-ти. При таком подходе, запись перед сохранением масштабируется, и любая программа честно старается провести это масштабирование так, что бы обеспечить маскимальную точность от оригинала. В этом случае, даже если оригинал обеспечивает достаточное качество для анализа, например в предыдущем примере на основной сигнал отдать 100000-300000 разрядов, а на импульс те же 12000000-16000000 то после масштабирования будет, на импульс примерно 65000 разрядов, а на основной сигнал около 1200-1500. То есть в итоге получается тоже самое, максимальная детализация случайной помехи, и грубая детализация собственно того, что нужно.

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



Должен сказать, что эта возможность в SA и введена именно для записей 24-х и 32-х битных форматов, включая и формат с плавающей точкой, так как 8-ми и 16-ти битные данные обычно уже приводятся к нужному масштабу заранее, и если уровень таких записей очень мал изначально, то ни какое масштабирование и усиление не изменят ситуацию в лучшую сторону.

16-ть бит в подавляющем большинстве случае более чем достаточная величина дискретизации по уровню, если соблюдать простое правило, сигнал должен по возможности максимально полно использовать весь динамический диапазон, и чем раньше это происходит тем лучше. Максимально полно, совсем не означает от максимума до минимума, вполне разумная величина до 70%-80% полного диапазона, небольшой запас всегда нужно оставлять, врочем это касается не только 16-ти бит, а любого другого формата так же.

Обычно проблемы с 16-ти битной дискретизацей возникают, когда в запись вгоняют полосы за десятки и сотни мГц, в надежде потом вырезать нужные сегменты в десятки кГц. Это ошибка. Что касается SA, то мы сразу говорим, SA конечно универсальный анализатор, и позволяет сделать очень многое с записью, но это не off-line приемник, и возлагать на SA эти функции по меньшей мере не рекомендуется. SA прекрасно справится с 50 мГц и выше, если сам сигнал имеет полосу порядка в 10-20 мГц, но мы не можем ничего гарантировать если кто-то намерен из 50 мГц вырезать и анализировать сигналы в 5-10 или 100 кГц. Все это можно и нужно делать на этапе приема сигнала, то есть в RX, собственно это одна из основных задач приемника, которую почему-то зачастую стремятся переместить на анализаторы.

На самом деле эти проблемы не такая большая тайна, и тем более удивительно, что мало кто вообще смотрит и понимает, что именно в записи есть. Огромный процент полного неликвида гуляет по сети, кочует с одного сайта на другой, я с некоторым удивлением обнаруживаю "новые" ресурсы, где якобы лежат "примеры" и "образцы" различных сигналов, причем эти "образцы" мы видели еще 5-6 лет назад, на совершенно других ресурсах, под совершенно аналогичным "соусом", и которые ни когда, ни примерами, ни образцами, не были и не будут.

Удачи. getQuotation();






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.