dsPIC33FJ64GP802 (23) --- 周波数シフター (7)
"Table of Integrals, Series, and Products" でのグーデルマン関数 (Gudermannian function, 関数名は「」と表記) の定義を引用します。
続きを読むdsPIC33FJ64GP802 (22) --- 周波数シフター (6)
前回と同様に、"Table of Integrals, Series, and Products" から引用した式を示します。
まず、方形波の場合です。
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 対応、使用メモリ量の低減など、プログラムの整理がついたら公開したいと思っています。
周波数シフターの構成について、簡略化したブロック・ダイアグラムをディジタル実現の場合について下に示します。