Skip to content

Spectrum Analysis Service – 示例

执行离散傅里叶变换 (DFT)

使用以下端点对音频文件执行 DFT:

POST /calculateFrequencies

Content-Type:multipart/form-data; audio/wav

请求文本包含两部分:

  • file(必需):要进行变换的音频文件。该文件必须为 .wav 格式且文件大小不得超过 1 MB。其样本大小可以是 8 或 16 位,可以采用单声道或立体声。
  • fftProperties(可选):傅里叶变换的 JSON 配置。设置在计算 DFT 之前应用于输入信号的 windowType。有四个可用选项:FLATTOPHAMMINGHANNINGBLACKMAN

fftProperties 的示例请求:

{
 "windowType":"FLATTOP"
}

示例响应:

{
 "numberOfFFTComponents":9,
 "amplitudeUnit": "dB",
 "data": {
 "maxFFTFrequency":22050,
 "amplitudes": [
 -225.81,
 -35.42,
 -36.66,
 -35.15,
 -40.27,
 -35.72,
 -38.73,
 -29.63,
 -27.35
 ]
 }
}

响应为 JSON 对象,其中包含以下信息:

  • DFT 能够处理的最高频率,为采样频率的一半。该频率也称奈奎斯特频率。
  • DFT 所得频率分量的数量
  • 幅值的测量单位
  • DFT 所得的幅值形成的数组

执行超出阈值检测

使用以下端点检测超出阈值情况:

POST /detectThresholdViolations

Content-Type:application/json

请求文本包含两部分:

  • data(必需):离散傅里叶变换返回的频率分量的幅值形成的数组。
  • spectrumFilter(必需):定义相关的频率区间以及频率阈值的上限和下限。至少需要一个阈值,而频率区间可选。如果未定义频率区间,则将对整个信号执行分析。

示例请求:

{
 "data": {
 "amplitudes": [
 -225.81,
 -35.42,
 -36.66,
 -35.15,
 -40.27,
 -35.72,
 -38.73,
 -29.63,
 -27.35
 ],
 "maxFFTFrequency":22050
 },
 "spectrumFilter": {
 "minFrequency":1000,
 "maxFrequency":12000,
 "lowerThreshold": -40.25,
 "upperThreshold": -30
 }
}

示例响应:

{
 "upperDetection": {
 "frequencyAtMaxAmplitude":6120,
 "maxAmplitude": -40.27,
 "breachPercentage":25
 },
 "lowerDetection": {
 "frequencyAtMinAmplitude":10020,
 "minAmplitude": -27.35,
 "breachPercentage":50
 }
}

响应为 JSON 对象,其中包含检测超出上限与下限阈值的情况。这些检测结果可指示幅值超出阈值最多的位置 (frequencyAtMaxAmplitude)、以 dB 为单位的幅值 (maxAmplitude) 以及在给定数组范围内或指定的频率区间内超出阈值的分量的百分比 (breachPercentage)。


Last update: July 11, 2019