質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

解決済

1回答

1918閲覧

ddf.minimライブラリのバッファサイズとスペックサイズの関係

miiikun

総合スコア39

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2017/07/04 05:27

minimでfft解析を行うに、バッファサイズを1024、サンプリングレートを44100Hzに設定しました。
この時、音波を1秒間に44100分割して、
その0~1/44100秒のデータをバッファ[0]へ、
1/44100秒~2/44100秒のデータをバッファ[1]へ
・・・
という認識で理解しています。つまり、例えばバッファ[0]には色んな周波の波がふくまれています。

ここで、スペックサイズ(バンド数)は、このとき
バッファサイズ/2+(0Hzの分)=1024/2+1=513
らしいです。何故ですか?

理解されている方、どうかご教授お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

wiki:離散フーリエ変換の「信号解析」の節を引用しますと

この信号はN個の等間隔の点で標本化されて、x0, x1, x2, ... , xN-1 の実数列になる。...これのDFTである f0, ..., fN−1 をFFTで計算できる。ただし標本化定理からこれの半分(Nが偶数とすると、fN/2 + 1, ..., fN−1)は冗長であるので捨てるか無視する。

とあります。FFTによって周波数N個分の計算結果を出すことはできるのですが、元のデータが離散データであるため周波数成分の半分は意味を持たないデータになります。


なぜ意味を持たないか、ごくおおざっぱに(正確性には目をつぶり、より直感的に)考えてみますと...

周波数成分を解析する演算には、少なくとも1周期分の波がサンプルデータに含まれている必要があるので、最低の(直流成分を除いた)有意な周波数(fMin)はサンプルN個で1周期となるような周波数であり、

fMin = fS/N (ただし、fS=サンプリング周波数, N=計算に用いるサンプルデータ数)

となります。一方最高の有意な周波数(fMax)はサンプル2個で1周期となるような周波数であり、

fMax = fS/2

となります。fMaxの波の様子を思い浮かべてみると以下のように波形の最大と最小の山が1個おきに並ぶ感じになります。

| * * + |* * * +0 1 2 3 4 ...

さて計算上はそれより大きな周波数の計算も考えることはできるのですが、例えばfMaxの3/2倍(fSの3/4倍)の周波数をプロットしてみると以下のように、データが離散的であるため本来の周波数よりも低い周波数の波にしか見えないことがわかると思います。つまりfMaxの3/2の周波数を計算したつもりが、結果として得られるのはfMaxの1/2の周波数成分でしかなくなります。

| * * + * * * |* * +0 1 2 3 4 5 6

なお、fS/2より大きな周波数成分を計算しても、その結果はfS/2より小さな周波数成分にしかならないという厳密な解説は標本化定理というキーワードで調べると見つかると思います。

投稿2017/07/04 08:24

編集2017/07/04 08:28
KSwordOfHaste

総合スコア18392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miiikun

2017/07/04 08:47

図まで添えて頂き、大変分かりやすかったです。 またお願いします。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問