我目前正在学习DSP,我正在使用Matlab软件包来解决这些问题。目前,我刚刚开始尝试了解fourier级数,并且遇到了以下问题。
利用傅里叶级数产生100 an三角波。
现在,我不能完全理解使用fourier级数的问题的这一部分。
我用下面的matlab代码生成了一个100 the的三角波:
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中我会用什么代码来绘制这个三角波的fourier级数?
感谢任何人,谁可能有一些投入,为这个特殊的问题。
发布于 2012-03-09 20:06:09
我认为问题是要你找出'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估计的结果。大多数关于信号处理的文本将从傅里叶级数开始,并在此基础上进行傅里叶变换。还请注意,在从连续时间转移到离散时间时,存在着大量的重要和微妙的差异。再一次,大多数教科书可能会从连续时间开始,然后用它作为介绍离散时间概念的基础。
https://stackoverflow.com/questions/9640185
复制相似问题