Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SOME / 1 / MY_DIPLO / MAIN / D1.DOC
Скачиваний:
12
Добавлен:
16.04.2013
Размер:
143.87 Кб
Скачать

2. Разработка устройства.

ДЛЯ ПРАВИЛЬНОГО ОПРЕДЕЛЕНИЯ ЗНАЧЕНИЙ МЕТЕОЧАСТОТ В ПЕРВУЮ ОЧЕРЕДЬ НЕОБХОДИМО СИНХРОНИЗИРОВАТЬ ПРОЦЕСС ИХ ВЫЧИСЛЕНИЯ С ПОТОКОМ ПОСТУПЛЕНИЯ ВХОДНЫХ ВЫБОРОК, ТО ЕСТЬ, НЕОБХОДИМО ОДНОЗНАЧНО УСТАНОВИТЬ, В КАКОЙ ПОСЛЕДОВАТЕЛЬНОСТИ И КАК ЧАСТО ПОСТУПАЮТ ИЗ МИКРОРС ВЫБОРКИ СООТВЕТСТВУЮЩИХ ЧАСТОТ. ДЛЯ ЭТОГО НУЖНО ХОТЯ БЫ ОДИН РАЗ ОПРЕДЕЛИТЬ ПОЛОЖЕНИЕ ВО ВХОДНОМ ПОТОКЕ ВЫБОРОК ИНТЕРВАЛА С МАКСИМАЛЬНЫМ ЗНАЧЕНИЕМ ЧАСТОТЫ, ТО ЕСТЬ ИНТЕРВАЛА, НА КОТОРОМ ПЕРЕДАЕТСЯ МАКСИМАЛЬНАЯ ОПОРНАЯ ЧАСТОТА. КРОМЕ ЭТОГО, НУЖНО ОПРЕДЕЛИТЬ ПЕРИОД СЛЕДОВАНИЯ МАКСИМАЛЬНЫХ ИНТЕРВАЛОВ И РАЗБИТЬ ЕГО НА ШЕСТЬ РАВНЫХ УЧАСТКОВ, НА КОТОРЫХ ЗАТЕМ БУДУТ ВЫЧИСЛЯТЬСЯ ЗНАЧЕНИЯ СООТВЕТСТВУЮЩИХ МЕТЕОЧАСТОТ.

2.1 аппаратный аналог устройства синхронизации

РАССМОТРИМ ПРИНЦИП ДЕЙСТВИЯ УСТРОЙСТВА НА ПРИМЕРЕ АППАРАТНОГО АНАЛОГА.

АППАРАТНЫЙ ВАРИАНТ УСТРОЙСТВА СИНХРОНИЗАЦИИ ПРЕДСТАВЛЯЕТ СОБОЙ ЦИФРОВОЕ СЛЕДЯЩЕЕ УСТРОЙСТВО С РАСЩЕПЛЕННЫМ СТРОБОМ.ЕГО СТРУКТУРНАЯ СХЕМА ПРИВЕДЕНА НА РИС.1.3.

В ОСНОВЕ ДЕЙСТВИЯ ЭТОЙ СХЕМЫ ЛЕЖИТ СРАВНЕНИЕ НАПРЯЖЕНИЙ, СООТВЕТСТВУЮЩИХ ЗНАЧЕНИЯМЧАСТОТЫ, В ДВУХ ПОЛОВИНКАХ СТРОБА. ПРИ НАЛИЧИИ НЕКОТОРОЙ РАЗНИЦЫ МЕЖДУ ЭТИМИ НАПРЯЖЕНИЯМИ НА ВЫХОДЕ ДИСКРИМИНАТОРА ПОЯВЛЯЕТСЯ НАПРЯЖЕНИЕ ОШИБКИ СООТВЕТСТВУЮЩЕЙ ВЕЛИЧИНЫ И ЗНАКА. ЭТО НАПРЯЖЕНИЕ ЧЕРЕЗ ИНТЕГРАТОР ПОДАЕТСЯ НА УПРАВЛЯЮЩИЙ ВХОД ГУНА. ПУТЕМ ДЕЛЕНИЯ ЧАСТОТЫ СИГНАЛА, ПОЛУЧАЕМОГО НА ВЫХОДЕ ГУНА, НА 5 И НА 6 ФОРМИРУЮТСЯ ПОСЛЕДОВАТЕЛЬНОСТИ СИНХРОИМПУЛЬСОВ, СОВПАДАЮЩИЕ С НАЧАЛОМ КАЖДОГО ИЗ ШЕСТИ ИНТЕРВАЛОВ ВНУТРИ ПЕРИОДА ПЕРЕДАЧИ МЕТЕОИНФОРМАЦИИ И С КАЖДОЙ ИЗ 50 МС-НЫХ ВЫБОРОК. СИГНАЛ, НЕ ПОДВЕРГШИЙСЯ ДЕЛЕНИЮ, ПРЕДСТАВЛЯЕТ СОБОЙ ПОСЛЕДОВАТЕЛЬНОСТЬ ИМПУЛЬСОВ, СОВПАДАЮЩИХ С НАЧАЛОМ КАЖДОГО ПЕРИОДА ПЕРЕДАВАЕМОГО СИГНАЛА. В СООТВЕТСТВИИ С ПОЛУЧЕННЫМИ СИНХРОИМПУЛЬСАМИ ПРОИЗВОДИТСЯ ИЗМЕРЕНИЕ ЗНАЧЕНИЙ МЕТЕОЧАСТОТ И УСТАНАВЛИВАЕТСЯ СООТВЕТСТВИЕ МЕЖДУ НИМИ И КОНКРЕТНЫМИ МЕТЕОПАРАМЕТРАМИ.

