юнку 3.7).
Малюнок 3.7 - ДобавленіеGraphPaletteк Waveform Graph
Також для зручності перегляду графіка введемо XScrollbar, що дозволяє плавно переглянути сигнал у всьому діапазоні часу (малюнок 3.8).
Малюнок 3.8 - ДобавленіеXScrollbar кWaveformGraph
Блок-схема програми приведена на малюнку 3.9.
Малюнок 3.9 - Блок-схема програми
Так як для генерації необхідно безперервне отримання відліків сигналу, потрібно використовувати цикл WhileLoop (Functions-Programming-Structures) c зупинкою по кнопці стоп. Для її додавання необхідно правм клацанням мишки на виході піктограми в правому нижньому кутку циклу вибрати закладку CreateControl. При цьому на лицьовій панелі автоматично з'явиться кнопка Stop.
Щоб отримати на виході ФГКН безперервне періодичне напруга, потрібно, щоб у тривалість сигналу вкладалося ціле число періодів напруги. Виберемо тривалість реалізації 0,1 секунди, тоді при частоті 10 Гц у тривалість вкладеться один період, при 20 Гц - 2 періоди і так далі. На блок-схемі тривалість введена константою.
Будь блок формування сигналу (гармонійного, прямокутного, трикутного) приймає на свої входи масив відліків реалізації, нормовану частоту і амплітуду сигналу.
Щоб сформувати відліки сигналу потрібно частоту дискретизації помножити на тривалість реалізації за допомогою MultiplyFunction (Functions-Programming - Numeric). Нормована частота - це відношення частоти сигналу до частоти дискретизації, тому розділимо частоту сигналу на частоту дискретизації за допомогою Divide (Functions-Programming - Numeric). Так як нам заданий розмах вхідного напруги, то для отримання амплітуди необхідно розділити його на два.
Вибір форми сигналу здійснюється структурою Case (Functions-Programming-Structures), на CaseSelector якої подається значення з блоку Enum. Схема всередині структури Case у разі гармонійної напруги зображена на малюнку 3.10.
Малюнок 3.10 - Структура Case у разі гармонійного сигналу
В даному випадку для формування масиву вихідної напруги використовується блок SineWave (Function - SignalProcessing - SignalGeneration). Розташування його входів і виходів наведено малюнку 3.11.
Малюнок 3.11 - Висновки блоку SineWave
Тут Samples - відліки сигналу, Amplitude - амплітуда, Frequency - нормована частота, Phasein - вхідна початкова фаза в градусах (використовується, коли ResetPhase має значення «істина»), SineWave - масив відліків сформованого гармонійного сигналу, PhaseOut - вихідна початкова фаза, error - сигнал помилки або попередження.
Подамо сформовані відліки, частоту і амплітуду на відповідні входи і отримаємо гармонійне напруга.
Схема всередині структури Case у разі прямокутного напруги зображена на малюнку 3.12
Малюнок 3.12 - Структура Case у разі сигналу прямокутної форми
В даному випадку для формування масиву вихідної напруги використовується блок SquareWave (Function - SignalProcessing - SignalGeneration). Розташування його входів і виходів наведено малюнку 3.13.