<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="m10621">
  <name>Multirate Filtering: Implementation on TI TMS320C54x (日本語 - Japanese)</name>
  <metadata>
  <md:version>1.1</md:version>
  <md:created>2004/07/10 22:01:59 GMT-5</md:created>
  <md:revised>2004/08/19 17:55:59 GMT-5</md:revised>
  <md:authorlist>
      <md:author id="dljones">
      <md:firstname>Douglas</md:firstname>
      <md:othername>L.</md:othername>
      <md:surname>Jones</md:surname>
      <md:email>dl-jones@uiuc.edu</md:email>
    </md:author>
      <md:author id="appadwed">
      <md:firstname>Swaroop</md:firstname>
      
      <md:surname>Appadwedula</md:surname>
      <md:email>appadwed@uiuc.edu</md:email>
    </md:author>
      <md:author id="mjberry">
      <md:firstname>Matthew</md:firstname>
      <md:othername>J.</md:othername>
      <md:surname>Berry</md:surname>
      <md:email>mjberry@uiuc.edu</md:email>
    </md:author>
      <md:author id="markhaun">
      <md:firstname>Mark</md:firstname>
      <md:othername>A.</md:othername>
      <md:surname>Haun</md:surname>
      <md:email>markhaun@uiuc.edu</md:email>
    </md:author>
      <md:author id="jake">
      <md:firstname>Jake</md:firstname>
      
      <md:surname>Janevitz</md:surname>
      <md:email>jake@janovetz.com</md:email>
    </md:author>
      <md:author id="kramer">
      <md:firstname>Michael</md:firstname>
      <md:othername>L.</md:othername>
      <md:surname>Kramer</md:surname>
      <md:email>kramer@ifp.uiuc.edu</md:email>
    </md:author>
      <md:author id="moussa">
      <md:firstname>Dima</md:firstname>
      
      <md:surname>Moussa</md:surname>
      <md:email>dmoussa@uiuc.edu</md:email>
    </md:author>
      <md:author id="dsachs">
      <md:firstname>Daniel</md:firstname>
      <md:othername>Grobe</md:othername>
      <md:surname>Sachs</md:surname>
      <md:email>sachs@uiuc.edu</md:email>
    </md:author>
      <md:author id="bwade">
      <md:firstname>Brian</md:firstname>
      
      <md:surname>Wade</md:surname>
      <md:email>bwade@uiuc.edu</md:email>
    </md:author>
      <md:author id="jpfrantz">
      <md:firstname>Patrick</md:firstname>
      
      <md:surname>Frantz</md:surname>
      <md:email>jpfrantz@rice.edu</md:email>
    </md:author>
      <md:author id="emi">
      <md:firstname>Emiko</md:firstname>
      
      <md:surname>Yamai</md:surname>
      <md:email>eyamai@hotmail.com</md:email>
    </md:author>
      <md:author id="takaryo">
      <md:firstname>Hironori</md:firstname>
      
      <md:surname>Takaryo</md:surname>
      <md:email>thedream@catnip.freemail.ne.jp</md:email>
    </md:author>
      <md:author id="yyama">
      <md:firstname>Yoji</md:firstname>
      
      <md:surname>Yamada</md:surname>
      <md:email>yyama@ishikawa-nct.ac.jp</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="jpfrantz">
      <md:firstname>Patrick</md:firstname>
      
      <md:surname>Frantz</md:surname>
      <md:email>jpfrantz@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="emi">
      <md:firstname>Emiko</md:firstname>
      
      <md:surname>Yamai</md:surname>
      <md:email>eyamai@hotmail.com</md:email>
    </md:maintainer>
    <md:maintainer id="takaryo">
      <md:firstname>Hironori</md:firstname>
      
      <md:surname>Takaryo</md:surname>
      <md:email>thedream@catnip.freemail.ne.jp</md:email>
    </md:maintainer>
    <md:maintainer id="yyama">
      <md:firstname>Yoji</md:firstname>
      
      <md:surname>Yamada</md:surname>
      <md:email>yyama@ishikawa-nct.ac.jp</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>banz</md:keyword>
    <md:keyword>decimation</md:keyword>
    <md:keyword>down-sample</md:keyword>
    <md:keyword>DSP</md:keyword>
    <md:keyword>interpolation</md:keyword>
    <md:keyword>multirate sampling</md:keyword>
    <md:keyword>multirate system</md:keyword>
    <md:keyword>sample-rate compressor</md:keyword>
    <md:keyword>sample-rate expander</md:keyword>
    <md:keyword>serial port</md:keyword>
    <md:keyword>up-sample</md:keyword>
  </md:keywordlist>

  <md:abstract>You will implement a multirate system that includes three fininte impulse response filters.  The sample-rate compression and expansion factors can be controlled in real time using a MATLAB graphical user interface.</md:abstract>