ВРЕМЕННОЕ РАСПОЛОЖЕНИЕ ПОЛУЧЕННЫХ СИНХРОИМПУЛЬСОВ ОТНОСИТЕЛЬНО ВХОДНОЙ ПОСЛЕДОВАТЕЛЬНОСТИ ВЫБОРОК ПРИВЕДЕНО НА РИС.3.

СИНХРОНИЗАЦИЯ ПРОИЗВОДИТСЯ С ПОМОЩЬЮ " СКОЛЬЗЯЩЕГО ОКНА" - РАСЩЕПЛЕННОГО СТРОБА ПО ВЫБОРКАМ С МАКСИМАЛЬНЫМ ЗНАЧЕНИЕМ ЧАСТОТЫ. ЕСЛИ СУММА НАПРЯЖЕНИЙ ВЫБОРОК, ПОПАВШИХ В ПОЛОВИНКИ СТРОБА, РАЗЛИЧНА, ТО НА ВЫХОДЕ ДИСКРИМИНАТОРА ПОЯВЛЯЕТСЯ СООТВЕТСТВУЮЩЕЕ НАПРЯЖЕНИЕ ОШИБКИ. ПОСТУПАЯ НА ВХОД ИНТЕГРАТОРА, ОНО ЗАСТАВЛЯЕТ РАСТИ ИЛИ УМЕНЬШАТСЯ ЕГО ВЫХОДНОЕ НАПРЯЖЕНИЕ, КОТОРОЕ, В СВОЮ ОЧЕРЕДЬ, УПРАВЛЯЕТ РАБОТОЙ ГУНА. В РЕЗУЛЬТАТЕ ЧАСТОТА ГЕНЕРАЦИИ СИНХРОИМПУЛЬСОВ ИЗМЕНЯЕТСЯ И СТРОБЫ СМЕЩАЮТСЯ ТАКИМ ОБРАЗОМ, ЧТО НАПРЯЖЕНИЕ ОШИБКИ НА ВЫХОДЕ ДИСКРИМИНАТОРА СТАНОВИТСЯ РАВНЫМ НУЛЮ. ЭТО СВИДЕТЕЛЬСТВУЕТ О ТОМ, ЧТО ОБЕ ПОЛОВИНКИ СТРОБА УСТАНОВЛЕНЫ НА ИНТЕРВАЛ С МАКСИМАЛЬНЫМ ЗНАЧЕНИЕМ ЧАСТОТЫ И МОЖНО ОДНОЗНАЧНО УСТАНОВИТЬ, В КАКОМ ИНТЕРВАЛЕ ОТНОСИТЕЛЬНО МАКСИМАЛЬНОГО ЧАСТОТА СООТВЕТСТВУЕТ КАКОМУ МЕТЕОПАРАМЕТРУ.

2.2 принцип построения программного варианта

устройства синхронизации

Таким образом, объектом для обработки программой является последовательность частотных выборок, которые каждые 50 мс. передаются в основную ЭВМ из микроРС через блок сопряжения. Далее они записываются в массив, который и обрабатывается данной программой. Результаты обработки в определенном виде помещаются в файл, который затем будет использован для получения конкретных значений метеопараметров. В ходе обработки над массивом необходимо выполнить следующие действия :

