Спектральная плотность непериодического сигнала

Она определяется по формуле прямого преобразования Фурье

, (1.8)

от сигнала (1.1), имеющего ненулевые значения на интервале ( ):

Первый интеграл равен Второй интеграл находится с помощью формулы Эйлера (обозначение Sinc(x) есть отношение sin(x)/x. В системе MATLAB имеется встроенная М-функция sinc(x) = sin(pi*x)/(pi*x) для вычисления этого соотношения, однако можно воспользоваться своей функцией sinc1(x)).

Максимальное значение модуля спектральной плотности наблюдается на нулевой частоте и равно Smax =2.18e-4 В/Гц (рисунок 1.8). Первый нуль бокового (главного) лепестка появляется на частоте F0 = 4375 Гц (на рисунке 1.8 частотная ось имеет масштаб Гц). Произведение частоты первого нуля на длительность сигнала ( ) равно .

Рисунок 1.8 - Спектральная плотность непериодического сигнала

 

Ниже приводится два набора команд системы MATLAB (называемые скрипт-файлами), с помощью которых можно вычислить спектральную плотность непериодического сигнала и построить график её модуля. Первый набор реализует вычисление по формулам, полученным в результате аналитического интегрирования.

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;

plot(f,abs(Sw)),grid

Второй набор команд вычисляет спектральную плотность сигнала прямым интегрированием по формуле (1.8) методом прямоугольников.

N = 10000;

t = linspace(-tau/2,tau/2,N+1);

i = 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))

При 10000 отсчётах различие между двумя вычисленными спектральными плотностями практически отсутствует (относительная ошибка менее 1е-9).