</metadata>






  <content>
    <section id="sec3">
      <name>インプリメンテーション</name>
      <para id="p10">
   <cnxn document="m10024" target="fig1">Multirate Processing:
	Introduction</cnxn>で示した全システムを実行する前に、サンプルレートコンプレッサーまたはエクスパンダー無しで、FIR1とFIR2と縦続したフィルターからなるシステムをデザインする事をお勧めします。その２つのフィルターシステムのレスポンスが正しい事を実証した後、完成したマルチレートシステムを実行し始め、全レスポンスを実証しなさい。初めに、
<m:math>
	  <m:apply>
	    <m:eq/>
	    <m:ci>D</m:ci>
	    <m:ci>U</m:ci>
	    <m:cn>4</m:cn>
	  </m:apply>
	</m:math>という一定の圧縮因子と拡張因子を使いなさい。その後、この因子をMATLABインターフェースを使って制御します。コードを書く際、この事を覚えておいて下さい。
      </para>

      <section id="sec3a">
	<name>圧縮レート処理</name>
	<para id="p12">
	  低サンプルレートで処理を行うために、コード中にカウンター（計数回路）を実行してください。カウンターはいつ圧縮レート処理が生じるかを決定し、またいつサンプルレートエクスパンダーを実行するためにFIR3の中にゼロを挿入するかを決定するためにも使えます。
	</para>

	<para id="p13">
	  マルチレート構造を実行するために役に立つ命令のいくつかは、<code>addm</code>(add to memory:メモリーに加える）と<code>bc</code>(branch conditional:分岐条件）命令です。また、<code>banz</code>(branch on auxiliary register not zero:補助レジスタが0以外なら分岐）や<code>b</code>(branch:分岐）指示も役に立つでしょう。
	</para>

      </section>

      <section id="sec3b">
	<name>実時間レート変化とMATLABインターフェース</name>
	<para id="p16">
	  簡単なグラフィカルユーザーインターフェース（ＧＵＩ）は、シリアルポート経由でＤＳＰに１から１０の数を送る事が（<link src="ser_snd.m">ser_snd.m</link>を要する<link src="mrategui.m">mrategui.m</link>として）可能です。これは実時間に圧縮因子と拡張因子を変換するために使えます。
	</para>
	<para id="p18">
MATLABのプロンプトに<code>mrategui</code>と打ちこみ、ＧＵＩを起動しなさい。図が自動的にスライダと共に開きます。　スライダを調節すると、ＤＳＰに送られた圧縮因子と拡張因子が変わります。
	</para>

	<para id="p17">
	  与えられたアセンブリコードは、ＤＳＰが<code>hold</code>と名づけられたメモリー中のコンピューターから受け取っている最後の数を保存します。そのため、あなたがその与えられたコードの連続部を変えない限り、この場所においては、ＧＵＩによってセットされた最後の圧縮因子と拡張因子を見つけられます。シリアルポートに新しい数が受信される度に、圧縮と拡張因子が変換されるためには、コードの修正が必要です。もし"１"がシリアルポートに受信されたら、その全システムは最大限のレートで稼動します。またもし"１０"が受信されたら、そのシステムは低レートで処理された各サンプル間で９つのサンプルを捨てます。

	</para>
	<para id="p14">
	  シリアルポートからのデータ読み取りと、シリアルポートへのデータ送信に使用される<code>READSER</code>と<code>WRITSER</code>マクロが、<code>BK</code>とコンディションフラッグ<code>TC</code>と同程度に、<code>AR0</code>、<code>AR1</code>、<code>AR2</code>、そして<code>AR3</code>レジスタを上書きする点に注意して下さい。そのため、これらのレジスタがあなたのコードに使われていないか、又は<code>READSER</code>と<code>WRITSER</code>マクロをコールする前に、メモリにそれらの値を保存または復活させているかを確認しなければなりません。これは<code>mvdm</code>と<code>mvmd</code>の命令を使用して行うことができます。そのシリアルマクロはコールされる毎に<code>AR1</code>と<code>AR3</code>をセットアップするので、そのマクロをコールする前にそれらのレジスタを変える必要はありません。

	</para>

	<para id="p15">
<code>READSER</code>と<code>WRITSER</code>マクロに関する詳細は <cnxn document="m10821">Core File: Serial Port Communication
	  Between MATLAB and TI TMS320C54x</cnxn>にあります。
	</para>

      </section>
    </section>
  </content>
</document>
