2013-04-03 3 views
6

ライブラリを使用したくない - 一から書きたいです。私は、WEFAX用のデコーダをラジオで送信することを考えています。異なるオーディオ周波数が異なるピクセルの暗さに変換されます。グレースケールのみ - 無色。Cでのオーディオ周波数の読み方の基礎をお探しください

1分あたり120ラインがあり、それぞれ1000ピクセルを超えます。私は、周波数を検出し、おそらくそれを8ビットの値に変えたいと思う。ハードウェアと同等のものはLM567の周波数/電圧コンバータのようなものです。

どこから始めたらいいかわかりません。 FIRやIIRのようなものですか?誰でも私が勉強できるコードを教えてもらえますか?私はWindows用ではなく、厳密にはUNIX用です。

あなたはIQデータを持っていると仮定すると

http://en.wikipedia.org/wiki/Zero_crossing

+0

「周波数推定」、「ピッチ検出」、「(高速)離散フーリエ変換」を参照してください。 –

+0

[Aquila](http://aquila-dsp.org/)または[aubio](http://aubio.org/)をご覧ください。 (たとえ最初から書きたい場合でも、始める方法がわからなければ、他の人がそれをやった方法を見てみるべきです。) –

答えて

1

、あなたが実装され、簡単なFM復調器で開始することができます位相微分器を用いる。周波数は位相の派生物なので、元のFM信号の推定値を得るためにサンプル間の位相差を単純に計算することができます。あなたはまた、2*piの倍数で出力でジャンプを避けるために、アンラップいくつかのフェーズを実行する必要があり

y[k] = arctan(imag(x[k])/real(x[k])) - arctan(imag(x[k-1])/real(x[k-1])) 

:単一の出力サンプルは、のようなものによって与えられます。詳細については、瞬時周波数セクションhereを参照してください。

FM復調器の出力は、元の信号の周波数が変化するように振幅が変化する信号を生成するため、基本的には画像です。それを正しいピクセルグリッドに再サンプリングし、グレーレベルを正確にスケール/量子化する必要があります。

ノイズを減らすために、FM復調器の出力を低域フィルタリングするために画質を改善することがあります。

0

基本周波数を見つけるためにちょうどタイマーとゼロクロスでそれを行うことができアラン

関連する問題