2018年11月02日

次のネタ

CD-4ディモジュレータソフトもそれなりに動作するようになりましたし、
次のネタを考えています。
CD-4ディモジュレータは10年以上前から作りたいと思っており、今回の
ソフトウェアバージョンの前に30kHzのFM復調をコンパレータで1bit検出し
周期から求める方法で過去に作ったことが有りますが30kHz信号のみ通過する
アナログフィルタの再現性やFM復調の分解能荒さから、それに回路図らしい
回路図も書かずに製造したため特に公開もしていません。

ソフトウェアバージョンでは24bitサウンドカードを用いることで復調部分でも
それなりの分解能が確保できている筈であり、ソフトウェアのみなので公開も容易だ、
ということでみなさんに使ってもらえたらな、と思っています。

ところで、レコードを再生するのにわざわざPCを、それも本来は
イコライザを介して接続するべきプレーヤ出力を直接PCの音源に接続するのも
感覚的に気持ち悪い?し面倒で場所も必要なので、
このソフトウェアをハードウェア化して通常のイコライザ程度のサイズにして
しまえば使い勝手が良くなるのかな?と検討しています。
実はこのディモジュレータの構想の前にパソコンではなくこれを用いて
ディモジュレータを作ろうと思っていたのですが、
何せ出力が2chしかないので4ch出力するためにCODECをもう1個乗せれば。。。と
回路図とにらめっこまでしましたが、I2SバスをGPIOに引き出していない。。。等から
諦めていました。
そんな中、今までFPGAで色々やってきたし、最近は安いFPGAボード
出ているようなので、ADCやDACを外付けしてハードウェアでやっても
小さくて高音質なディモジュレータができるかな、と思っています。
但し、僕自身は(軽い近眼なこともあって)QFPパッケージのADC,DACを裸眼で
基板実装することに何ら抵抗はありませんが、CD-4レコードをリアルタイムで
味わった方々には実装がちょっときついかな。。。

で、CD-4ディモジュレータはFM復調をデジタル処理で行いますがFMラジオも当然FM復調です。
実はディモジュレータの復調部分はFPGA FMチューナ記事をかなり
参考にさせてもらっており、搬送波周波数の直交信号と変調信号を掛け合わせて
逆三角関数で復調するという方法はそのままです。
実はこれにも興味があり、僕も作ってみたいな、だけど受信可能周波数帯域が
狭いみたいだし。。。と思っていました。周波数帯域に関してはアナログ
フロントエンドのフィルタ部分をバリキャップで可変にしてバイアス電圧を
FPGAからコントロールすればワイドバンド化できる気がします。
使用しているADCも14bit/80MHzサンプリングの高スペック品を使用していますが、
アナログ帯域を狭めてしまえば(アナログフィルタで同調させてしまえば)
サンプリング周波数は20MHzもあれば十分に実用できると思います。
(但しADCのアナログ帯域はFM周波数を満足する必要はあります)
FPGA、DACはディモジュレータ、FMチューナで共用できるので一緒に入れてしまう
ことも考えていますが、公開した時に両方の機能が必要な人がどれだけいるか。。。
FMチューナでは周波数表示等で液晶ディスプレイが必要になるでしょうが
ディモジュレータでは必須ではない。。。等、まぁ不要な部品は実装しないで
ください、でも良いのでしょうが。
ということで、次はFPGA CD-4ディモジュレータ/FMチューナーでしょうか。

posted by プー at 09:32| Comment(0) | 雑記 | 更新情報をチェックする

2018年09月17日

DMA修正版

皆様から色々ご指摘いただき、DMAの動作異常に関して一部修正しました。
release-F68k_DE0CVDEMU.180917.qar

ご指摘いただいた皆様、ありがとうございました。

具体的には、DMA転送の8b,16b動作時アドレスの変化の仕方に間違いがありました。
(レジスタの解釈の仕方を間違えていました)
続きを読む
posted by プー at 01:36| Comment(2) | 日記 | 更新情報をチェックする

2018年08月19日

CD-4デモジュレータ改良版

デモジュレータのRIAAイコライザの変更および自動調整機能の有効化を行いました。

release.zip
マニュアルも作成しましたので一緒にzip化しました。
続きを読む
posted by プー at 07:56| Comment(0) | 日記 | 更新情報をチェックする

2018年08月08日

CD-4デモジュレータほぼ完成版

