0

要求是生成一个 csv 文件,其中每列是频率为 1 Hz、2 Hz、3Hz、4Hz、5Hz、6Hz、7Hz 的正弦波数据。因此共有 7 列。

1Hertz 有 100 个波点,因此总共 100 x 700= 70,000 个点。

谁能解释如何为这个要求编码

4

1 回答 1

0

你可以试试这个。这里,

  1. 我正在使用 Numpy 来获取所需的频率值。
  2. 然后将这些值复制到熊猫数据框
  3. 最后将其写入 csv 文件。

有关 Python 中正弦波的更多有用详细信息,请参阅此链接

import numpy as np
import pandas as pd    

def get_values_for_frequency(freq):
    # sampling rate
    sr = 100.0
    # sampling interval
    ts = 1.0/sr
    t = np.arange(0,1,ts)

    # frequency of the signal
    freq = 5   
    y = np.sin(2*np.pi*freq*t)
    return y


df = pd.DataFrame(columns =['1Hz','2Hz', '3Hz', '4Hz', '5Hz', '6Hz', '7Hz'])

df['1Hz']=pd.Series(get_values_for_frequency(1))
df['2Hz']=pd.Series(get_values_for_frequency(2))
df['3Hz']=pd.Series(get_values_for_frequency(3))
df['4Hz']=pd.Series(get_values_for_frequency(4))
df['5Hz']=pd.Series(get_values_for_frequency(5))
df['6Hz']=pd.Series(get_values_for_frequency(6))
df['7Hz']=pd.Series(get_values_for_frequency(7))

df.to_csv('sine.csv', index=False)

生成的 csv 文件的示例输出:

在此处输入图像描述

于 2022-03-01T08:33:38.363 回答