1. Определить местоположение первого интервала с максимальным значением частоты, то есть с первой опорной частотой.

2. Определить период следования этого интервала, то есть, по сути дела, период передачи метеопараметров.

3. Выделить на этом периоде шесть интервалов с частотами, соответствующими конкретным метеопараметрам.

4. Вычислить с требуемой точностью значения частот на этих интервалах.

5. Поместить результаты вычислений с указанием времени измерения в определенном порядке в файл.

6. Произвести синхронизацию по интервалу с максимальным значением частоты на случай возможного изменения периода передачи метеоинформации.

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

Все вышеперечисленные операции можно объединить в три группы :

1. Поиск максимума частоты.

2. Синхронизация.

3. Вычисление значений частот.

Ниже описываются принципы, на основе которых выполняются эти действия.

2.3 ОПИСАНИЕ ПРИНЦИПОВ, ПОЛОЖЕННЫХ

В ОСНОВУ ПРОГРАММЫ

2.3.1 ОПРЕДЕЛЕНИЕ МЕСТОПОЛОЖЕНИЯ МАКСИМУМА ЧАСТОТЫ

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

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

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

При оптимальной длительности периода передачи метеочастот, равной 1.5 сек., на один период должно укладываться по пять выборок каждого значения частоты, то есть всего 30 выборок. Согласно требованиям к длительности периода передачи информации, число этих выборок может изменяться от 28 до 32. Таким образом, для гарантированного определения положения интервала с максимальной частотой достаточно произвести поиск на участке от 1 до 32 элемента массива.

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

2.3.2 СИНХРОНИЗАЦИЯ

Выполнение этой операции основано все на том же принципе скользящего окна ( или расщепленного строба ). Выполняется синхронизация следующим образом.

В результате начального поиска максимума появляется значение индекса первого элемента массива, принадлежащего интервалу с максимальным значением частоты и значение длительности периода передачи метеоинформации, выраженное в количестве выборок. Предположим, что при запуске зонда период передачи информации имел оптимальную длительность, равную 1.5 сек., то есть на нем укладывалось 30 выборок, следующих через каждые 50 мс. Синхронизация заключается в том, чтобы вовремя отследить возможное изменение длительности периода и учесть это изменение при расчете значений метеочастот. Это нужно для того, чтобы при расчете значения частоты на одном интервале не использовались бы выборки из другого.

Записав предварительно в массив достаточное для выполнения синхронизации количество выборок( не менее 30 ), программа берет индекс первого максимального элемента и помещает “окно” на расстоянии, равном определенной перед этим длительности периода передачи информации. Поскольку при длительности периода, равной 30, каждый интервал, в том числе и интервал с максимальным значением частоты, должен содержать по 5 выборок, то и окно берется размером в 5 выборок. После этого происходит суммирование двух первых и двух последних выборок, попавших в окно. Средняя выборка не используется. Затем определяется разность этих двух сумм, по величине и знаку которой можно с достаточной степенью достоверности определить, попало ли окно целиком на интервал с максимальным значением частоты или же длительность периода успела измениться таким образом, что в окно попала выборка из другого интервала. Поскольку из параметров телеметрического сигнала известно, что на периоде максимальная опорная частота превышает все остальные частоты не менее, чем на 200 Гц, то можно определить, при превышении какой величины вышеописанной разностью следует считать, что произошло изменение длительности периода и необходимо вносить соответствующие коррективы в процесс вычисления значений метеочастот. В реальности эта величина должна быть не меньше 200 Гц.

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

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

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

3. Расчет значений частот выполняется на уже скорректированном периоде.

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

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

Поскольку выборки следуют через 50 мс., то данный алгоритм позволяет отслеживать изменение длительности периода, превышающее эту величину. Так как из требований к параметрам телеметрического сигнала следует, что длительность периода не может отличаться от номинальной (1.5 сек.) более, чем на 10% (150 мс.), то есть на три выборки, и изменение длительности происходит довольно медленно, то достаточно будет за один период корректировать его длительность на 1 выборку. Это важно еще и потому, что причиной ошибочной коррекции может послужить сильный шумовой выброс.

2.3.3 ВЫЧИСЛЕНИЕ ЗНАЧЕНИЙ МЕТЕОЧАСТОТ

Результатами выполнения операций синхронизации и поиска максимума являются :

- адреса (индексы) первых выборок первого и второго интервалов с максимальным значением частоты в массиве ;

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

