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以上は、次数の高いローパスフィルターで、切るつもりです、いずれ。

プログラム1

                                        上が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