kz's Web Page


開設日   2002/10/27

最終更新日 2024/01/01



音声分析変換合成システム world の音声合成(2)

world の音声合成の source code を Visual Studio Code でコンパイル、実行する。


音声分析変換合成システム world の音声合成

world の音声合成の手順について source code を抜き出し、手順を示す。


Quartus Prime Lite Edition を使用して ROM IP をシミュレーションする

Quartus Prime Lite Edition (無償)を使用して ROM IP をシミュレーションする方法を紹介します。


chirp 信号に逆方向の chirp 信号を乗算して DFT により単一周波数を検出

時間と共に周波数が増加、減少する信号は chirp 信号と呼ばれている。逆方向に変化する chirp 信号を乗算すると、周波数の和と差の成分に変換される。

DFT を使用することにより周波数の和成分が検出できることを示す。


DFT から得られる時系列の計算式による単一周波数成分の検出

特定の周波数成分だけが必要な場合には、通常の FFT のように全周波数成分を計算せずに、DFT (離散フーリエ変換) を隣り合うフーリエ係数の計算式に分解して計算できることを示す。

N 個の時間軸連続データから単一の周波数成分のフーリエ係数は、実数部、虚数部について、それぞれ N 回の積和演算を行う必要がある。

隣り合うフーリエ係数の計算式を使用すると、単一の周波数成分のフーリエ係数は、実数部、虚数部について、それぞれ 1 回の積和演算で計算できる。

データを 1、-1 のように 2値化すると 1回の和演算で計算できる為、リアルタイム処理が可能になる。


離散時間系の差分方程式

サンプル値系シミュレーションに使用している離散時間系の差分方程式の導出についての記述です。


Quartus Prime Lite Edition を使用して VHDL をシミュレーションする

Quartus Prime Lite Edition (無償)を使用して VHDL をシミュレーションする方法を紹介します。

VHDL はディジタル回路の動作を表現する記述言語です。ディジタル回路をそのまま記述する構成を RTL (Register Transfer Level) と呼んでいます。

Quartus Prime Lite Edition (無償)を使用して、カウンタ、タイマーの RTL シミュレーションを実行しています。


LDPC 符号の符号化と復号法

LDPC 符号について、下記の GitHub にある LdpcC (C++ surce code)を分析することにより、符号化と復号方法を詳解します。


Polar 符号の対数尤度比(log-likehood ratio: LLR)を使用する復号法

Polar 符号について、下記の GitHub にある PolarC (C++ surce code)を分析することにより、符号化と復号方法を詳解します。


TI miniDSP プログラミングツール PurePath Studio

TI の ADC/DAC には、default で設定されている機能とは別に、TI で用意しているアルゴリズムなどを miniDSP に実行させることができます。

簡単にツールの操作と I2C から書き込むデータについて紹介します。


Bluetooth オーディオトランスミッター&レシーバーの分解

SANWA SUPPLY の Bluetooth オーディオトランスミッター&レシーバー の分解写真です。CSR8670 が使用されています。

テレビ視聴時などに最適な、低遅延の apt-X/apt-X Low Latency に対応。


Python 上で pysptk と pyworld による音声の分析合成

プログラミング言語 Python で pysptk と pyworld を使用して音声の分析合成を試してみました。

pyworld は、Python3 系で実行。


Python で Wave波形とスペクトラムをリアルタイム表示

プログラミング言語 Python で 48KHz モノラルの Wave file の音声再生と波形表示、スペクトラムをリアルタイム表示させてみました。

下記の Module (32bit) を使用しています。

photo:wsim


アナログフィルタのサンプル値系シミュレーション

下記のアナログフィルタの特性を離散時間差分方程式による数値計算法を紹介します。


1からNまでの整数の中からM個を選択するプログラム

コンソールからN、Mを入力、M個の整数を出力します。


アナログLPFのサンプル値系シミュレーション(2)