В первую очередь весь период нужно разбить на шесть интервалов, на которых будут вычисляться значения конкретных частот. При оптимальном значении длительности (1.5 сек.) на каждом из интервалов должно быть по 5 выборок. Если же длительность изменилась более, чем на 50 мс., то это может быть и не так. Поэтому вначале производится проверка на предмет того, на всех ли шести интервалах вычисленного периода можно брать для расчета значений частот по 5 выборок. Для этого определяется остаток от целочисленного деления определенного ранее значения длительности периода на 5. При запуске программы формируется массив из шести элементов, каждый из которых равен числу выборок, по которым будет выполняться вычисление значений частот на соответствуюших интервалах. Изначально все элементы равны 5. В зависимости от величины остатка над элементами массива производятся следующие изменения :

1. Если остаток равен 0, значит, длительность периода равна 30 выборкам (большие или меньшие значения, кратные 5, исключаются согласно требованиям к длительности периода передачи информации). В этом случае элементы массива остаются неизменными и значение каждой частоты определяется по 5 выборкам.

2. Если остаток равен 4 или 3, значит длительность периода уменьшилась и стала равной 29 или 28 соответственно (второй случай маловероятен из-за очень малой скорости возможного изменения длительности периода). В этом случае шестой или пятый и шестой элементы массива приравниваются 4 и вычисление значений соответствующих частот будет выполняться по 4 выборкам.

Если остаток равен 1или 2, значит длительность периода увеличилась и стала равной 31 или 32 выборкам (замечание см. выше). Тогда один или два элемента массива принимают значение 6 и соответствующая коррекция вводится при расчете значений частот.

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

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

2.3.4 РАБОТА УПРАВЛЯЮЩЕЙ ПРОГРАММЫ

Все перечисленные операции выполняются отдельными подпрограммами, работой которых управляет основная программа, состоящая из двух функциональных частей :

1. Собственно управляющей части, следящей за функционированием подпрограмм поиска максимума частоты, синхронизации и вычисления значений метеочастот.

2. Программного имитатора входной последовательности частотных выборок.

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

В задачи основной программы входит управление процессом записи частотных выборок, поступающих из микроРС в основную ЭВМ системы, в массив и своевременный вызов подпрограмм для корректной обработки этих выборок.

Если выборки, приходящие в ЭВМ на протяжении всего сеанса работы с зондом, просто последовательно записывать в оперативную память машины, а затем их уже обрабатывать, то это потребует достаточного объема памяти, дополнительных временных затрат по окончании сеанса на обработку данных и, кроме того, существует вероятность сбоя машины во время работы, в результате которого вся информация может быть потеряна. При длительности сеанса, равной 3 часам, и условии, что для хранения одной частотной выборки необходимо минимум 2 байта адресного пространства, получается, что для хранения всех данных, полученных за сеанс, требуется не менее :

N = 3часа * 60минут * 60 секунд * 20выборок * 2байта = 332000байт,

то есть, около 330 килобайт оперативной памяти.

По этим причинам было решено использовать для записи выборок массив, состоящий из 90 элементов, что примерно равняется трем периодам передач метеоинформации. Для избежания ошибок, связанных с тем, что при расчетах текущих значений частот будут использоваться выборки из предыдущего или следующего периода, необходимо соответствующим образом синхронизировать процессы записи выборок в массив и синхронизации и вычисления значений частот. В ситуации, когда длительность периода передачи информации отличается от 1.5 сек. (от 30 выборок) и выборки текущего периода записываются в начале или в конце массива, может получиться так, что часть этих выборок будет помещена еще в конце массива, а часть уже в начале. При этом предыдущие значения этих элементов , естественно, будут уничтожены. Поэтому нужно, чтобы к моменту перезаписи выборок предыдущие значения элементов массива уже были бы использованы в расчетах. С этой целью запись элементов массива и вызов подпрограмм происходят следующим образом :

1. Записывается массив целиком, то есть 90 частотных выборок (примерно 3 периода).

2. Запускается подпрограмма поиска максимума на интервале от 1 до 32 элемента. В результате получается адрес (индекс) первой максимальной выборки первого периода.

3. Запускается подпрограмма поиска максимума частоты на интервале от 30 до 63 элемента. В результате получается адрес первой максимальной выборки на втором периоде.

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

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

6. Запускается подпрограмма вычисления значений метеочастот на полученном периоде.

