• 本当は、田舎に庵を建てて隠遁生活したいけど、先立つものも無いので自宅で..。

【Qucs】fft()でエラーが出るのでtime2freq()を使う

Qucsのマニュアルには、fft()という高速フーリエ変換のための関数が記載されている。 ところが実際使ってみると、ERROR: Unknown function ‘fft’というエラーメッセージが出て使えない。

ネットで調べてみると、fftが使われている記事が見られた。最近のバージョンで使えなくなった可能性もあるけど、エラーが出るという情報は見つからなかった。

なんでだろう?

まあ、実際は使えなくても不都合は生じない。 time2freq()という関数があって、マニュアルによるとこれはDFTらしい。 シミュレーションで使う場合、特に高速性は必要ないので、DFTが使えればFFTはいらない。 というか、FFTはサンプル数を2のべき乗にする必要があるけど、DFTなら特に制限がないから、むしろDFTの方が使いやすいともいえる。

ミキサーを作って、time2freqを試してみた。

Qucsでは乗算器が使えるので、ミキサーのシミュレーションは簡単にできる。

 

各部の波形。 入力1が10kHz、入力2が5kHz。

time2freq関数を使ってスペクトル表示してみると・・

差の周波数が5kHz、和の周波数が15kHzとなって正常に表示されていることがわかる。

スペクトルの間隔は、解析時間の逆数になるので、1/1ms=1kHzになっている。

解析時間を10msにすると、スペクトルの間隔が100Hzになる。

FFTを使わなくても特に不便はないので、fft()でエラーが出る件に関しては、特に深追いしないことにする。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA