Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_lab.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
169.65 Кб
Скачать

Текст программы:

T = t(2) - t(1); %находим интервал дискретизации

w = 0:0.02:5; %задаем сетку частот, от 0 до 5 рад/с с шагом 0,02 рад/с

Sw = []; Sw_teor =[]; %обнуляем массивы

for i=1:length(w) %цикл по всем выбранным частотам

Sw(i) = sum(Rplus .* cos(w(i)*t)); %находим спектр как преобразование Фурье корреляционной функции

Sw_teor(i) = 1 / (w(i)*w(i) + 1); %теоретический спектр

Sw_h(i)=sum(Rhamm .* cos(w(i)*t)); %спектр вычисленный с использованием окна

end;

Sw = 2*T*Sw;

Sw_h = 2*T*Sw_h;

N = 2*pi/0.5/T; %считаем число точек для БПФ, чтобы шаг по частоте был равен 0,5 рад/с

N = 2^nextpow2(N); %определяем ближайшую большую степень двойки

Fw = T * fft(y, N); %выполняем БПФ

Sw_fft = Fw .* conj(Fw) / N / T; %считаем оценку спектра

Sw_fft = Sw_fft(1:N/2+1); %выделяем первую половину спектра до частоты Найквиста

w1 = 2*pi*[0:N/2] / N / T; %формируем сетку частот для графика

scale = 1 / sqrt(0.54^2 + 0.46^2/2); %находим масштабирующий коэффициент для окна Хэмминга

hamm1 = hamming(N) * scale; %строим окно Хэмминга с масштабированием

yHamm=y(1:N).*hamm1; %применяем окно к первым отсчетам сигнала

Fwh = T * fft(yHamm, N); %БПФ

Sw_ffth = Fwh .* conj(Fwh) / N / T; %считаем оценку спектра

Sw_ffth = Sw_ffth(1:N/2+1); %выделяем первую половину спектра до частоты Найквиста

figure(2);

subplot(2,1,1),

plot(w, Sw,':b','LineWidth',2),

xlabel('w'),ylabel('S')

hold on,

plot(w,Sw_teor,':g','LineWidth',2)

plot(w, Sw_h,'-r','LineWidth',2)

legend('Sw','Sw_teor','Sw_h')

xlim([0 max(w)]);

hold off

subplot(2,1,2),plot(w,Sw_teor,':g','LineWidth',2),

ylabel('S'),xlabel('w')

hold on

plot(w1,Sw_fft,'-r','LineWidth',1)

plot(w1,Sw_ffth,'-b','LineWidth',1)

legend('Sw_teor','Sw_fft','Sw_ffth')

xlim([0 max(w)]);

hold off

Рисунок 5. График экспериментальной спектральной плотности(Sw), теоретической с.п. (Sw_teor), сглаженной (Sw_h)

Рисунок 6. Графики теоретической с.п. .(Sw_teor),, и с.п. вычисленной через ДПФ с использование окна Хэмминга(Sw_ffth) и без(Sw_fft)

По рисункам 5 и 6 видно, что применение окна Хэмминга сглаживает скачкообразные изменения оценки спектра. Оценка с.п. близка к теоретической с.п. При использовании прямого метода, основанного на использовании дискретного преобразования Фурье (или в современных вычислительных алгоритмах быстрого преобразования Фурье) требуется гораздо меньше операций. При этом не нужно строить корреляционную функцию, а можно сразу найти спектральную плотность, обработав выборку значений исходного сигнала. По рисунку видно, что такой метод менее точный, и оценка не гладкая.

  1. Используя формулу

,

с помощью функции trapz (численное интегрирование методом трапеций), оценим дисперсию по экспериментальному и теоретическому спектрам.

Swi=trapz(w,Sw)/pi = 0.5001

Sw_teori=trapz(w,Sw_teor)/pi = 0.4372

Дисперсии, вычисленные по экспериментальному и теоретическому спектрам, совпадают с дисперсией, рассчитанной во временной области. Это обусловлено равенством Парсеваля (сумма (или интеграл) квадрата функции равна сумме (или интегралу) квадрата результата преобразования).