2321912_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2321912_ja-JP

2321912_ja-JP

タイトル: WM8904 を使用した SAI + EDMA ピンポンキャプチャ — i.MX RT / LPC におけるドップラーオーディオ信号のノイズ

NXPコミュニティの皆様、こんにちは。

私は、EDMA ピンポン バッファリングを使用して SAI1 経由で WM8904 コーデックからオーディオをキャプチャし、それをヘッドフォン出力から再生するドップラー超音波プローブ アプリケーションに取り組んでいます。脈拍は検出されていますが、キャプチャおよび再生されたオーディオには大きなバックグラウンド ノイズがあります。

---

**ハードウェア構成:**
- コーデック: WM8904 (制御用はI2C、オーディオデータ用はI2S/SAIでコネクテッド)
- オーディオインターフェース: SAI1 (I2S モード)
- DMA: ピンポン転送によるEDMA
- サンプルレート: 48 kHz、ステレオ、16ビット
- バッファサイズ: ピンポンバッファあたり48,000サンプル (バッファあたり0.5秒)
- 合計キャプチャ: 4サイクル = 約2秒のオーディオ
- RTOS: FreeRTOS
- 再生音量: ヘッドフォン出力で 75/100

---

**SAI RX構成:**
- SAI1 RXはRCR3レジスタを介して有効化されます(SAI1->RCR3 |= I2S_RCR3_RCE(1))
- TXとRXの両方でFIFOエラー割り込みが有効
- TXはサイレントダミーバッファループを実行して、RXに必要なI2Sビットクロックを生成します。
- RXはコールバックベースのピンポンステートマシンでSAI_TransferReceiveEDMA()を使用する
- キャプチャ後: SAI_TransferAbortReceiveEDMA() と SAI_TransferAbortSendEDMA() が呼び出されます

---

**コーデック入力設定 (fsl_wm8904 ドライバ経由の WM8904):**
- MICBIAS 電源オフ(未使用)
- ADCの電源オン
- 録音チャネルの音量: 75 (左1 + 右1)
- 録音チャネルのミュート: false

---

**コーデック出力設定(WM8904ヘッドフォン):**
- ラインアウトがミュートされ、電源がオフになっています
- 最初にヘッドフォンをミュートし、次にDACの電源をオンにし、音量を75に設定してからミュートを解除します
- ミュート解除前の10msのセトリング遅延(SDK_DelayAtLeastUs)

---

**問題:**
キャプチャされたオーディオには予想どおり手首の脈拍信号が含まれていますが、録音全体にわたって目立ったバックグラウンド ノイズが存在します。このノイズは、ヘッドフォン出力を介した再生時に聞こえます。ノイズは次の組み合わせのようです:
1. 低周波ベースラインドリフト(体の動きや呼吸によるアーティファクトの可能性あり)
2. ドップラーフロントエンドからの高周波復調スペックル
3. 脈拍イベント情報が存在しないときの心拍間背景ノイズ

---

**信号調整を適用(ファームウェア、キャプチャ後):**
現在、キャプチャ後にソフトウェアで次の 4 段階フィルターを適用しています。
1. DCオフセット除去(平均減算)
2. 1次ハイパスフィルタ: y[n] = x[n] - x[n-1]
3. 移動平均平滑化(ウィンドウ = 3サンプル)
4. ホールド機能付き固定しきい値ノイズゲート(しきい値 = 4500、ホールド = 1200サンプル)

これらのフィルターにもかかわらず、ノイズは依然として存在し、聞こえます。

---

**質問:**
1.このプラットフォーム上の WM8904 で、DMA バッファに到達する前にハードウェア レベルでノイズを最小限に抑えるための推奨される SAI RX 構成はありますか?
2. SAI1 で TX (ダミー クロック) と RX を同時に実行するとノイズが発生する可能性がある既知の接地またはクロック構成の問題はありますか?
3. ピンポン バッファには、データの破損やノイズとして現れるグリッチを引き起こす可能性のある、EDMA 転送アライメントまたはキャッシュ コヒーレンス要件がありますか?
4. 低振幅ドップラー信号の SNR を向上させるために、WM8904 入力パス (PGA ゲイン、入力インピーダンス、ADC 構成) に推奨されるコーデック レジスタ設定はありますか?

NXP チームまたはコミュニティからのガイダンスをいただければ幸いです。

よろしくお願いします。

Re: Title: SAI + EDMA Ping-Pong Capture with WM8904 — Noise in Doppler Audio Signal on i.MX RT / LPC

こんにちは、 @AAA1 さん

弊社製品にご関心をお寄せいただき、また弊社のコミュニティをご利用いただき、誠にありがとうございます。

SAIのエラー情報はチップ固有のものであるため、まずはi.MX RTデバイスの正確な仕様をご確認ください。
 

 Q1.このプラットフォーム上のWM8904において、DMAバッファに到達する前のハードウェアレベルでのノイズを最小限に抑えるための推奨SAI RX構成はありますか?

A1: サンプルがDMAバッファに到達する前にノイズを低減することを明示的に目的としたWM8904固有のSAI RX構成を提供するドキュメントは見つかりませんでした。

BCLK、FS、ワード幅、極性、およびTX/RX同期モードが正しく設定されていることを確認してください。

1.png


Q2.SAI1でTX(ダミークロック)とRXを同時に動作させた場合に、ノイズが発生する可能性のある既知の接地またはクロック構成の問題はありますか?

A2: SAI1でTXとRXを同時に実行すると必然的にノイズが発生するという「既知の問題」に関する文書は見つかりませんでした。

SAIクロックツリーの設定(MCLK/BCLK/SAI機能クロック/バスクロック)を再度確認してください。

お使いのi.MX RTデバイスに関するチップの不具合情報も併せてご確認ください。

Q3. ピンポンバッファには、データ破損やノイズとして現れるグリッチを引き起こす可能性のあるEDMA転送アライメントやキャッシュコヒーレンシの要件はありますか?

A3:このアプリケーションノートを参照してください。

https://www.nxp.com/docs/en/application-note/AN12042.pdf

Q4. 低振幅ドップラー信号のSNRを向上させるために、WM8904入力パス(PGAゲイン、入力インピーダンス、ADC構成)のコーデックレジスタ設定で推奨されるものはありますか?

A4:既知のリファレンスデモをお探しの場合は、WM8904を使用するNXPの評価プラットフォームであるMIMXRT685-EVKが参考になるかもしれません。そのSDKデモもご参考になるでしょう。

https://github.com/nxp-mcuxpresso/mcuxsdk-examples/tree/release/26.03.00/_boards/evkmimxrt685

MCUXpresso SDK APIリファレンスマニュアル:Wm8904


よろしくお願いいたします。

メイ・リウ

Tags (1)
No ratings
Version history
Last update:
‎04-08-2026 02:38 AM
Updated by: