YAS's VB.NET Tips
 
ラズベリーパイ活用
ラズベリーパイ活用 >> 記事詳細

2022/08/31

Raspberry Pi PICOでWAVファイル再生

| by:YAS
①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倍のゲインでは音量が小さめだと感じました。
01:22