忍者ブログ

あやの

NゲージをベースとしたDCCについての日記を 書いています。 ある程度貯まりましたら、鉄道模型のDCCのまとめサイトに まとめています。 借りている容量が最大に達しましたので、移転します。 ★移転先:http://maison-dcc.sblo.jp/

2025/02    01« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  »03


こんなのが売っているのかな?。
それとも自家製?

拍手[0回]

PR
IMA ADPCMデータを.Hに変換させるには、perlスクリプトを使ったのですが、
わざわざ Windows7にActivePerlなんて、インストールして作成していましたが、
Macのターミナルから普通にperlが使えましたねw


拍手[0回]

こんな感じかなー。

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,3,3,3,3,4,4,5,5,5,6,7,7,8,9,
10,11,12,13,14,16,17,19,21,23,25,28,30,33,37,40,45,49,54,59,65,72,79,87,95,105,115,127

内部演算を8bit化するのは意味がないかな。
演算間に合っているよね?

拍手[0回]

IMA ADPCM仕様書と、実際のデータの並びが解せ無いのですが、
現物データ合わせで、ブロック処理を追加したところ、ぷちぷちが無くなりました(^^

http://1st.geocities.jp/dcc_digital/ima_adpcm.html

下の方を見るとβ4のスケッチがダウンロードできます。
(相変わらず、ソースはめちゃくちゃですw)

関数 byte readSoundRom(uint8_t inNo, uint16_t inOffset) 内の

  return pgm_read_byte(&E233_break1_data[inOffset]);
//return pgm_read_byte(&sin_data[inOffset]); // 11/9 

コメントを外してサイン波と入れ替えるとわかるのですが、再生するとプツプツしているので、
割り込み関数 ISR(TIMER1_COMPA_vect) 内でブロック処理を入れているので、 
ちょっと時間がかかりすぎているのかなーと思います。



デコーダ開発ボードを使用して、IMA ADPCM をデコードした8bit PCMデータをグラフ化しました。
振幅の変動はありますが(これはIMA ADPCMエンコーダの特性?)、きれいになりました。

拍手[0回]

参考にしたchanさんのソースをよく見ると、void play ()内に、
ブロック単位に最初のサンプル値とステップ(量子化テーブル)を
取り込むように作られていました(^^;

ADPCMの実験

今週も忙しいので、当分手がつけられ無いかなー。

拍手[0回]

ブログ内検索

プロフィール

HN:
あやのすけ
性別:
非公開
<< Back  | HOME Next >>
Copyright ©  -- あやの --  All Rights Reserved
Design by CriCri / Material by もずねこ / powered by NINJA TOOLS / 忍者ブログ / [PR]