dsPIC33FJ64GP802 (21) --- 周波数シフター (5)

 以下、(1.441-1.) のような式番号が付けられている式は、

I.S. Gradshteyn, I.M. Ryzhik 著
Alan Jeffrey, Daniel Zwillinger 編
"Table of Integrals, Series, and Products",
Seventh Edition,
Academic Press

からの引用です。
 まずは、のこぎり波のフーリエ展開の式です。

続きを読む

dsPIC33FJ64GP802 (20) --- 周波数シフター (4)

 ヒルベルト変換器を通すと、すべての周波数成分の位相が 90° 遅れるので、単一周波数の正弦波以外の一般の信号では、入力信号とは違った波形になります。
 のこぎり波 / 方形波 / 三角波に対する出力波形を観測し、「理論値」と比較してみました。
 まずは単一周波数 (250 Hz) の正弦波の場合を示します。

続きを読む

dsPIC33FJ64GP802 (19) --- 周波数シフター (3)

 前回示したオブジェクト・プログラムでサポートしている

  • 外付け 12.288 MHz 水晶振動子を使用した回路
  • 外付け 16 ビット ADC を使用した回路

を示します。 ただし、簡単のため、電源の配線など前回の基本回路図で表されている部分は省略し、追加すべき部分についてのみ記述します。

続きを読む

dsPIC33FJ64GP802 (18) --- 周波数シフター (2)

 dsPIC33FJ64GP802 を使った「Bode frequency shifter」のプログラムの基本的な部分がほぼ機能するようになりました。 「スケルチ」などは、まだ実装していません。
 クロックに関しては

  • 内蔵 FRC オシレータ (7.37 MHz) 使用
  • 外付け 12.288 MHz 水晶振動子使用

の 2 通りと、入力アナログ信号を変換する AD コンバータに関しては

  • 内蔵 12 ビット ADC 使用
  • 外付け 16 ビット ADC 使用

の 2 通りを組み合わせた、合計 4 種類の構成に対して、1 種類のオブジェクトで対応します。
 現在のバージョンでのプログラム・サイズは 1744 ワード (24 ビット・ワード)、データ・サイズは 2554 バイトです。 (2019 年 2 月 16 日追記: ヒルベルト変換器のタップ数を増やしたプログラムに差し替えて、プログラム・サイズは 1770 ワード、データ・サイズは 3194 バイトとなりました。)
 この記事の後半に hex フォーマットのオブジェクトを掲載します。
 「コピー・アンド・ペースト」して hex ファイルを作り、
PICkit 3 などで dsPIC33FJ64GP802 に書き込めば動作させてみることができます。
 ソース・リストについては近日中に公開する予定です。

続きを読む

dsPIC33FJ64GP802 (17) --- 周波数シフター (1)

 2018 年 11 月に開催された「アナログシンセ・ビルダーズ・サミット 2018」で、「公生32+」さんと「yama」さんが、「Bode Frequency Shifter」(以下「周波数シフター」と略記) の構成に基づいた (アナログ) シンセ・モジュールを出品されていました。
 この周波数シフターを dsPIC33FJ64GP802 を使って「ディジタル的」に実現しようと試みていましたが、「性能」や「実用性」はともかく、「周波数シフト」という基本機能については動作することが確認できました。
 内蔵 12 ビット ADC / 内蔵 16 ビット DAC を使用し、入出力の「シグナル・コンディショニング」用の OP アンプを除けば、主要なチップとしては dsPIC33FJ64GP802 ワンチップだけで実現できています。
 外部 16 ビット ADC を接続すれば性能の向上が期待できます。
 外部 ADC 対応、使用メモリ量の低減など、プログラムの整理がついたら公開したいと思っています。
 周波数シフターの構成について、簡略化したブロック・ダイアグラムをディジタル実現の場合について下に示します。

続きを読む