①Raspberry pi PICOで音声を再生する
下のページを参考に、wavファイルを再生することができました。
http://serverarekore.blogspot.com/2021/07/raspberry-pi-picotpa2006dwav.html しかし、PWMをそのままD級アンプに入れると音質があまりに悪いので、ローパスフィルターで改善を図ってみました。
②PWMの出力を確認する テスト用データとして、
橋本技術研究所のサイン波wavファイルの400Hzのファイルを使わせていただきました。
再生した際の出力をロジックアナライザLA2016で表示したものが下図です。
Channel0は左側スピーカーの出力、Channel1は仮想GNDの出力です。PWMのスイッチング周波数は実測で約122kHでした。プログラム上でも122kHzでしたので一致します。
③ローパスフィルタで復調する
wavePlayer.pyの注釈(上図)の通りに、2kΩの抵抗と、0.1μFのキャパシタのローパスフィルタ(カットオフ周波数約796Hz)で復調したのが下図です。(簡易オシロスコープDSO Shellで測定)
直流の成分を含んだ、サイン波が復調できました。
④カップリングコンデンサで直流成分を除去する
GPIO4の仮想GNDをGNDにするか、下図のように2200pFのカップリングコンデンサを直列に入れて、直流成分を除去します。
これにスピーカーを繋ぐと音が出ますが、音量がとても小さいのでD級アンプTPA2006を使って増幅してみます。
⑤D級アンプTPA2006で増幅する スピーカーで鳴らせるように、秋月電子で購入したTPA2006のモジュールを使ってみました。仕様書をざっと眺めると、スピーカーまでのケーブルが短い場合は出力フィルターはいらないと読み取れたのですが、出力をオシロスコープでみると、上の写真のようになってしまいました。
⑥出力フィルタを付けてみる
下図のように、33μHのインダクタと、0.33μFのキャパシタのローパスフィルタ(カットオフ周波数約48kHz)を繋いでみました。また、ゲインを変えないのであれば、カップリングコンデンサはモジュールに内蔵のものがあるので、削除しました。
オシロスコープの波形は正弦波になりました。気持ちはいいのですが、聞いた感じは、出力フィルタなしとあんまり変わらないような気もします。
結論としては、アンプに入れる信号はローパスフィルターで復調してからの方が音質がかなりよくなります。しかし、出力フィルターはあっても無くてもそれほどかわらないと思いました。
あと、3倍のゲインでは音量が小さめだと感じました。