matlab三角函数频谱图
时间: 2023-11-04 12:58:33 浏览: 170
MATLAB频谱图
Matlab可以使用傅里叶级数进行三角函数频谱图的绘制。根据提供的引用,可以通过给定幅度An和相位ψn的值,使用stem函数和plot函数来绘制幅度谱和相位谱。同时,可以使用pulstran函数和trifourierseries函数对三角函数进行级数展开,并通过plot函数将展开后的结果与原函数进行对比。以下是一个示例代码:
```Matlab
% 给定参数
n = 0:1:10;
anVal = eval(an);
bnVal = eval(bn);
An = sqrt(anVal.^2 + bnVal.^2);
An(1) = a0;
phi = atan(-bnVal./anVal);
phi(1) = 0;
% 画幅度谱
subplot(2,3,3);
stem(n, An, 'b');
grid on;
axis([-0.1,10.1,-0.1,1.1]);
title('幅度谱');
xlabel('n');
ylabel('An');
% 画相位谱
subplot(2,3,6);
plot(n, phi, 'b');
grid on;
axis([-0.1,10.1,-0.1,1.1]);
title('相位谱');
xlabel('n');
ylabel('ψn');
% 画级数展开图
t = -6:0.01:6;
d = -6:2:6;
f = pulstran(t, d, 'tripuls');
f3 = trifourierseries(a0, an, bn, 3, t);
f9 = trifourierseries(a0, an, bn, 9, t);
f21 = trifourierseries(a0, an, bn, 21, t);
f45 = trifourierseries(a0, an, bn, 45, t);
subplot(2,3,1);
plot(t, f, 'r', t, f3, 'b');
grid on;
axis([-6.1,6.1,-0.1,1.1]);
title('展开3项');
xlabel('t');
ylabel('f(t)');
subplot(2,3,4);
plot(t, f, 'r', t, f9, 'b');
grid on;
axis([-6.1,6.1,-0.1,1.1]);
title('展开9项');
xlabel('t');
ylabel('f(t)');
subplot(2,3,2);
plot(t, f, 'r', t, f21, 'b');
grid on;
axis([-6.1,6.1,-0.1,1.1]);
title('展开21项');
xlabel('t');
ylabel('f(t)');
subplot(2,3,5);
plot(t, f, 'r', t, f45, 'b');
grid on;
axis([-6,6,-0.1,1.1]);
title('展开45项');
xlabel('t');
ylabel('f(t)');
```
阅读全文