08 互谱密度 csd
用途
两个信号的互功率谱,反映它们在各个频率上的共同成分。
示例(5 张)
08-1 输入电压与输出电流的互谱密度

08-2 负荷功率与电价的互谱密度

08-3 风电出力与风速的互谱密度

08-4 同一母线两个测点的电压互谱

08-5 振动与噪声信号的互谱密度

代码
以下 5 个函数取自 code/第二批_信号分析261107.py,直接调用即可出图。样式(宋体 + Times、10 磅、刻度朝内四边、留白自检)由 code/公共配置261107.py 的 setup_cn_style() 和 save() 统一提供,本节不再重复。
# 摘自 code/第二批_信号分析261107.py
def csd_01():
"""输入电压与输出电流的互谱密度。"""
fig, ax = new_fig()
t, u = _sig(seed=801)
i = 0.8 * np.sin(2 * np.pi * 50 * t - 0.4) + 0.3 * u + 0.15 * np.sin(2 * np.pi * 150 * t)
ax.csd(u, i, NFFT=1024, Fs=2000, color=C1, lw=0.9)
ax.grid(False)
ax.set_xscale("log")
ax.set_xlim(20, 1000)
ax.set_xlabel("频率 " + IT["f"] + " / Hz")
ax.set_ylabel("互谱密度 / (V·A/Hz)")
save(fig, "08_互谱密度", "08_互谱密度_电压电流互谱")
def csd_02():
"""负荷功率与电价的互谱密度。"""
fig, ax = new_fig()
rng = np.random.default_rng(802)
fs = 24.0
t = np.arange(0, 120, 1 / fs)
load = 500 + 160 * np.sin(2 * np.pi * t / 24) + rng.normal(0, 18, t.size)
price = 0.6 + 0.22 * np.sign(np.sin(2 * np.pi * t / 24)) + rng.normal(0, 0.02, t.size)
ax.csd(load, price, NFFT=256, Fs=fs, color=C3, lw=0.9)
ax.grid(False)
ax.set_xscale("log")
ax.set_xlabel("频率 " + IT["f"] + " / (1/h)")
ax.set_ylabel("互谱密度")
save(fig, "08_互谱密度", "08_互谱密度_负荷电价互谱")
def csd_03():
"""风电出力与风速的互谱密度。"""
fig, ax = new_fig()
rng = np.random.default_rng(803)
fs = 1.0
t = np.arange(0, 2048, 1 / fs)
v = 8.5 + 1.6 * np.sin(2 * np.pi * t / 180) + rng.normal(0, 0.5, t.size)
p = 0.42 * v ** 3 + rng.normal(0, 120, t.size)
ax.csd(v, p, NFFT=512, Fs=fs, color=C1, lw=0.9)
ax.grid(False)
ax.set_xscale("log")
ax.set_xlabel("频率 " + IT["f"] + " / Hz")
ax.set_ylabel("互谱密度")
save(fig, "08_互谱密度", "08_互谱密度_风电出力风速互谱")
def csd_04():
"""同一母线两个测点的电压互谱。"""
fig, ax = new_fig()
t, u1 = _sig(seed=804)
rng = np.random.default_rng(8041)
u2 = 0.96 * u1 + rng.normal(0, 0.05, u1.size)
ax.csd(u1, u2, NFFT=1024, Fs=2000, color=C5, lw=0.9)
ax.grid(False)
ax.set_xscale("log")
ax.set_xlim(20, 1000)
ax.set_xlabel("频率 " + IT["f"] + " / Hz")
ax.set_ylabel("互谱密度 / (V²/Hz)")
save(fig, "08_互谱密度", "08_互谱密度_双测点电压互谱")
def csd_05():
"""振动与噪声信号的互谱密度。"""
fig, ax = new_fig()
rng = np.random.default_rng(805)
fs = 4000
t = np.arange(0, 2, 1 / fs)
vib = (1.2 * np.sin(2 * np.pi * 49 * t) + 0.5 * np.sin(2 * np.pi * 98 * t)
+ rng.normal(0, 0.2, t.size))
noise = (0.6 * vib + 0.5 * np.sin(2 * np.pi * 300 * t)
+ rng.normal(0, 0.3, t.size))
ax.csd(vib, noise, NFFT=2048, Fs=fs, color=C3, lw=0.9)
ax.grid(False)
ax.set_xscale("log")
ax.set_xlim(10, 1800)
ax.set_xlabel("频率 " + IT["f"] + " / Hz")
ax.set_ylabel("互谱密度")
save(fig, "08_互谱密度", "08_互谱密度_振动噪声互谱")
说明
- 图片尺寸 1181×944 px(100 mm × 80 mm @ 300 dpi),三维图为 1181×1122 px。
- 图内不放标题,图题由本文件的二级/三级标题承担。
- 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。
浙公网安备 33010602011771号