Она определяется по формуле прямого преобразования Фурье
, (2.8)
от сигнала (1.1), имеющего ненулевые значения на интервале (). Здесь и далее в этом пункте для краткости введено обозначение . Спектральная плотность согласно (2.8) равна
Первый интеграл равен Второй интеграл находится с помощью формулы Эйлера
.
Обозначение Sinc(x) есть отношение sin (x) / x. В системе MATLAB имеется встроенная m- функция
sinc(x) = sin(pi*x)/(pi*x)
для вычисления этого соотношения, однако можно воспользоваться своей функцией sinc1(x):
function y = sinc1(x)
% Функция sin(x)/x
if abs(x) <= eps
y = 1;
else
y = sin(x)/x;
end
Максимальное значение модуля спектральной плотности наблюдается на нулевой частоте и равно S max= 2.18e-4 В/Гц (рис. 2.8). Первый нуль бокового (главного) лепестка появляется на частоте F 0 = 4375 Гц (на рис. 2.8 частотная ось имеет масштаб 1 Гц). Произведение частоты первого нуля на длительность сигнала () равно .
Ниже приводится два набора команд системы MATLAB (называемые скрипт-файлами), с помощью которых можно вычислить спектральную плотность непериодического сигнала и построить график её модуля. Первый набор реализует вычисление по формулам, полученным в результате аналитического интегрирования.
|
|
Рис. 2.8. Спектральная плотность непериодического сигнала
Uo = 1; Um = 2; T = 1e-3;
tau = T/3; W = 2*pi/T;
f = linspace(0,15e3,300); w = 2*pi*f;
I1 = -Uo*tau*sinc(w*tau/(2*pi));
I2 =1/2*Um*tau*(sinc((W-w)*tau/(2*pi))+...
sinc((W+w)*tau/(2*pi)));
Sw = I1+I2;
figure(1)
plot(f,abs(Sw)),grid
Второй набор команд вычисляет спектральную плотность сигнала прямым интегрированием по формуле (2.8) методом прямоугольников.
Uo = 1; Um = 2; T = 1e-3; tau = T/3;
N = 10000;
t = linspace(-tau/2,tau/2,N+1);
i = 1; j = sqrt(-1);
for f1 = 0:50:15000
St(i)=sum(cosinob1(t,Um,T,Uo).*exp(-j*2*pi*f1*t));
i = i+1;
end
St = St*tau/N;
figure(2)
plot(0:50:15000,abs(St)),grid
При 10000 временных отсчётах различие между двумя вычисленными спектральными плотностями практически отсутствует (относительная ошибка менее 1е-9).