7. В массив записывается столько новых выборок, сколько содержится в найденном периоде. Таким образом получается динамическое слежение за изменением длительности периода. Если бы постоянно записывалось по 30 (или другое фиксированное количество) новых выборок, а длительность периода в это время уже изменилась бы и равнялась, к примеру, 31 выборке, то через определенное число периодов окно, в котором производится вычисление метеочастот, достигло бы границы вновь записанных выборок и в расчетах текущих значений частот начали бы использоваться выборки из предыдущих периодов, что привело бы к возникновению ошибок.

8. Повторяются этапы 5 и 6 на следующем периоде.

9. Записываются следующие 30 (или сколько содержится на текущем периоде) элементов и снова повторяются этапы 5 и 6.

Таким образом получается, что при обработке очередного периода остаются нетронутыми около 30 выборок до и после него.

Во всех подпрограммах также введена проверка на достижение конца массива. Если в результате проверки оказывается, что индекс текущего элемента равен 90, то происходит обнуление счетчика индексов и обработка продолжается с первого элемента массива.

2.4 ВОЗМОЖНЫЕ ВАРИАНТЫ РЕАЛИЗАЦИИ

АЛГОРИТМОВ ПОДПРОГРАММ ПОИСКА МАКСИМУМА

И ВЫЧИСЛЕНИЯ ЗНАЧЕНИЙ МЕТЕОЧАСТОТ

1) ПОИСК МАКСИМУМА ЧАСТОТЫ

Всего было рассмотрено три варианта реализации этого алгоритма.

1. Проверка на принадлежность выборок с максимальным значением частоты определенному коридору.

2. Поиск максимума частоты путем последовательного сравнения значений выборок. Критерием принадлежности выборки интервалу с максимальным значением частоты является превышение разностью между значением данной выборки и значениями всех остальных выборок величины порога (в реальности - 200 Гц).

3. Поиск максимума путем последовательного сравнения не отдельных выборок, а их сумм.

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

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

Второй вариант имеет недостаток, так же связанный с шумовыми ошибками.

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

2) ВЫЧИСЛЕНИЕ ЗНАЧЕНИЙ МЕТЕОЧАСТОТ

Расчет значений метеочастот на отдельных интервалах можно вести двумя путями :

1. По всем выборкам, принадлежащим данному интервалу (при Тобщ=1.5сек. эта величина равна 5).

2. Только по внутренним выборкам интервала. В этом случае при расчете не используются пкрвая и последняя выборки, то есть усреднение происходит по меньшему числу выборок.

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

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

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

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

шf = 1 / Тизм *сш , где

Тизм - время измерения частоты,

сш - отношение сигнал/шум по мощности на выходе приемника.

Будем считать сшmin = 2

Поскольку выборки делаются каждые 50 мс., то Тизм = 50 мс.

Будем считать, что каждый интервал содержит по 5 выборок соответствующей частоты.

Рассмотрим случаи расчета по 3 и 5 выборкам.

Усреднение по нескольким выборкам увеличивает отношение сигнал/шум в соответствующее число раз.

шf5 = 1/ 50 *1 / 2*5 = 7 Гц.

шf3 = 1 / 50 *1 / 2*3 = 8 Гц.

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

Информация о значениях метеочастот должна выдаваться не реже, чем через каждые 10 сек., то есть, примерно через каждые 6 периодов передачи информации. Это дает возможность произвести усреднение еще и по 6 периодам. В этом случае :

шf5.6 = 1 / 50 *1 / 2*5*6 = 2.5 Гц.

шf3.6 = 1 / 50 *1 / 2*3*6 = 3.3 Гц.

Этой точности вполне достаточно для вычисления всех частот, кроме соответствующей давлению. Для обеспечения же требуемой точности можно произвести усреднение по большему числу периодов. Так, для случаев вычисления по 5 и по 3 выборкам нужно усреднять по 40 и по 66 периодам соответственно. Данные при этом , естественно, будут выдаваться реже.

Еще можно предложить использование “скользящего окна”. То есть усреднение будет производиться по указанному числу выборок, но при каждом новом усреднении окно будет смещаться лишь на одну выборку. Таким образом, первое усредненное значение будет выдано через 1.5 мин.(67 выборок) после начала сеанса слежения за зондом, а затем будет выдаваться уже каждые 50 мс. Как видно, будет иметь место задержка на Тизм/2, которую в дальнейшем можно учесть, зная величину этой задержки и текущее время.

2.5 ОПИСАНИЯ АЛГОРИТМОВ ПОДПРОГРАММ

И ОСНОВНОЙ ПРОГРАММЫ

2.5.1 АЛГОРИТМ ПОИСКА МАКСИМУМА ЧАСТОТЫ