フィルタの定数や遅延の調整等を行い、音質はともかくセパレーションはかなり良くなりましたので
アップロードします。
CD4demod.exe

いくつかAutoボタンがありますが機能はしません。手動で調整は行ってください。
.iniファイルによる設定保存機能を追加しましたのでセパレーション調整等を行ったのち、
メニューからFile→StoreConfigすれば設定値が保存され、次回起動時に自動で読まれます。
レジストリではなく昔ながらの.ini方式です。
posted by プー at 20:56| Comment(0) | 日記 | 更新情報をチェックする

2018年08月01日

CD-4 4ch出力対応

CD-4デモジュレータをまともに使用するために音源を追加しました。
4CH以上の出力、2CH以上の入力があり、サンプリング周波数96kHz以上に
対応していればとりあえず動作する筈なのですが、接続が面倒なので
USBタイプの音源にしました。
AT互換機にそれなりに長く付き合っている人であれば音源=SBだ、
ということで購入したのはSoundBlaster X-Fi Surround 5.1 Pro
という製品を購入しました。
ですが、PCの裏に潜り込んでライン出力-アンプ間結線をし直すのは
やはり面倒だったので、とりあえずは入力デバイスとしてテストしました。
(オンボード音源が4CH出力にするとジャックを共有するライン入力が
使えないので、オンボードを4CH出力専用、SBを入力専用として使用)
もちろん、SBも出力デバイスとして使用できるはずです。

