【问题标题】:Confusion Regarding The Fourier Series In MatlabMatlab中关于傅里叶级数的困惑
【发布时间】:2012-03-09 19:59:35
【问题描述】:

我目前正在学习 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 中使用什么代码来绘制这个三角波的傅立叶级数?

感谢任何可能对此特定问题提出意见的人。

【问题讨论】:

    标签: matlab signal-processing signals


    【解决方案1】:

    我认为问题是让您找出“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 所估计的。大多数关于信号处理的文本将从傅立叶级数开始,并以此为基础进行傅立叶变换。另请注意,从连续时间到离散时间时,存在大量重要且细微的差异。同样,大多数教科书可能会从连续时间开始,然后以此为基础介绍离散时间概念。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-16
      • 2016-01-26
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多