Алгоритм поиска максимума частоты приведен на рис.5.

Входными данными подпрограммы, реализующей этот алгоритм, являются значения целых переменных START и END, передающие в подпрограмму индексы элементов массива, между которыми будет производиться поиск максимума частоты. Критерием обнаружения интервала с максимальным значением частоты является наибольшее значение суммы четырех последовательно стоящих элементов массива. Переменная F1 предназначена для хранения индекса первого из этих четырех элементов, который при дальнейшей обработке и будет считаться первой выборкой интервала с максимальным значением частоты. Переменная М1 предназначена для хранения значения максимальной на текущий момент суммы. Значение очередной суммы четырех элементов хранится в переменной А. Переменная I играет роль счетчика индексов, значение которого не должно превышать значения переменной END. Переменная J используется в качестве счетчика повторений цикла при вычислении сумм.

Алгоритм подпрограммы работает следующим образом :

1. При вызове подпрограммы происходит начальное обнуление переменных F1 и M1.

2. Организуется цикл, ограниченный блоками 2 и 10, в котором значение переменной I (счетчика индексов элементов массива) изменяется последовательно от START до END.

3. Внутри цикла при каждом увеличении значения I на единицу происходит обнуление переменной А.

4. Затем организуется вложенный цикл, ограниченный блоками 4 и 6, внутри которого происходит суммирование четырех последовательно идущих элементов начиная с элемента с индексом I.

5. После выхода из этого цикла (вычисления очередной суммы) производится сравнение только что полученной суммы и значения переменной М1. Если значение текущей суммы А превышает значение М1, то происходит переприсваивание значения А значению М1, а переменной F1присваивается значение I (индекс первого элемента новой максимальной четверки).

6. Далее происходит увеличение на единицу значения счетчика I и сравнение его со значением переменной END. Если граница еще не достигнута, то этапы 3 - 6 повторяются.

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

Возможные неточности в определении, связанные с тем, что в обрабатываемом массиве может (и должно быть при длительности периода передачи информации, равной 30 выборкам) не 4, а 5 выборок с максимальным значением частоты, в дальнейшем устраняются программой синхронизации.

2.5.2 АЛГОРИТМ СИНХРОНИЗАЦИИ

Алгоритм подпрограммы синхронизации изображен на рис.6.

Подпрограмма, реализующая этот алгоритм, для своей работы использует переменные А_М и LENGTH, которым основная программа после выполнения подпрограммы поиска максимума на двух интервалах присваивает значения индекса первой максимальной выборки на первом периоде и длительности этого периода, равной расстоянию между первыми выборками максимумов на первом и втором периодах.

Алгоритм работает следующим образом :

1. В первом блоке алгоритма путем суммирования значений вышеназванных переменных вычисляется значение переменной L - левой границы скользящего окна, в котором будет выполняться проверка на соответствие предполагаемой длительности текущего периода ее действительному значению.

2. Поскольку любой элемент, попавший в окно (в том числе и элемент с индексом L) может оказаться последним элементом массива, то необходимо производить проверку на достижение конца массива для каждого из этих элементов. Такая проверка выполняется в блоках 2,6,7,8.

3. В блоках 3,9,10,11 выполняется соответствующий результатам проверки переход к началу массива.

4. В блоке 5 происходит вычисление индексов элементов, попавших в окно, относительно первог из них с индексом L.

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

6. В блоке 12 выполняется вычисление разности сумм двух первых и двух последних элементов, попавших в окно.

7. Далее, в блоках 13 и 14 происходит сравнение значения этой разности со значением порога срабатывания механизма синхронизации. (Поскольку используемый имитатор вырабатывает входные выборки в несколько ином диапазоне, нежели в действительности, значение порога взято равным 30.) Если значение разности оказывается меньше -30, то это означает, что в окно попала выборка из интервала, предшествующего максимальному, то есть длительность периода увеличилась минимум на 50 мс. и для исключения ошибок при расчетах необходимо увеличить длительность периода, на котором будут вычисляться значения метеочастот, на 1 выборку. Кроме того, следующую проверку нужно будет проводить относительно адреса, отстоящего от текущего на расстояние, равное значению уже скорректированной длительности периода. Эти операции выполняются в блоке 16. Если же значение разности оказывается больше 30, то в блоке 15 выполняются операции уменьшения опорной длительности периода и изменения значения переменной newA_M на единицу меньше.

