interpolation を試す
up sampling のみ interpolation filterを通した
1. interpolation filter の仕様
最初のサンプリング周波数 fsと、すると
cutoff freq = fs/2
で、求めることが、できる。(理屈は、まだ、よう、解明できていない。)
2.実験での、R8C/15用のプログラム
今回も、タイマーCの割り込みを使う。
まず、通常のサンプリング fs=10KHz(このfsは、TimerCのサンプリング周波数 tm1=2000で、10KHz)
入力 2KHz
#pragma interrupt /B comp1_int
void comp1_int(void)
{
while(adst==1);
data = ad - 512 ;
tm0=(int)(data+ 512);
if (++i==taps)i=0;
adst=1;
}
割り込みvectorは、sect30.incに、直接、記述する。
これは、updateされたtool chain 5.40.00に、−fMVTのオプションが、出てこない! からです。
つぎに、decimation 2 (f=fs/2)する。(入力は、同じ2KHz)
void comp1_int(void)
{
while(adst==1);
if(i%2)
{
data = ad - 512 ; //decimation 2
tm0=(int)(data+ 512);
}
if (++i==taps)i=0;
adst=1;
}
つぎに、up sampling 2 (f= 2*fs/2 = fs)
これは、ゼロを挿入することです。
void comp1_int(void)
{
while(adst==1);
if(i%2) data = ad - 512 ; //decimation 2
else data = 0; //interpolation
tm0=(int)(data+ 512);
if (++i==taps)i=0;
adst=1;
}
3.いよいよ、interpolation filter を通す
decimation → interpolation normal sampling
interpolation filter は、fs/4 に、設定した。(decimateした時のsampling f=fs/2 で、これの半分)
void comp1_int(void)
{
while(adst==1);
if(i%2) data = ad - 512 ; //decimation 2
else data = 0;
//interpolation 2
inter[2*taps-1-i] = inter[taps-1-i] = data; // use interpolation filter
result=rmpa_w(0, taps, fir, inter +taps -1-i);
result=result >> order;
tm0=(int)(result+ 512);
if (++i==taps)i=0;
adst=1;
}
でけたっ!
ところが、
Weaverさんの方式のSSB出力で、うまく、エリアスを取ることが、まだ、でけてない.....(-_-)
4.この一ヶ月、何しとったんやろ
手持ちの、SH2-7047Fを、使いたくて、再度取り出してきたのですが、
もはや、GDBで、remoteDebugできなく、なりました。
理由は
gnu-sh compilerの version4からの移行過程で version5 以上で、変化が、あったらしく、
スタブ(stub)プログラムが、compilerを通らなくなった!
((long*))mem)++; *((long*)mem)++ = lcbuf.lbuf; が、Compilerを通らないのです。
そこで
mem += sizeof(long);
そして
*((long*)mem)++ = lcbuf.lbuf; は
*mem=lcbuf.lbuf;
mem +=sizeof(long);
等に、書き直して
buildできるのですが、GDBと交信すると、色々と不都合が、連発するのです.....
interface誌5月号に、stubプログラムが、掲載されていましたので
それと、William A. Gatliffさんのstartupプログラム(gdbstubs-20030326-1117CDT.tar)を、合体すれば
何とかなりそうなんですが、もう、疲れたびー、中断中。
そこへ、朗報!
SH7047F ボードは、1ミャン円以上して、買ったのに.... 凄い!
旭日屋書店さんに、2冊お願いして置きました、安心。
開発環境も付くそうなので、SH7047Fも、動かせるのでは....
H.18.3.28