2012-03-09 101 views
0

我目前正在學習DSP,我正在使用Matlab軟件包來解決這些問題。我目前剛剛開始嘗試瞭解有關Fourier系列的問題,並且遇到了以下問題。關於Matlab中的傅里葉級數的混淆

使用傅里葉級數生成100hz三角波。

現在,我不能理解這部分關於使用fourier系列的問題。

我已生成與下面的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中繪製傅里葉級數這個三角波的?

感謝任何人對此特定問題可能有一些意見。

回答

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估計的值。大多數關於信號處理的文本將從傅立葉級數開始,並以此爲基礎進行傅立葉變換。還請注意,從連續時間移動到離散時間時,存在大量重要且細微的差異。同樣,大多數教科書可能會以連續時間開始,然後將其用作介紹離散時間概念的基礎。