R8C/15 で、フィルタータイプSSB
0.追加記事
firフィルターの設計を、やり直しました。(フィルター設計プログラムは、JA6UHL 西村OM 「DSP処理のノウハウ CQ出版」 )
so mni tks nishimura san
Q7 fir 60taps
2KHz,500Hzのtwo tone と重ね合わせて見た。(リファレンスレベルは、変えて見ている)
フィルターの特性と、厳密には、合っていない...サイクル数が、ちょっとだけ合わない。
two tone 入力は
1.4Vp_p位、これが、私のtwo tone 自作機の出力の限界。
最終のプログラムは、これ。 (firのデータが違うだけです。)
---------------------------------------------------------------------------------------------------------------------
1.フィルタータイプのSSBの発生
2kHz、500Hzのtwo tone信号の LSBフィルター通過後
入力の2KHzのUSB側は、-40dB位のサプレッション(ちゅうか、観測できん)。
キャリアサプレッションも40dB位。(いずれも、ローパスフィルター無しでの観測)
fs/4 = 4.85KHz位
従って、fs = 19.4KHz 位。
firフィルターの係数は60、Q14に採っています。
fs/2以上は、次数の高いローパスフィルターで、切るつもりです、いずれ。
上がQ14 下がQ7
Q14に採って、トラジェネを通して、フィルター形状を観測すると悲惨なのですが、
two tone を通す時は、正常のようで、このほうが、きれいな波形を観測できます。
この差は、何なのか?
同じ、firフィルターの係数60で、Q14で、
トラジェネ出力を入力するか、two toneを入力するかの違いだけなのですが...
トラジェネ出力は、連続な出力なので、積和が、飽和するのかも...
いえ、勿論、デバッグしてみましたが、その気配が、ござりませぬ...
今は、解らん....こればっかりで..申し訳ございませぬ m(__)m.
2.その他
tm1=253 tm1=220
マタマタ、手探りで、申し訳ござらぬのですが、
タイマーCのコンペアマッチ1の値を、試行錯誤で設定しております。
この事によって、シグナル以外の成分が、変化するのです。
tm1=220が、USB側のサイドサプレッシオンの観測、キャリアサプレッシオンの観測に、有利 なのです。
恐らく
#pragma interrupt comp1_int (vect=16)
int data_ad;
void comp1_int(void)
{
while(adst==1);
data_ad =ad-0x80;
if( (i/2)%2 ) data_ad =-data_ad;
//2つおきに、符号を反転。mix動作 fs/4 = キャリア周波数
data[119-i] = data[59-i] = data_ad;
total=rmpa_w(0, 60, fir, data+59-i);
total=total>>14;
tm0=(char)(total+0x80); //13 cycles
if (++i==60)i=0;
adst=1;
}
この部分の割り込みのタイミングと、AD変換のタイミングが、関係すると、思われます。
R8C/15で、こんだけ、楽しめるとは.... (^_^)
H.17.6.1
、