プログラムをちょこっと修正し、4CH出力に対応させました。
CD4demod.exe
動作しているときの画面はこんな感じです。
CD-4demod.gif
CD-4システムを使ったことがある人であればわかると思いますが、CD-4システムは調整が必要です。
30kHzレベル調整、左右セパレーション調整です。
それ以外に、音源(ライン入力)のゲインも個体差がありますのでゲイン設定(PreGain)も
調整してください。
最初に入出力デバイスを選択し、30kHz Levelを少し右に動かし、Startを押すと機能開始します。
(30kHzレベルが0のままだとFM復調が常時動作し、CD-4未再生時にホワイトノイズが出ます。
左右チャンネルのseparationを少し右に動かし、何でもいいのでレコードを再生させ、PreGainを
少しずつ右に動かし、レコードの音が歪む手前に持っていきます。
(セパレーションレベルが高くても歪むのでセパレーションレベルはほんの少しのレベル)
あとはCD-4調整レコードの指示通りに各レベルを調整すればいいと思います。
レベルメータも飾り程度につけていますがセパレーション調整の時にリア(下側)のレベルが
最小になるように調整すると便利だと思います。
posted by プー at 21:26| Comment(0) | オーディオ関連 | 更新情報をチェックする

2018年07月24日

CD-4デモジュレータ仮配布

という訳で、'70年代に流行した(らしい)4chレコードの代表、CD-4システムの
デモジュレータがほぼ完成したので仮リリースします。
なぜ仮か、というと、リアの音しか出ないからです。何故かというと。。。
うちのPC、リア出力端子とライン入力端子が共有なので入力と4CH出力が
同時使用できないのです。ステレオ出力しかできません。なので、ソースとしては4CH出力計算し
ていますがステレオ出力にはリア信号のみを接続しています。
何故フロント(1,3CH)ではなくリア(2,4CH)なのかというと、セパレーション調整は
リアが最小になるように調整するため、リアだけでも鳴らないと調整ができない為です。
ということで、CD-4用テストレコードとレコードプレーヤ、ハイレゾ対応音源がPCに
内蔵されていればとりあえずは動作するようになっています。
早急にUSB接続の5.1CH+ステレオ入力の音源でも購入して本格的に4CH再生できるように
したいと思います。

なお、まだ前後差信号のイコライザが全然おかしいと思います。和信号のRIAAは
うまく出来ていると思います。
CD4demod.exe
posted by プー at 23:38| Comment(0) | 日記 | 更新情報をチェックする

2018年06月30日

CD-4デモジュレータ続き

もうちょっと、何をしているのか書いてみます。
まずは変調信号を取り出すためにFIRフィルタで30±10kHzを取り出します。
その信号に、30kHzのsin,cos信号を乗算します。あとは乗算結果をarc tan2すれば位相情報として取り出せるのですが、
ノイズが大きく計算誤差が大きいため、sin,cosを乗算した結果に対しDC〜15kHzの
FIR ローパスフィルタでノイズを除去し、その後arc tan2で角度に変換します。
FM変調は角度の変化が信号レベルですのでサンプリング毎の角度の変化量が
電圧レベルになりますので前回の計算結果から今回の計算結果を引き算し、
位相の回転(360°超え)補正を行い、再度可聴帯域パスフィルタをFIRで行うと
30kHzでFM変調された信号の復調が完了します。
posted by プー at 11:53| Comment(0) | オーディオ関連 | 更新情報をチェックする

CD-4デモジュレータ

最近の若い人達はレコード自体を聞いた事が無い、という人も多いと思います。
そういう僕自身もCD世代で最初にレコードを買ったのは最初にCDを買ったのより後、という
世代なのですが、レコード全盛期時代、70年代には一時期、4チャンネルブームがあり、
レコードでもいくつかの方式で4チャンネル録音の規格が出来ています。

その中でもマトリックス方式という、分離度を犠牲に普通のステレオと同じ左右の壁面に
4つの音を位相操作で入れ込む方式と、前後の差分を可聴帯域外に変調して録音する事で
理論的に完全分離を可能とするディスクリート方式の大きく分けて2種類の方法がありました。

この後者、ディスクリート方式で唯一、ある程度の普及ができたのが、日本ビクターの開発した
CD-4方式で、左右チャンネルの前後の差分信号を30kHzでFM変調し、左右チャンネルの前後の
和信号をベースバンドにその上に変調信号を重畳する形でレコードにカッティングしています。
通常のレコードプレーヤーで再生すると、30kHzは普通の人の耳には聞こえないため前後が
混ざった左右の音として聞こえるため、通常のステレオとコンパチビリティのあるディスクリート方式
4チャンネルという意味でCD-4と名づけられています。

再生するときには30kHzで変調した信号をある程度正確に再生する必要があるため
45kHz程度まで再生可能な専用のレコード針・低針圧カートリッジ・低容量シールド線等を
用いたレコードプレーヤで再生し、デモジュレータという装置で30kHzのFM(PM)復調、
ベースバンド信号とのマトリクスで前後の分離を行います。
このデモジュレータという装置が無ければ4チャンネルとして再生はできないのですが、
たまにまだ中古ショップやネットオークション等でも出品されています。
ですがそれほど入手性の良い状態では無いですし、70年代前半のものですので
いつ壊れてもおかしくないと思います。ですので、作ってしまおうという訳です。

実は今から数年前に、EPLDとアナログアンプ・フィルタ・コンパレータを用いて30kHz信号を
取り出し、パルス化し、カウンタで周期を測定する方法で復調する方式のデモジュレータを
作ったことがあります。今でもちゃんと動きます。
ですが、30kHz付近の変調信号を取り出すのにLCを用いたアナログフィルタを用いており、
ちょうど良い周波数に合わせるのは部品の入手の点から困難であること、またカウンタでの
復調であるためクロック周波数にもよるが分解能を稼げない=Dレンジが狭くなるという問題があり、
またPCに最初から内蔵される標準音源も最近の物はHD化され、96kHz,24bit等、
CD-4の復調には耐え得るサンプリング周波数・分解能(イコライザを通すと高域がカットされて
しまうためイコライザアンプは通せず、カートリッジの信号(数mVレンジ)を直接入力することが
容易な方法であるため、高い分解能が必要)が誰でも準備できる状態であるため、これらの
HD対応音源内蔵のPCを用いてCD-4システムのデモジュレータをソフトウェアで
作ってしまおうと考えています。

実はすでに30kHzの復調部分まですでに完成しており、前-後の差分信号をwavファイルとして
生成するプログラムは完成しています。あとはベースバンドの信号と足し算・引き算するだけ
なのですが、どのくらいの比率で計算するか(これをセパレーション調整といい、
針やカートリッジ交換時に行う必要が当時からありました)を調整すればいいのですが、
なにせCUIベースのプログラムであり、スライドバーでリアルタイムでの調整等の手段が
使えないのと、マルチチャンネルwavファイルの作成方法が今一わからない、本当は音源から
直接データを受けて変換し、直接音源から再生したいがDirectSoundを使う?
もっとよく分からないのでファイルでのやり取りをしている等のまだ未完成部分の多い
状況になっています。
posted by プー at 02:19| Comment(0) | 日記 | 更新情報をチェックする