アナログ回路の特性をソフトウェアによりシミュレーションする方法として、離散時間差分方程式による数値計算法を紹介します。

  • アナログ回路として縦続接続された 2次LPF をシミュレーションしています。
  • メニューの設定ボタンを押して、Peek点の周波数とゲインを設定するダイアログが表示されます。2次LPF は 5個まで設定できます。入力波形は正弦波です。周波数を設定できます。
  • メニューの描画ボタンを押すと、出力波形を表示します。
  • メニューの実行ボタンを押すと、スピーカから出力します。
  • メニューのF特ボタンを押すと、周波数特性を表示します。
  • アナログ回路のシミュレーションは回路データを入力して計算する方法が一般的ですが、LPF のような多項式で表記できる場合は、離散時間系の差分方程式を使用して高速な計算ができます。また、ディジタルフィルタのような計算遅延のない出力が得られます。

    添付のソースコードの特性多項式の定数を変更すれば、容易に他の特性をシミュレーションできます。(HPF、BPF)


    電子回路シミュレータ Msim

    電子回路シミュレータ Msim は、回路図データをテキストで入力するタイプのシミュレータです。Msim の特徴を以下に紹介します。

    更新 : 添付ファイルに Msim の使い方を追加しました。


    パラレルポートコントロール (3線方式シリアルインターフェース)

    パソコンのパラレルポートを使用して外部機器を制御する例です。

    最近の PC はパラレルポートを持たないものが多いですが、デスクトッップでは実装されているものがまだあります。一例として 3線方式シリアルインターフェースから PLL IC をコントロールする例を紹介します。

    Windows ではパラレルポートを直接アクセスすることはできません。アクセスするためにはライブラリ等を入手する必要があります。

    ここでは NT library (NTport) を使用します。


    カメレオンUSB+ロジアナキット+ロジアナソフトmyLA

    カメレオンUSBロジアナキットの使用例を紹介します。

  • 8 ch 入力。
  • 入力保護として 74VHC541 を介して接続する。
  • USB 接続、別電源は不要。

  • アナログLPFのサンプル値系シミュレーション

    アナログ回路の特性をソフトウェアによりシミュレーションする方法として、離散時間差分方程式による数値計算法を紹介します。

  • アナログ回路として カットオフ1KHz 6次バタワースLPF + カットオフ1Hz 1次 HPF をシミュレーションしています。
  • 入力信号はメニューの設定ボタンを押して開くダイアログボックスから、正弦波とステップ信号のどちらかを選択します。
  • メニューの描画ボタンを押すと、出力波形を表示します。
  • メニューの実行ボタンを押すと、スピーカから出力します。
  • メニューのF特ボタンを押すと、周波数特性を表示します。
  • アナログ回路のシミュレーションは回路データを入力して計算する方法が一般的ですが、LPF のような多項式で表記できる場合は、離散時間系の差分方程式を使用して高速な計算ができます。また、ディジタルフィルタのような計算遅延のない出力が得られます。添付のソースコードの特性多項式の定数を変更すれば、容易に他の特性をシミュレーションできます。(バターワースと0.1dB/0.5dB/1.0dB チェビシェフ)


    PSoC3 CF audio player

    CQ 出版 (2012年5月号) シリーズ最強!PSoC3ボード+デバッグ・ボード 付属の PSoC3 基板と Audio Codec TLV320AIC23 を使用して試作した Audio Player です。

  • モノラル、16bit、44.1/22.05/16/8KHz WAV format で録音、再生します。CFメモリカード FAT32/FAT16 に対応。48KHz WAV format は再生のみ、ステレオは 22.05KHz まで再生可能です。

  • Visual Studio Comminity 2013 + レガシーポートコントロール NTLibrary (NTport)

    無償で使用できる Visual Studio Community 2013 と Dell製ノートPC E4200 レガシー拡張ポートリプリケータ、NTLibrary (NTport) を紹介します。


    Digital MP3 Player の分解

    市販されている超小型の Digital MP3 Player の分解写真です。BR3188 が使用されています。


    Visual C++ MFC によるウインドウズフレームの作成

    Visual C++ MFC を使用してウインドウズフレームの雛型となるプログラムを紹介します。3つのビューを持ったスプリッタウインドウフレームを僅かなコードの追加で作成しています。ユーザープログラムはメニューから実行ボタンをクリックして呼び出され、テキストビューに "MFC test program run" を出力して終了します。

    AppWizard で新規作成した後、下記のようにコードを追加していきます。

    グラフィックの描画を追加します。

    photo:MFC


    MP3/WAV Audio Player2

    インターフェース誌 (2007年5月号) 付属の V850 基板と VS1053b を使用して試作した MP3/WAV Audio Player です。

    FAT32 への対応と USB ポートからテキストを出力します。


    MP3/WAV Audio Player

    インターフェース誌 (2007年5月号) 付属の V850 基板と VS1053b を使用して試作した MP3/WAV Audio Player です。


    MMC Test Program

    インターフェース増刊 Vol.35 フラッシュメモリの徹底研究 第4章で紹介されている PC/AT 互換機の LPT ポートを使った MMC カードの制御事例 Program を Windows 用に修正した Program です。(コンパイラ VC++6.0、動作確認 Windows Me)


    JPEG Video Capture+WAV Audio Recorder(2)

    Video decoder/encoder 内蔵の JPEG Video Capture と WAV Audio Recorder、CF メモリ 2 枚実装、リモコン/前面SW による操作が可能な最終完成品です。


    JPEG Video Capture+WAV Audio Recorder(1)

    前に製作した JPEG Video Capture と WAV Audio Recorder を実装した PCB と市販の赤外線リモコン受信 CPU を TBC-7 に組み込んだものです。

    TBC-7 の Video decoder IC を MSM7664B に交換した後、Video 出力等の信号線を PCB に接続して、ATmega64L から JPEG codec MD2208 と WAV Audio Recoder をコントロールしています。


    8/16/22.05KHz Wav Audio Recorder ToyRec

    TV/Video の音楽を モノラル、16bit、8/16/22.05KHz WAV format で CFメモリカードに録音するオーディオレコーダー。EZ-USB AN2131QC と TLV320AIC23 を使用しています。録音は TV/Video の音声出力から、再生は TV の音声入力またはイヤホンに接続します。仕様は リンクページを参照して下さい。製作記録を追加しました。


    Visor Prism でビデオキャプチャ

    ビデオキャプチャする Springboard の製作記録です。Springboard は様々な製品が市販されていますが、ビデオキャプチャできるものがまだないようなので自作したものです。640x480サイズでキャプチャした画面をCFメモリカードにJPEG形式で保存および読み出してVisor Prism に表示します。


    Test Program - Visor Prism で YUV 形式の画像を表示

    4:2:2 YUV(YCrCb)フォーマット画像データを表示する Test Program です。96x144 サイズの test.jpg から生成した YUV 形式の画像を表示させています。


    I2C Bus Monitor Program

    74AC175(D-FFs)+74AC125(Gate)+74AC139(Addr decoder)を実装した Springboard から I2C Bus をモニタして、data を表示します。プログラムは、255 Byte の data を読み込むか、Stop Condition を 10 回検出した時にモニタを停止します。変更する場合は make file を使用してコンパイルできます。


    CRC Check Test Program

    CRC Check はシフトレジスタで構成された回路をシミュレートして行う方法がよく知られていますが、このプログラムはシフトレジスタを使わずに 8 ビットテーブルを参照して計算します。この方法はソフトウェアで CRC を高速計算する時によく使われていますが、テーブルを生成、参照する方法が必要です。この方法についてはコメントに簡単な説明を付けています。例として CRC-16 と CRC-32 のテストが可能です。



    2024-01-01