Этот пример показывает, как расширение ряда Фурье для квадратной волны состоит из суммы нечетных гармоник.
Начните, сформировав временной вектор от 0 до 10 с шагом 0,1 и примите синус всех точек. Постройте график этой основной частоты.
t = 0:.1:10; y = sin(t); plot(t,y);
Затем добавьте третью гармонику в основной, и постройте его.
y = sin(t) + sin(3*t)/3; plot(t,y);
Теперь используйте первую, третью, пятую, седьмую и девятую гармоники.
y = sin(t) + sin(3*t)/3 + sin(5*t)/5 + sin(7*t)/7 + sin(9*t)/9; plot(t,y);
Для финала перейдите от фундаментального вплоть до 19-й гармоники, создавая векторы последовательно большего количества гармоник и сохраняя все промежуточные шаги как строки матрицы.
Постройте график векторов на том же рисунке, чтобы показать эволюцию квадратной волны. Обратите внимание, что эффект Гиббса говорит, что он никогда не совсем туда попадет.
t = 0:.02:3.14; y = zeros(10,length(t)); x = zeros(size(t)); for k = 1:2:19 x = x + sin(k*t)/k; y((k+1)/2,:) = x; end plot(y(1:2:9,:)') title('The building of a square wave: Gibbs'' effect')
Вот 3-D поверхность, представляющая постепенное преобразование синусоиды в квадратную волну.
surf(y); shading interp axis off ij