【问题标题】:Plot Magnitude Spectrum of Triangle Wave绘制三角波的幅度谱
【发布时间】:2021-02-01 23:14:04
【问题描述】:

我得到了一个周期性三角波(图 1),我需要为不同的 \tau 值(\tau = T/2、\tau = T/4、\tau)绘制其幅度谱(如图 2) = T/16)。在 matplotlib 中有什么方法可以做到这一点吗?似乎scipy triangle function 甚至不允许用“间隙”定义三角波。来自 matplotlib 的 magnitude_spectrum 会产生“连续”图,而我需要“离散”图。

UPD:之前的问题是关于绘制傅里叶变换,但我发现这可能不是我想要的。

【问题讨论】:

  • 我不清楚你到底想做什么。您是否正在尝试编写一个程序来计算(有限)三角波的傅立叶变换然后绘制它?或者您是否试图为不同的 tau 和 alpha 值绘制三角波变换的解析解?请编辑问题以澄清
  • 哦,我明白我解释错了。我以为他们只是想要剧情
  • 抱歉,问题已澄清。

标签: python numpy matplotlib signal-processing fft


【解决方案1】:

这是怎么回事?

from scipy import signal
import matplotlib.pyplot as plt
import numpy as np

def ξ(x, a, τ):
    return [a*max(0, e) for e in -signal.sawtooth(τ * np.pi * x, 0.5)]

x = np.linspace(-3, 3, 400)
plt.plot(x, ξ(x, a=2, τ=1))  
plt.xlabel('x')
plt.ylabel('ξ')
plt.title('Fourier Transform')
plt.show()

【讨论】:

  • 这似乎是OP描述的“半三角形”波函数的图,但标题为“傅里叶变换”。我认为 OP 想要这个信号函数的傅里叶变换,我想这将是一个完全不同的情节
  • 是的,你是对的。我决定在这里留下这个答案,以防 op 感兴趣。
  • 我认为您已经完成了几乎所有的工作(OP 只需要计算 psd 和绘图)但是将绘图命名为傅里叶变换有点奇怪。但正如Pac0所指出的,标题应该是“三角波/锯齿”
猜你喜欢
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-11
相关资源
最近更新 更多