3-3. 信号波形の操作


3-3-1. 信号波形を操作してみましょう

DSPに入力される信号波形は、1サンプルずつディジタルデータとなり、 プログラム上では変数として表されます。その変数に対して、出力する前に 演算を行えば、入力された信号の波形を自由に操作することができます。 ここでは、DSPのサンプルプログラムを修正することにより、信号波形を様々に 変化させてみましょう。


【実習 3-3-1】<入力信号を任意倍する>

  1. エディタでサンプルファイル[pass1] を開いてください。これは、実習 3-3-1で使用したものと同じものです。 読み込んだ波形のサンプル値(data)を2倍してから出力してみましょう。 この処理は、例えばread_input()とwrite_output(data)の間に data = 2.0*data;を加えることで実現できます。 コンパイルして実行してください。
  2. DSPボードの入力端子に、SGから数kHz、±1[V]の信号を入力してください。 入力波形と出力波形を、オシロスコープで比較してみてください。
  3. 倍率を様々に変更して、入出力を比較してみましょう。倍率をあまり 大きくし過ぎるとどうなるでしょうか。


【実習 3-3-2】<いろいろと操作してみる>

サンプリングされたディジタル信号が一旦DSP内部に取り込まれてしまえば、 上のような簡単な定数倍だけでなく、プログラムで記述できる限り、様々な 処理を行うことができます。

※ ただし、処理に要する時間が、「あるサンプル値を取り込んでから次の サンプルを取り込むまでの時間(1サンプル周期)以内」であることが 前提となります。そうしないと、入力データが取りこぼされてしまいます。

  1. 上のサンプルプログラムを元にして、以下のようなプログラムを作成し、 実行してみてください。SGから入力に適当な信号を入れて、 出力波形をオシロスコープで確認してみましょう。


【実習 3-3-3】<入力信号に遅延をかける(ディレイ)>

  1. エディタでサンプルプログラム[delay] を開いてください。 このDSPプログラムは、指定したサンプル数の分だけ、入力信号を遅らせて 取り出すことのできる関数を利用しています。

    まずはそのままコンパイルして実行してみてください。
  2. マイクで音声を入力し、スピーカからどのように聴こえるかを確認してください。 また、遅延サンプル数(DELAYLEN)を変化させて、出力の変化を聴き比べてください。