Если условия проверок ни в 13 ни в 14 блоках не выполняются, то это означает, что длительность периода не изменилась и значения переменных LENGTH и newA_M остаются прежними.

Таким образом, результатом выполнения подпрограммы синхронизации являются скорректированные (или нет) значения длительности периода передачи метеоиформации и адреса первой выборки следующего интервала с максимальным значением частоты.

2.5.3 АЛГОРИТМ РАСЧЕТА ЗНАЧЕНИЙ МЕТЕОЧАСТОТ

При работе данная подпрограмма использует также значения переменных А_М и LENGTH, причем значение LENGTH уже скорректировано подпрограммой синхронизации.

Агоритм, изображенный на рис.7, работает следующим образом :

1. При запуске подпрограммы в первую очередь инициализируется массив MG из шести элементов, значениями которых является количество выборок, по которому будет производиться вычисление значений метеочастот на каждом из интервалов (блок 1). В начале всем элементам присваивается значение 5.

2. В блоке 2 для записи открывается файл OUTR1, в котором и хранятся результаты расчетов.

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

4. В блоке 4 выполняется операция взятия остатка от целочисленного деления значения переменной LENGTH (длительность периода) на 5.

5. В блоках 5 и 10 выполняется проверка на то, больше или меньше номинального значения (30 выборок) оказалась длительность текущего периода. В зависимости от результатов этой проверки производится соответствующая коррекция числа элементов, по которому будут вычисляться значения частот, то есть коррекция значений элементов массива MG. Так, если длительность оказалась меньше оптимальной, то, в зависимости от того, 4 ил 3 равен остаток G, 4 или 3 и 4 элементы массива изменяют свое значение с 5 на 4. Это значит, что расчет соответствующих частот будет производиться по 4 выборкам. (Номера элементов массива, значения которых будут изменяться, выбраны в соответствии с тем, каким образом имитатор генерирует входную последовательность. В реальной ситуации это будут пятый и шестой элементы.)(Блоки 6,7,8,9) В блоках 11,12,13,14 выполняются соответствующие действия для случая, когда реальная длительность периода оказывается больше оптимальной.

6. В блоках 15,16 и 17 производится присвоение начальных значений адреса текущего элемента (расчеты начинаются с элемента с индексом А_М) ADR, счетчика индексов элементов массива MG D, суммы элементов С и значения счетчика выборок, по которым производятся расчеты на интервалах Е.

7. В цикле, ограниченном блоками 17 и 22 выполняется суммирование соответствующего значению текущего элемента массива MG числа выборок (блок 18 - суммирование, блоки 19, 20, 21 - проверка на достижение конца массива выборок, блоки 22, 23 - проверка и изменение значения счетчика выборок Е).

8. В блоке 24 в файл записывается усредненное по соответствующему числу выборок значение частоты с номером, соответствующим номеру интервала на периоде.

9. В блоках 25 и 26 проверяется и увеличивается значение счетчика интервалов D.

10. В блоке 27 происходит переприсваивание значения переменной newA_M (индекс первого максимального элемента следующего периода, полученный подпрограммой синхронизации) переменной А_М. При следующем вызове подпрограммы синхронизации и расчета значений частот начнут свою работу с элемента массива с индексом newA_M - теперь А_М.

Результатом выполнения подпрограммы вычисления значений метеочастот является строчка в файле результатов OUTR1, имеющая следующий вид :

10 : 20 : 30.57 F(1)=... F(2)=... F(3)=... ... F(6)=... , где

10:20:30.57 - текущее значение машинного времени,

1, 2, 3, ... - номера интервалов,

числа после знака равенства - значения метеочастот, соответствующих этим интервалам.

2.5.4 АЛГОРИТМ РАБОТЫ ОСНОВНОЙ ПРОГРАММЫ

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

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

Ниже приводится описание алгоритма работы основной программы.

1. В блоке 1 открывается для записи файл SRMAS (в него будут записываться контрольные усредненные по интервалам значения генерируемых имитатором чисел), открывается для записи файл OUTR (для очистки его от данных, полученных во время предыдущего запуска программы). Кроме того, присваиваются начальные значения счетчикам периодов I, выборок на периоде J и периодов до первого вызова подпрограмм К.

2. Блоки 2, 39 и 40 ограничивают цикл, в котором происходит переход от одного интервала на периоде к другому. В блоке 39 производится увеличение номера интервала на единицу, а в блоке 40 - проверка на достижение счетчиком COUNT значения 6. При положительном результате проверки происходит увеличение счетчика периодов I и начинается генерация чисел нового периода.

