如何创建音频的正弦波图。如果我有录音的频率和长度

问题描述 投票:0回答:1

目前,我有显示幅度及其频率的代码

def plot_fft(p, xf, fs, notes, dimensions=(960, 540)):
    xf_bet=xf-160
    layout = go.Layout(
        title="frequency spectrum",
        autosize=False,
        width=dimensions[0],
        height=dimensions[1],
        xaxis_title="Frequency (note)",
        yaxis_title="Magnitude",
        font={'size': 24}
    )

    fig = go.Figure(layout=layout,
                layout_xaxis_range=[FREQ_MIN, FREQ_MAX],
                layout_yaxis_range=[0, 1]
                )

    fig.add_trace(go.Scatter(
        x=xf_bet,
        y=p))

    for note in notes:
        # Dodanie wartości częstotliwości do nazwy dźwięku
        note_name_with_freq = f"{note[1]} ({round(note[0]-160, 2)} Hz)"
        fig.add_annotation(x=note[0] + 10, y=note[2],
                       text=note_name_with_freq,
                       font={'size': 48},
                       showarrow=False)
    return fig

该程序的想法是创建许多情节并最终将它们组合成MP4

python plotly visualization fft plotly.graph-objects
1个回答
0
投票

我可以想到两种方法:

  1. 只需创建单独的正弦波。那么每个频率波就是

    y = A * sin(2 * np.pi * f + phi)

振幅 A、频率 f 和相移 phi。

  1. 如果您有傅里叶频谱(所有频率和幅度的图表),请应用傅里叶逆变换 (iftt) 来获取真实信号。
© www.soinside.com 2019 - 2024. All rights reserved.