當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Processing FFT用法及代碼示例


Processing, 類FFT用法介紹。

構造函數

  • FFT(parent)
  • FFT(parent, bands)

參數

  • parent 通常使用"this"
  • bands FFT 的頻帶數為整數(默認為 512)。此參數必須是 2 的冪(例如 16、32、64、128、...)。

說明

這是一個快速傅裏葉變換 (FFT) 分析儀。它會在使用analyze() 方法查詢音頻流時計算其歸一化功率譜。

例子

import processing.sound.*;

FFT fft;
AudioIn in;
int bands = 512;
float[] spectrum = new float[bands];

void setup() {
  size(512, 360);
  background(255);
    
  // Create an Input stream which is routed into the Amplitude analyzer
  fft = new FFT(this, bands);
  in = new AudioIn(this, 0);
  
  // start the Audio Input
  in.start();
  
  // patch the AudioIn
  fft.input(in);
}      

void draw() { 
  background(255);
  fft.analyze(spectrum);

  for(int i = 0; i < bands; i++){
  // The result of the FFT is normalized
  // draw the line for frequency band i scaling it up by 5 to get more amplitude.
  line( i, height, i, height - spectrum[i]*height*5 );
  } 
}

方法

  • FFT.analyze()計算當前頻譜並將其作為一個數組返回,該數組包含與頻帶一樣多的元素。
  • FFT.input()定義分析儀的音頻輸入。

相關用法


注:本文由純淨天空篩選整理自processing.org大神的英文原創作品 FFT。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。