3. В блоках 3 и 4 производится установка диапазона генерации чисел, соответствующего текущему интервалу.

4. В блоке 5 устанавливается начальное число генерируемых кроме первой выборок на каждом интервале ( Z ). Если в результате проверки в блоке 6 оказывается, что сейчас происходит генерация выборок 4-го интервала и, кроме этого, проверка в блоке 7 покажет, что уже было получено 4 периода выборок, то начинается имитация изменения длительности периода путем изменения в блоке 8 числа выборок, которые будут теперь генерироваться на каждом 4-ом интервале.

5. В блоке 9 происходит генерация псевдослучайного числа до тех пор, пока не будет получено число, удовлетворяющее проверкам в блоках 10 и 11, то есть лежащее в нужном диапазоне. Это число будет первым числом интервала, и относительно него будут генерироваться все остальные выборки, лежащие на данном интервале.

6. В блоке 12 производится проверка числа полученных на текущем периоде выборок. Если эта величина оказывается равной длительности предыдущего периода LENGTH (при запуске программы это значение принимается равным 30), то начинаются обращения к соответствующим подпрограммам. Счетчик отгенерированных периодов К увеличивается и если после проверки в блоке 13 оказывается, что впервые заполнен весь массив, то есть получено три периода по 30 выборок в каждом, то дважды вызывается подпрограмма поиска максимума частоты, в результате работы которой получаются значения индексов первых выборок максимальных интервалов на первом и втором периодах (блок 15). В блоке 16 вычисляется действительное значение длительности периода, а в блоке 17 это значение выводится на экран. Далее, в блоке 18 происходит обращение к подпрограммам синхронизации и вычисления значений метеочастот, в результате работы которых получаются уточненное значение длительности периода и строка вычисленных значений частот в файле OUTR. Если проверка в блоке 19 показывает, что началось новое заполнение массива, то после генерации каждого очередного периода происходит обращение только к подпрограммам синхронизации и расчета, а подпрограмма поиска максимума больше не используется.

7. В блоках 21 и 22 происходит обнуление счетчика выборок на периоде и очередное его увеличение. В блоках 23, 24 и 25 происходит увеличение значения счетчика индексов массива и если проверка показывает, что достигнут его конец, то выполняется переход к началу массива и запись чисел продолжается с первого элемента.

8. В блоках 26 и 27 производится запись очередного числа в массив (первого числа каждого интервала) и добавление этого числа к контрольной сумме L.

9. Блоками 29, 35 и 36 ограничен цикл, в котором происходит генерация оставшегося числа выборок на интервале в пределах, установленных относительно первой выборки интервала (блоки 29, 30, 31), запись получаемых выборок в массив (блок 33), увеличение контрольной суммы (блок 34) и выполнение соответствующих операций в случае, если очередной период будет заканчиваться не первым числом какого-либо интервала, а где-нибудь на интервале (это возможно в случае, если длительность периода изменилась уже в процессе генерации чисел, а не была отличной от оптимального значения изначально, как и происходит при использовании данного имитатора) (блок 32).

10. В блоке 37 в файл SRMAS записывается усредненное значение контрольной суммы на очередном отгенерированном интервале, а в блоке 38 - обнуление контрольной суммы.

11. В блоках 41, 42 замыкается цикл попериодной генерации и при достижении счетчиком периодов фиксированного значения происходит переход к блоку 43, в котором закрывается файл SRMAS.

В результате выполнения программы мы получаем файл OUTR, содержащий результаты обработки частотных выборок, выработанных имитатором (или пришедших через блок сопряжения из микроРС при эксплуатации программы в составе системы “ДОЖДЬ”) и файл SRMAS, содержащий контрольные значения частот на интервалах, вычисленные в самом имитаторе.

Дополнение: В приложении приведен текст варианта программы, в котором введено усреднение значений метеочастот по 6 периодам. При этом в программу были внесены следующие изменения :

В подпрограмме вычисления значений метеочастот запись результатов расчетов в файл заменена на запись этих результатов в массив глобальных переменных REZGL.

В основной программе после каждого обращения к подпрограммам синхронизации и расчета происходит добавление значений элементов массива REZGL к значениям элементов массива REZ. Таким образом производится накопление значений метеочастот по периодам. После прохождения каждых шести периодов выполняется усреднение накопленных значений по 6, после чего результаты записываются в файл OUTR в той же форме, что и в предыдущем варианте программы.

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

Соседние файлы в папке MAIN