Page 7 - 6858
P. 7
% [s,t]=ton_sig(B,f1,Fi1,Fs,N1)
%---------------------------------------
% генерування гармонійного сигналу
% у = B * sin(2*pi*f1*x + Fi1)
% B - амплітуда;
% N1 - кількість відліків сигналу;
% f1 - частота;
% Fs - частота дискретизації;
% Fi1 - начальнаЯ фаза сигналу
%---------------------------------------
function [у,x] = ton_sig( B, f1, Fi1, Fs, N1 )
%---------------------------------------
x = (0:N1-1)/Fs; % моменти часу
у = B * sin( 2*pi*f1*x + Fi1 );
%-------- кінець функції ton_sig.m ----------
Тепер m-скрипт генерування того ж відрізання косинусоїди виглядатиме так:
% гармонійний сигнал
[s,t]=ton_sig(1,100,pi/2,1000,20) % обчислення відліків сигналу
plot(t,s) % виведення графіка
title('Гармонійний сигнал') % заголовок
xlabel('ЧАС, з'); ylabel('Рівень'); % написи уздовж осей
grid on % координатнаЯ сітка
Як видимий, тепер числові значення вхідних даних задаються як аргументи m-функции
ton_sig.m. Вихідні дані функції використовуються для побудови графіка.
Очевидно, застосування m-функций вигідне тоді, коли алгоритм формування значень функції досить
складний: міститься багато команд і звернень до різноманітних бібліотечних функцій з непростим синтаксисом.
Очевидний і недолік m-функций – необхідно пам'ятати їх синтаксис. Втім, отримати потрібну інформацію
можна, якщо в командному вікні задати команду help:
>> help ton_sig
В результаті на моніторі відобразиться коментар, з якого починається m-функция. Для приведеного вище
прикладу текст допомоги має наступний вигляд:
%-------функциЯ ton_sig.m -----------
% [s,t]=ton_sig(B,f1,Fi1,Fs,N1)
%---------------------------------------
% генерування гармонійного сигналу
% у = B * sin(2*pi*f1*x + Fi1)
% B - амплітуда;
% N1 - кількість відліків сигналу;
% f1 - частота;
% Fs - частота дискретизації;
% Fi1 - начальнаЯ фаза сигналу
%---------------------------------------
Таким чином, очевидний вивід: дуже важливо при програмуванні m-функций забезпечувати їх
якісним і докладним коментарем.
Моделювання дискретних сигналів в Simulink
Генерування сигналів в Simulink, природно, має свої особливості. Розглянемо їх.
Візьмемо з бібліотеки блоків Simulink два блоки: Sine Wave (з розділу Sources) і Scope (з розділу Sinks). З'єднавши
їх, отримаємо нехитру схему (рис.1.4).
Потім подвійним клацанням по блоку осцилоскопа активізуємо вікно, що імітує екран осцилоскопа, і запустимо
модель (кнопка Start simulation). В результаті отримаємо зображення відрізання синусоїди (рис.1.5).
Рис.1.4
7