Пример создания виртуального прибора – анализатора спектра сигналов
Цель: Ознакомиться с методикой программирования в среде LabVIEW на примере создания виртуального прибора для спектрального анализа импульсных сигналов
Методика изучения: В качестве источника сигнала используется генератор прямоугольных импульсов (ГПИ). Предусматривается возможность ручной регулировки амплитуды, длительности и задержки импульса. Сигнал генератора отображается на графическом индикаторе. Результат анализа – спектральную плотность мощности наблюдаем с помощью второго графического индикатора.
Процесс программирования :
1. Сначала желательно нарисовать на бумаге блок-схему создаваемого прибора в традиционном понимании. Это позволит избежать многих ошибок и намного облегчить в последующем процесс графического программирования, поскольку запись программы практически будет совпадать с блок-схемой. Для нашего случая блок-схему прибора можно представить в виде рис.17. Блоки прибора обозначены прямоугольниками, а входы и выходы стрелками. Управляющие входы генератора импульсов: Амплитуда, Длительность, Задержка.
Задержка |
Длительность |
Амплитуда |
Анализатор спектра |
Графический индикатор спектра |
ГПИ |
Графический индикатор сигнала |
Рис.17. Блок-схема спектроанализатора
2. Перейдем к графическому программированию. Создание ВП следует начинать с лицевой панели. Если на экран выведено окно блок-схемы, переключиться на лицевую панель можно, выбрав из меню панели управления окна Window Þ Show Front Panel (показать лицевую панель).
3. Из меню в верхней строчке окна лицевой панели выбрать (если не открывается, то работать через программы Nationals Instrum) View Þ Show Controls Palette иView Þ Show Tools Palette, чтобы вывести на экран палитрыControls (Органы управления) и Tools (Инструменты).
Примечание: Надписи на лицевой панели осуществляются вызовом из палитры Toolsметочного иеструмента
4. Из палитры Tools выбрать инструмент Действия («Рука») .
5. Из подменю Graph палитры Controls выбрать графический индикатор (Waveform Graph) для отображения сигнала и перенести его на лицевую панель. Разместить его справа наверху лицевой панели. В появившейся метке можно тут же с клавиатуры ввести название индикатора “Сигнал” удалив надпись Waveform Graph ,установив «Позиционный инструмент» на индикатор ,нажав правую кнопку мыши и выбрав из появившегося объектного меню Visible Items -> Label (метка). Чтобы закончить ввод метки, нажать на кнопку <Enter> в левом верхнем углу окна или щелкните мышью в любом незанятом месте лицевой панели. Если не введён текст в метку, то название метки сохранится по умолчанию Waveform Graph. Надпись Waveform Graph над графическим индикатором можно удалить и вернуть установив инструмент Действия или Позиционный инструмент на индикатор, нажав правую кнопку мыши и выбрав из появившегося объектного меню Visible Items Þ Label(Метка).
6. Если вы хотите отредактировать уже созданную метку объекта, выберите из палитры ToolsМеточный инструмент (в палитре - кнопка с буквой «А»)и, подведя его к существующей метке, щелкните мышью, и в поле метки появится курсор. Можно ввести текст метки и завершить его нажатием кнопки <Enter> в левом верхнем углу окна. Можно изменить размер и тип шрифта с помощью окна шрифта, которое расположено вверху окна лицевой панели или блок-схемы.
7. Второй графический индикатор для наблюдения спектра выберите аналогично п.5. Поместите индикатор на лицевой панели ниже первого индикатора. Введите в метку его название «Спектр» и повторите для него действия п.6. Введите метку «Частота», заменив существующую метку «Time». Вызовите объектное меню Visible Items этого индикатора и снимите в нем выделение с опции X Scale Þ AutoScaleX. Этим действием выключается автоматическое масштабирование оси X графического индикатора. С помощью Меточного инструмента введите конечное значение горизонтальной шкалы 50и нажмите клавишу Enter . Подчеркнем, что градация шкалы X в этом примере проведена в условных единицах. Для представления шкалы в натуральных единицах нужна дополнительная процедура. Из методических соображений, чтобы не перегружать пример, здесь эта программная процедура опущена.
8. При желании вы можете изменить положения индикаторов на лицевой панели и их размеры. Для этого необходимо выбрать из палитры Tools Позиционный инструмент («Стрелка») , выделить объект, щелкнув на нем левой кнопкой мыши, а затем, нажав и удерживая левую кнопку мыши, можно переместить его в любое место. Чтобы изменить размер объекта, необходимо подвести Позиционный инструмент к любому углу объекта, и изменять размер объекта, перемещая мышь при нажатой левой кнопке. Однако в этом ВП изменения размеров элементов лицевой панели не требуется. Можно удалить ненужный объект, выделив его и нажав клавишу <Del>.
9. Обратно переход на палитру Controls -> Из подменю Numeric палитры Controls выберите три вертикальных ползунковых регулятора (Vertical Pointer Slide) для регуляторов «Амплитуда», «Длительность» и «Задержка», разместите их на лицевой панели слева от индикаторов сверху вниз и введите их названия в метки. Надписи над регуляторами удаляются при помощи Label из объектного меню Visual Items. С помощью Меточного инструмента измените верхние числовые значения на шкале регуляторов «Длительность» и «Задержка» на 100 и 200 соответственно
Вы можете выровнять объекты лицевой панели (или блок-схемы) по какой-либо оси, а также более равномерно распределить их на лицевой панели. Для этого Вам необходимо выбрать Позиционным инструментом подлежащие выравниванию объекты и выбрать одну из опций в окнах Align Objects (Выравнивание объектов) и/или Distribute Objects (Распределение объектов) .
11. Чтобы выбрать несколько объектов, можно поступить двумя способами. Во-первых, можно нажать левую кнопку мыши с Позиционным инструментом в свободном месте лицевой панели и, не отпуская кнопки, переместить мышь так, чтобы появившийся прямоугольник выбора содержал только те объекты (хотя бы частично), которые хотите выбрать, а затем отпустить кнопку. Во-вторых, можно выбирать объекты по одному, удерживая нажатой клавишу <Shift> и щелкая мышью с Позиционным инструментом на каждом из объектов.
12. Вы можете изменить цвет лицевой панели или ее индикаторов и органов управления. Для этого выберите из палитры Tools Цветовой инструмент («Кисть») и, установив его рабочий конец на какой-либо объект, нажмите правую кнопку мыши. Появится цветовая палитра, из которой можете выбрать любой цвет, нажав на нем правую кнопку мыши. Рекомендуется окрасить рамки индикаторов, ползунки регуляторов и кнопку «Stop» в цвета немного темнее фона лицевой панели.
13. Разместив индикаторы и органы управления на лицевой панели, можно перейти к блок-схеме. Чтобы сделать это, выберите в меню Window Þ Show Block Diagram. На блок-схеме вы увидите прямоугольные терминалы, соответствующие органам управления и индикаторам лицевой панели. Терминалы окрашены в оранжевый цвет и имеют те же метки, что и соответствующие им объекты лицевой панели. Обозначения на терминале определяют тип данных, используемых в элементах управления или отображения. Например, обозначение DBLопределяет, что данный терминал использует числа двойной точности с плавающей запятой. Для облегчения монтажа блок-схемы и увеличения ее наглядности рекомендуется разместить терминалы органов управления слева, а терминалы индикаторов справа, оставив между ними место для размещения других элементов блок-схемы. Вы можете разместить их в окне блок-схемы, а также выровнять и распределить более равномерно аналогично тем же операциям для объектов лицевой панели с помощью Позиционного инструмента. Однако вы не можете изменять размеры терминалов, некоторых функций на блок-схеме, а также менять их цвет. Вы не можете также удалять терминалы индикаторов и органов управления лицевой панели на блок-схеме. Для удаления какого-либо терминала необходимо удалить соответствующий ему объект лицевой панели.
Примечание: Если в палитре Functionsне появляется Programming,то нажать на Viewрасположенный в верхней части палитры à открыв подтекстное меню Always Visible Categoriesà Появляется столбик надписей и выбрать Programming.
14. Чтобы вывести на экран палитру Functions(Функции), выберите из меню View --> Show Functions Palette -->открывается палитра.
15. Из подменю Functions -> Programming ->открывается подменюProgramming -> Numeric палитры Functions выберите числовую константу (Numeric Constant) и поместите его на блок-схеме выше терминалов органов управления. С помощью Меточного инструмента введите в константу значение 800. Этой константой задается количество точек (отсчетов) для отображения прямоугольного импульса. По умолчанию это число равно 128. Следует обратить внимание на то, что эта константа может иметь только целочисленное значение. Проводники, по которым передаются целочисленные величины, окрашены в синий цвет.
16. Из палитры Functions выбрать подменю Analyze, далее - подменю Signal Processing,а из нееSignal Generation. Из этой подменю выберите генератор прямоугольного импульса (Pulse Pattern.vi) и поместите его на блок-схеме справа от терминалов органов управления.
17. Из подменю Signal Processingвыберите подменю Spectral Analysis. Из нее выберите вычислитель спектра мощности Power Spectrum.vi и поместите его на блок-схеме между генератором прямоугольного импульса и терминалами индикаторов.
18. Из палитры Tools выберите Монтажный инструмент («Катушку»). Теперь можно приступить к монтажу блок-схемы, то есть к соединению между собой терминалов органов управления, функций, констант и индикаторов. Для того чтобы соединить между собой два терминала (или подключить их друг к другу), необходимо установить «Катушку» на первый терминал (при этом он должен высветиться) и щелкнуть левой кнопкой мыши, а затем, перемещая «Катушку» (при перемещении за ним тянется пунктирный провод, который можно согнуть в любом месте, щелкнув левой кнопкой мыши), установить его на другой терминал (который также должен высветиться) и снова щелкнуть левой кнопкой мыши. Тогда два терминала будут соединены проводом определенного цвета, зависящего от типа передаваемых данных. Неправильно установленный провод или его участок можно удалить нажатием клавиши <Del>, предварительно его выбрав. Чтобы выбрать провод или его участок, щелкните на нем левой кнопкой мыши Позиционным инструментом («Стрелкой») один раз (выбирается участок провода между двумя сгибами), два раза (выбирается участок провода между двумя подключениями) или три раза (выбирается весь провод). Можно подключиться к уже существующему проводу. Для этого установите «Катушку» на провод так, чтобы он обесцветился, и щелкните левой кнопкой мыши.
19. Подключите числовую константу к терминалу «samples» генератора прямоугольного импульса.
20. Подключите терминал регулятора «Амплитуда» к терминалу генератора «amplitude».
21. Подключите терминал регулятора «Задержка» к терминалу генератора «delay».
22. Подключите терминал регулятора «Длительность» к терминалу генератора «width».
23. Подключите выходной терминал генератора прямоугольного импульса «Pulse Pattern» к входному терминалу вычислителя спектра мощности «Х».
24. Подключите выходной терминал вычислителя спектра мощности «Power Spectrum» к терминалу индикатора «Спектр».
25. Подключите терминал индикатора «Сигнал» к проводу, соединяющему выходной терминал генератора и входной терминал вычислителя спектра мощности.
На этом монтаж блок-схемы закончен. Теперь при необходимости вы можете дополнительно отредактировать блок-схему, чтобы избежать возможных наложений элементов блок-схемы и нежелательных пересечений проводов, чтобы повысить наглядность блок-схемы
26. Перейдите в окно лицевой панели и запустите ВП, нажав кнопку «Пуск» (Run) в левом верхнем углу. Манипулируя регуляторами, просмотрите на экране индикатора прямоугольный импульс и спектр мощности для различных значений параметров импульса.
27. Для сохранения созданного ВП выберите в меню File Þ Save (Save All, Save with Options).Введите имя ВП, например, Анализатор спектра. Сохранить ВП можно виде отдельного файла или в виде группы из нескольких ВП в файл библиотеки ВП LabVIEW с расширением *.lib. Вид лицевой панели и блок-схемы созданного виртуального прибора показаны на рис. 19. Как видно, блок-схема рис. 19 анализатора спектра фактически совпадает с исходной схемой на рис. 17, поэтому документирование и описание программы требуют минимальных затрат.
Проделаны пункты 4.1-4.28:
Диаграмма:
Моделирование УИП. Проделаны пункты 3.1-3.14:
Построение статистической модели аналого-цифрового преобразователя (АЦП) в среде LabVIEW. Проделаны пункты 1-19:
Блок схема: