我目前正在学习DSP,我正在使用Matlab软件包来解决问题。我目前刚刚开始尝试了解傅里叶系列,并遇到以下问题。
使用傅立叶级数生成100hz三角波。
现在,我无法理解使用傅立叶级数的这部分问题。
我使用以下matlab代码生成了一个100hz的三角波:
t = 0:1/10000:1;
f=100;
x1 = sawtooth(2*pi*f*t, 0.5);
x2 = fft(x1);
plot(t,x1);
axis([0 0.10 -1 1]);
grid on;
现在我在matlab中使用什么代码来绘制这个三角波的傅里叶级数?
感谢任何可能对此特定问题有所贡献的人。
答案 0 :(得分:4)
我认为问题是要求你找出'a'和'b'系数,然后通过在适当的频率上求和正弦和余弦来产生锯齿波。在线找到锯齿波的傅里叶系数并不太难,但我鼓励你把它解决并用它来检查你的答案:)
然后做这样的事情
n_harmonics = 10;
n = zeros(1, n_harmonics);
a = ?; % for you to figure out - probably a function of n
b = ?; % same idea
t = linspace(0, 2*pi);
x = zeros(size(t));
for nx = 1 : n,
x = x + a(nx)*cos(nx*t) + b(nx)*sin(nx*t);
end
plot(t, x)
注意傅立叶级数与傅里叶变换不同,后者是fft
估计的。大多数关于信号处理的文本将从傅里叶级数开始,并以此为基础进行傅立叶变换。还要注意,当从连续时间移动到离散时间时,存在大量重要且微妙的差异。同样,大多数教科书可能会以连续时间开始,然后将其作为介绍离散时间概念的基础。