次に、本願に好適な実施の形態について、図面に基づいて説明する。
なお、以下に説明する実施形態は、CD(Compact Disc)等のデジタル信号にて記録された記録媒体から読み出されたPCM信号が入力され、当該入力されたPCM信号の信号レベルを増幅してスピーカに出力するD級増幅装置において、本願のD級電力増幅装置を適用した場合の実施形態である。また、以下の説明では、1chのD級電力増幅装置を用いているが、ステレオ、5.1chまたは7.1chのマルチチャンネルのスピーカを拡声するD級電力増幅装置においても適用可能である。
〔第1実施形態〕
初めに、図1〜図12を用いて本願に係るD級電力増幅装置の第1実施形態について説明する。
まず、図1および図2を用いて本実施形態におけるD級電力増幅装置の構成について説明する。なお、図1は、本実施形態のD級電力増幅装置の構成を示すブロック図であり、図2は、本実施形態における位相変換回路の構成を示すブロック図である。
本実施形態のD級電力増幅装置100は、所定のベースクロック信号に基づいて入力されたPCM信号に対してパルス幅変調を施し、PWM信号を生成するようになっており、当該生成されたPWM信号に従って電源電圧のスイッチングを行う処理(以下、「スイッチング処理」という。)を実行して信号レベルが増幅されたPWM信号をスピーカSPに出力するようになっている。
特に、本実施形態のD級電力増幅装置100は、スイッチング処理が施される際に生じる非線形歪みを補正するために、後述するように、スイッチング処理が施される前のPWM信号と当該スイッチング処理が施された後のPWM信号との誤差信号を算出し、算出された誤差信号の変化に応じてベースクロック信号の位相をPCM信号の値(以下、「PCM値」という。)が更新される毎に直接変化させて、または、当該PCM値を補正して、当該ベースクロック信号の位相をPCM信号のPCM値に対して相対的に変化させるようになっている。そして、このD級電力増幅装置100は、相対的に変化されたベースクロック信号に基づいて、PCM信号に対してパルス幅変調を施すようになっている。
このD級電力増幅装置100は、入力されたPCM信号に対して前処理としてオーバーサンプリング処理およびノイズシェーピンク処理を行うオーバーサンプリング処理部101およびノイズシェーピング回路102と、各部の動作時に基準となるベースクロック信号を発生させるクロック信号発生部103と、発生されたベースクロック信号の位相を変化させる位相変換回路200と、前処理されたPCM信号の各PCM値を補正する補正処理部105と、後述するように、PCM値が更新される毎に算出された位相量(以下、「シフト量」ともいう。)に基づいて位相変換回路200および補正処理部105を制御するシフト量制御回路106と、位相変換回路200の制御の下、補正処理されたPCM信号に対してパルス幅変調を行い、PWM信号を生成するPCM/PWM変換部300と、を有している。
また、このD級電力増幅装置100は、生成されたPWM信号に基づいてスイッチグ処理を行い、当該PWM信号の信号レベルをk倍に増幅するスイッチング増幅回路108と、信号レベルが増幅されたPWM信号に対してフィルタ処理を行い、拡声信号を生成するローパスフィルタ(以下、「LPF」という。)109と、拡声信号の信号レベルを1/k倍する増幅器110と、1/k倍された拡声信号とPCM/PWM変換部300から出力されたPWM信号との誤差信号を算出する誤差信号算出部111と、を有している。
さらに、このD級電力増幅装置100は、直流電圧化(DC値化)された誤差信号の電圧値を検出する電圧検出部112と、検出された電圧値の変化に応じてシフト量を算出し、当該算出されたシフト量に基づいてPCM値が更新される毎にシフト量に関する情報(以下、「シフト量情報」という。)を生成するシフト量情報生成部113と、を有している。
なお、例えば、本実施形態の位相変換回路200、補正処理部105およびシフト量制御回路106は、本発明の位相変化手段を構成し、PCM/PWM変換部300は、本発明の受信手段および第1生成手段を構成する。また、例えば、本実施形態のスイッチング増幅回路108は、本発明の第2生成手段を構成し、電圧検出部112およびシフト量情報生成部113は、本発明の検出手段を構成する。
オーバーサンプリング処理部101には、入力端子Tを介してPCM信号が入力されるともに、位相変換回路200を介してクロック信号発生部103にて生成されたベースクロック信号と、が入力されるようになっており、このオーバーサンプリング処理部101は、ベースクロック信号に基づいて、入力されたPCM信号に対してオーバーサンプリング処理を行い、当該オーバーサンプリング処理が為されたPCM信号をノイズシェーピング回路102に出力するようになっている。
例えば、本実施形態のオーバーサンプリング処理部101は、4倍または8倍など、入力されたPCM信号に対して当該PCM信号のサンプリング周波数より所定倍数のサンプリング周波数によりサンプリングを行う処理を実行するようになっている。
ノイズシェーピング回路102には、オーバーサンプリングされたPCM信号と、位相変換回路200を介してクロック信号発生部103にて生成されたベースクロック信号と、が入力されるようになっており、このノイズシェーピング回路102は、ベースクロック信号に基づいて、入力されたPCM信号から量子化ビット数を所定のビット数(Nビット)に減らし、量子化雑音を高周波数帯域にシフトさせるノイズシェーピンク処理を施すようになっている。また、このノイズシェーピング回路102は、ノイズシェーピンク処理が施されたPCM信号を補正処理部105に出力するようになっている。
クロック信号発生部103は、予め定められた一定のベースとなる信号(以下、「ベース信号」という。)のクロック周波数に基づいてベースクロック信号を生成し、当該生成されたベースクロック信号を位相変換回路200と、当該位相変換回路200を介してオーバーサンプリング処理部101、ノイズシェーピング回路102、および、PCM/PWM変換部300に出力するようになっている。
なお、ベース信号とベースクロック信号の関係は、後述するメインディレイ回路202における位相間隔のステップ量によって決定される。例えば、図2に示すような位相間隔のステップが「90」度のときは、ベースクロック信号は、ベース信号の1/2となり、位相間隔のステップが「180」度のときはベースクロック周波数は、ベース信号と同一となる。
位相変換回路200には、クロック信号発生部103にて発生されたベースクロック信号が入力されるようになっており、この位相変換回路200は、ベースクロック信号の位相を変化させるため、後述するように、シフト量制御回路106によって設定されたシフト量に基づいて、入力されたベースクロック信号の位相を変換または無変換し、位相が変換されたまたは当該位相が無変換のベースクロック信号(以下、「シフトクロック信号」という。また、位相が変換されていないものも便宜上シフトクロック信号という。)を、位相の変化が施されないベースクロック信号とともに、PCM/PWM変換部300に出力するようになっている。
具体的には、この位相変換回路200は、シフト量制御回路106の制御の下、入力されたベースクロック信号の位相を、「+270」度〜「−270」度の範囲において変換し、変換したシフトクロック信号を位相の変化が施されないベースクロック信号とともに、PCM/PWM変換部300に出力するようになっている。
例えば、本実施形態の位相変換回路200は、図2に示すように、入力されたベースクロックを複数に分配する入力分配器201と、「+270」度から「−270」度において「90」度の位相間隔にてベースクロック信号の位相変化を行う複数のメインディレイ回路202と、各メインディレイ回路202の出力を制御する第1セレクタ203と、「0」度〜「90」度の範囲内において、所定の位相差を与える複数のサブディレイ回路204と、各サブディレイ回路204の出力を制御する第2セレクタ205と、シフト量制御回路106の制御の下、シフト量制御回路106によって決定されたシフト量が設定され、当該設定されたシフト量に基づいて第1セレクタ203および第2セレクタ205を制御する制御部206と、から構成され、入力されたベースクロック信号の位相を変化させ、入力分配器にて分配されたベースクロック信号の他に、シフトクロック信号を生成し、生成されたシフトクロック信号を、当該ベースクロック信号とともに、PCM/PWM変換部300に出力するようになっている。
なお、本実施形態の位相変換回路200は、PCM/PWM変換部300にてPWM信号を生成する際に用いるために、シフトクロック信号とともに、ベースクロック信号をPCM/PWM変換部300に出力するようになっており、ベースクロック信号をPCM/PWM変換部300だけでなく、オーバーサンプリング処理部101およびノイズシェーピング回路102にも出力するようになっている。
また、例えば、本実施形態の制御部206は、後述するように、PCM/PWM変換部300と連動してPWM信号の立ち上がりにてシフトクロック信号の位相を変化させるため、シフト量制御回路106にて決定されたシフト量に基づいて、後述のPCM/PWM変換部300におけるスタートカウンタ301の「0」と同期させて第1セレクタ203および第2セレクタ205の切り換え制御を行うようになっている。
さらに、メインディレイ回路202における位相間隔は、上述の「90」度だけではなく、例えば45度といった任意の位相間隔で設定してもよい。
補正処理部105には、ノイズシェーピンク処理が施されたPCM信号が入力されるようになっており、この補正処理部105は、後述するように、シフト量制御回路106に設定された補正値に基づいて、入力されたPCM信号の各PCM値に対して所定の補正処理を行ってPCM/PWM変換部300に出力するようになっている。
具体的には、この補正処理部105は、後述するように、生成されたシフト量情報に基づいて、シフト量制御回路106の制御の下、入力されたPCM信号の各PCM値に対して「1」を加算、または、「1」を減算する補正処理を行うようになっている。
なお、本実施形態では、補正処理部105は、補正処理を行わない場合には、PCM値に「0」を加算して当該PCM信号をPCM/PWM変換部300に出力するようになっている。
シフト量制御回路106には、後述のように、シフト量情報生成部113においてシフト量情報として生成された位相情報フラグ値(F)と、ノイズシェーピング回路102から出力されたPCM信号、すなわち、当該PCM信号におけるPCM値と、が入力されるようになっている。また、このシフト量制御回路106は、入力されたシフト量情報、前回までのPCM値において制御の基になったトータルのシフト量(以下、「トータルシフト量」という。)(b)、前回におけるシフト量(以下、「前回シフト量」という。)と、入力されたPCM信号のPCM値と、に基づいて、PCM値が更新される毎に、PCM/PWM変換部300において、入力されたPCM信号に対して相対的にベースクロック信号の位相を変化させてシフトクロック信号を生成させるために、すなわち、位相変換回路200にてベースクロック信号の位相の変化、または、補正処理部105にてPCM値の補正処理の少なくとも何れか一方を実行させるために、シフト量を決定するなどの所定の処理(以下、「メイン処理」という。)を行うようになっている。
具体的には、シフト量制御回路106は、入力されたシフト量情報に基づいて、今回のPCM値におけるシフト量(以下、「シフト更新量」という。)を算出するとともに、算出されたシフト更新量と前回に設定された前回シフト量とに基づいて、今回のシフト量(以下、単に「位相シフト量」という。)を決定する処理(以下、「シフト量決定処理」という。)を行い、決定された位相シフト量を位相変換回路200に設定するようになっている。
また、このシフト量制御回路106は、後述する補正を行うためのフラグの値(以下、「補正フラグ値(H)」という。)を用いてトータルシフト量(b)を各PCM値が更新される毎に算出する処理(以下、「トータルシフト量算出処理」という。)を行うようになっている。
さらに、このシフト量制御回路106は、補正処理部105にて入力されたPCM値を補正する際に用いる補正値を「0」、「−1」または「+1」の何れかに決定する処理(以下、「補正値決定処理」という。)を行い、決定された補正値を当該補正処理部105に設定するようになっている。例えば、シフト量制御回路106は、算出されたトータルシフト量(b)が「+270」度以上の値のときには、補正値を「+1」に決定するとともに、当該トータルシフト量(b)が「−270」度以上の値のときには、補正値を「−1」に決定し、トータルシフト量(b)が「−270」度より大きい値であり、かつ、「+270」度より小さい値のときには、トータルシフト量(b)を「0」に決定するようになっている。
なお、このシフト量制御回路106は、入力されたPCM信号におけるPCM値が最小値または最大値であって、シフト量情報生成部113から出力された位相情報フラグ値(F)が所定の情報の場合には、スイッチング増幅回路108におけるスイッチング素子の追従性により当該素子の破壊や誤動作の関係上、PCM/PWM変換部300における位相差制御および補正処理部105における補正処理制御の何れの制御も行わないようになっている。そして、シフト量制御回路106は、入力された位相情報フラグ値(F)、算出されたトータルシフト量(b)、および、設定された位相シフト量を内部のメモリに一時的に格納するようになっている。
また、本実施形態のシフト量制御回路106におけるシフト量決定処理、トータルシフト量算出処理および補正値決定処理を含むメイン処理の詳細については後述する。
PCM/PWM変換部300には、PCM信号がPCM値が更新される毎に入力されるようになっており、このPCM/PWM変換部300は、ベースクロック信号およびシフトクロック信号に基づいて、入力されたPCM信号に対してパルス幅変調を行い、PWM信号を生成してスイッチング増幅回路108および誤差信号算出部111に出力するようになっている。
なお、本実施形態のPCM/PWM変換部300の構成およびその動作の詳細については、後述する。
スイッチング増幅回路108には、パルス幅変調されたPWM信号が入力されるようになっている。このスイッチング増幅回路108は、例えば、MOS(Metal Oxide Semiconductor)型トランジスタであって、電界効果型トランジスタ(以下、「FET:Field Effect Transistor」という。)FETと、スピーカSPを駆動するための駆動電圧を印加するための直流電源と、を有し、入力されたPWM信号のスイッチング制御などの所定の制御を行い、PWM信号の信号レベルをk倍に、すなわち、所定の信号レベルに増幅するようになっている。そして、このスイッチング増幅回路108は、当該増幅されたPWM信号をLPF109および増幅器110に出力するようになっている。
LPF109には、所定のレベルに増幅されたPWM信号が入力されるようになっており、このLPF109は、高域雑音を除去するために入力されたPWM信号に対して高域遮断処理を施して拡声信号を生成し、当該生成された拡声信号をスピーカSPに出力するようになっている。
増幅器110には、所定の信号レベルに増幅されたPWM信号が入力されるようになっており、この増幅器110は、誤差信号を算出する際に一方の信号、すなわち、PCM/PWM変換部300から直接出力されたPWM信号との整合性を図るために入力されたPWMの信号レベルを(1/k)倍に増幅し、当該信号レベルが(1/k)倍に増幅されたPWM信号を誤差信号算出部111に出力するようになっている。
誤差信号算出部111には、スイッチング増幅回路108から出力されたPWM信号と、PCM/PWM変換部300から出力されたPWM信号と、が入力されるようになっており、この誤差信号算出部111は、入力された各信号に基づいて誤差信号を算出し、当該算出された誤差信号を電圧検出部112に出力するようになっている。
具体的には、本実施形態の誤差信号算出部111は、減算器から構成され、スイッチング増幅回路108から出力されたPWM信号からPCM/PWM変換部300から出力されたPWM信号を減算し、誤差信号を生成するようになっている。
電圧検出部112には、積分器112にてDC値化された誤差信号が入力されるようになっており、この電圧検出部112は、入力された誤差信号の電圧値を検出し、検出された電圧値をシフト量情報生成部113に出力するようになっている。
シフト量情報生成部113には、電圧検出部112にて検出された電圧値が入力されるようになっており、シフト量情報生成部113は、入力された電圧値に基づいて、PCM値が更新される毎の所定の位相情報フラグ値(F)を決定し、当該決定された位相情報フラグ値(F)をシフト量情報としてシフト量制御回路106に出力するようになっている。
具体的には、このシフト量情報生成部113は、入力された電圧値が予め定められた第1の閾値(以下、「第1閾値(−Ve)」という。)より小さい値であるか、第1閾値以上「0」より小さい値であるか、「0」であるか、「0」より大きく第2の閾値(以下「第2閾値(Ve)という。」)以下の値であるか、および、第2閾値より大きい値であるかを判別するようになっている。そして、このシフト量情報生成部113は、電圧値が第1閾値より小さい値のときは、「−90」度の位相差を設けるための位相情報フラグ値(F)を、第1閾値以上「0」より小さい値のときは、電圧値に基づくマイナスの位相差(−D)を算出し、当該位相差を設けるための位相情報フラグ値(F)をシフト量制御回路106に出力するようになっている。また、このシフト量情報生成部113は、入力された電圧値に基づいて上記判別をした結果、当該電圧値が「0」より大きく第2閾値以下の場合には、電圧値に基づくプラスの位相差(+D)を算出し、当該位相差を設けるための位相情報フラグ値(F)を、第2閾値より大きい場合には、「+90」度の位相差を設けるための移動情報フラグ値(F)を、シフト量制御回路106に出力するようになっている。
例えば、本実施形態のシフト量情報生成部113は、位相情報フラグ値(F)を3ビットのデータで出力するとともに、位相差を算出した場合には、算出された位相差をデータとして電圧値が第1閾値より小さい値のときは、「011」、第1閾値以上「0」より小さい値のときは、「001」と「−D」の値、「0」のときは、「000」「0」より大きく第2閾値以下のときは、「101」と「+D」の値、および、第2閾値より大きいときは、「111」の各フラグ情報と所定の値の情報をシフト量情報としてシフト量制御回路106に出力するようになっている。
なお、シフト量情報生成部113は、位相変換回路200にて与える位相差と対応させて位相差「±D」を適宜算出することできる構成を有しており、例えば、1nsec〜6nsecの位相差を算出することができるようになっている。
次に、図3を用いて本実施形態のPCM/PWM変換部300の構成およびその動作について説明する。なお、図3は、本実施形態におけるPCM/PWM変換部300の構成を示すブロック図である。
本実施形態のPCM/PWM変換部300は、ベースクロック信号に基づいて動作し、入力されたPCM信号に基づいてカウントを行うスタートカウンタ301と、シフトクロック信号に基づいてカウントアップを行うアップカウンタ302と、入力されたPCM信号におけるPCM値とアップカウンタ302の出力を比較するコンパレータ303と、スタートカウンタ301とコンパレータ303の出力に基づいてPWM信号を生成する同期型のフリップフロップ回路(以下、「RS−FF回路」という。)304と、から構成される。
スタートカウンタ301には、位相変換回路200を介してクロック信号発生部103にて発生されたベースクロック信号が入力されるようになっており、このスタートカウンタ301は、入力されたベースクロック信号に基づいて、例えばノイズシェーピング回路102の出力のビット数が6ビットのときは、「0」から「63」までのカウントを繰り返し、「0」をカウントするときに、RS−FF回路304にPWM信号の立ち上がりを指示する旨の信号を出力するとともに、アップカウンタ302におけるカウント開始を指示する信号、すなわち、当該アップカウンタ302のカウンタを「0」にする信号を出力するようになっている。
アップカウンタ302には、位相変換回路200から出力されたシフトクロック信号とスタートカウンタ301から出力されたスタート指示が入力されるようになっており、このアップカウンタ302は、スタート指示に基づいて、シフトクロックを「0」からカウントし、カウントした値(以下、「カウント値」)をデータとしてコンパレータ303に出力するようになっている。
コンパレータ303には、入力されたPCM信号のPCM値とアップカウンタ302から出力されたカウント値とを比較し、PCM値とカウント値が同一の値になったときに、RS−FF回路304にPWM信号の立ち下げを指示する旨の信号を出力するようになっている。
RS−FF回路304には、スタートカウンタ301からPWM信号の立ち上がりを指示する信号と、コンパレータ303から当該PWM信号の立ち下がりを指示する信号と、が入力されるようになっており、このRS−FF回路304は、立ち上がりを指示する信号が入力された際に出力するPWM信号を立ち上げるとともに、立ち下げを指示する信号が入力された際に当該出力するPWM信号を立ち下げるようになっている。
なお、本実施形態のPCM/PWM変換部300におけるPCM信号をPWM信号に変換する処理(以下、「PCM/PWM変換処理」という。)の動作の詳細については後述する。
次に、図4を用いて本実施形態におけるシフト量制御回路106におけるメイン処理について説明する。なお、図4は、本実施形態におけるシフト量制御回路106におけるメイン処理を示すフローチャートである。
本動作では、シフト量制御回路106は、ベースクロック信号に基づいて、ノイズシェーピング回路102、PCM/PWM変換部300、補正処理部105および位相変換回路200と連動する。なお、クロック信号発生部103は、PWM信号の生成の処理が開始されると、ベースクロック信号を発生させるようになっている。
まず、操作者の指示など所定の指示に基づいてPWM信号の生成の処理が開始され、シフト量制御回路106がこの開始を検出すると(ステップS11)、当該シフト量制御回路106は、位相変換回路200および補正処理部105に設定した値をクリアし、各値の初期設定を行う(ステップS12)。具体的には、シフト量制御回路106は、初期設定としては、位相情報フラグ値(F)、トータルシフト量(b)、および、位相シフト量(S)の値を「0」に設定する。
次いで、シフト量制御回路106は、位相情報フラグ値(F)、トータルシフト量(b)、および、位相シフト量(S)の値を図示しない内部のメモリから読み出す(ステップS13)。
次いで、シフト量制御回路106は、シフト更新量の決定と位相シフト量(S)の決定を行うシフト量決定処理を行い、その値を位相変換回路200に設定する(ステップS14)。具体的には、シフト量制御回路106は、読み出した位相情報フラグ値(F)に基づいて、シフト更新量、シフト量およびトータルシフト量(b)を決定するとともに、位相情報フラグ値(F)に基づいて補正フラグ値(H)を設定する。
なお、本実施形態のシフト量制御回路106におけるシフト量決定処理の動作の詳細について後述する。また、この補正フラグ値(H)は、補正値決定処理およびトータルシフト量算出処理において条件を決定するためのフラグ値である。
次いで、シフト量制御回路106は、ステップS13の処理において設定された補正フラグ値(H)に基づいて、補正処理部105における補正処理に用いる値を決定する補正値決定処理を行い、補正処理部105に設定する(ステップS15)。具体的には、シフト量制御回路106は、補正フラグ値(H)に基づいて、補正値を「0」、「−1」または「1」に決定し、決定された補正値を補正処理部105に設定する。
なお、本実施形態のシフト量制御回路106における補正値決定処理の動作の詳細について後述する。
次いで、シフト量制御回路106は、ステップS13の処理において設定された補正フラグ値(H)に基づいて、トータルシフト量(b)を算出するトータルシフト量算出処理を行い、決定されたトータルシフト量(b)を内部のメモリに記憶する(ステップS16)。
なお、本実施形態のシフト量制御回路106におけるトータルシフト量算出処理の動作の詳細について後述する。
次いで、シフト量制御回路106は、PWM信号の生成の処理における終了の検出を含め、次のPCM信号におけるPCM値の入力が有るか否かを判断し(ステップS17)、次のPCM信号におけるPCM値の入力がある場合には、ステップS13の処理に移行するとともに、当該PCM値の入力がない場合には、本動作を終了させる。
なお、シフト量制御回路106は、ステップS16の処理において、図示しない制御部206などの、入力されるPCM信号におけるPCM値の有無を示す指示に基づいてPWM信号の生成の処理における終了を検出すると、次のPCM信号におけるPCM値の入力がないことを検出する。
このように、シフト量および補正値が決定され、位相変換回路200および補正処理部105に各値が設定されると、位相変換回路200は、PCM値が更新される毎に、PCM/PWM変換部300におけるスタートカウンタ301と連動して設定された位相シフト量(S)に基づいて第1セレクタ203および第2セレクタ205を切り換えてシフトクロック信号を発生させ、補正処理部105は、PCM値が更新される毎に、設定された補正値に基づいてオーバーサンプリング処理およびノイズシェーピング処理が施されたPCM信号におけるPCM値を補正してPCM/PWM変換部300に出力する。そして、PCM/PWM変換部300は、PCM値が更新される毎に、相対的に変化されたシフトクロック信号に基づいてPWM信号を生成し、生成されたPWM信号を、スイッチング増幅回路108を介してスピーカSPに出力する。
次に、図5〜図7を用いて本実施形態のシフト量制御回路106におけるシフト量決定処理について説明する。なお、図5〜図7は、本実施形態のシフト量制御回路106におけるシフト量決定処理を示すフローチャートである。
このシフト量決定処理は、メイン処理中に実行される処理であって、シフト更新量および位相シフト量(S)を決定するための処理である。
まず、シフト量制御回路106は、入力されたPCM値が予め定められた最小の値(min)であるか否かを判断し(ステップS101)、入力されたPCM値が予め定められた最小の値である判断したときには、ステップS102の処理に移行し、当該入力されたPCM値が予め定められた最小の値でない判断したときには、ステップS103の処理に移行する。
次いで、シフト量制御回路106は、ステップS101の処理において、PCM値が予め定められた最小の値である判断したときには、メイン処理において読み出した位相情報フラグ値(F)が「111」であるか、または、「101」であるかを判断し(ステップS102)、位相情報フラグ値(F)が「111」および「101」の何れでもないと判断したときには、ステップS105の処理に移行するとともに、「111」または「101」であると判断するとステップS120の処理に移行する。
次いで、シフト量制御回路106は、ステップS101の処理において、PCM値が予め定められた最小の値でない判断したときには、入力されたPCM値が予め定められた最大の値(max)であるか否かを判断し(ステップS103)、入力されたPCM値が予め定められた最大の値であると判断したときには、ステップS104の処理に移行し、当該入力されたPCM値が予め定められた最大の値でない判断したときには、ステップS105の処理に移行する。
次いで、シフト量制御回路106は、ステップS103の処理において、入力されたPCM値が予め定められた最大の値であると判断したときには、メイン処理において読み出した位相情報フラグ値(F)が「011」であるか、または、「001」であるかを判断し(ステップS104)、位相情報フラグ値(F)が「011」および「001」の何れでもないと判断したときには、ステップS111の処理に移行するとともに、「011」または「001」であると判断するとステップS120の処理に移行する。
次いで、シフト量制御回路106は、ステップS102の処理において、位相情報フラグ値(F)が「111」および「101」の何れでもないと判断したとき、または、ステップS103の処理において、入力されたPCM値が予め定められた最大の値でない判断したときには、位相フラグ値が「011」か否かを判断し(ステップS105)、位相フラグ値が「011」でないと判断したときは、トータルシフト量(b)が「+270」度であるか否かを判断する(ステップS106)。
なお、シフト量制御回路106は、位相フラグ値が「011」でないと判断したときには、ステップS111の処理に移行する。
次いで、シフト量制御回路106は、ステップS106の処理において、トータルシフト量(b)が「+270」度でないと判断したときには、補正フラグ値(H)を「100」に設定してメモリに格納するとともに(ステップS107)、シフト更新量を「+90」度に決定し(ステップS108)、ステップS121の処理に移行する。
一方、シフト量制御回路106は、ステップS106の処理において、トータルシフト量(b)が「+270」度であると判断したときには、補正フラグ値(H)を「101」に設定してメモリに格納するとともに(ステップS109)、位相シフト量(S)を「0」度に設定し(ステップS110)、ステップS122の処理に移行する。
次いで、シフト量制御回路106は、ステップS104の処理において、位相情報フラグ値(F)が「011」および「001」の何れでもないと判断したとき、または、ステップS105の処理において、位相フラグ値が「011」でない判断したときには、位相フラグ値が「111」か否かを判断し(ステップS111)、位相フラグ値が「111」でないと判断したときは、トータルシフト量(b)が「−270」度であるか否かを判断する(ステップS112)。
なお、シフト量制御回路106は、位相フラグ値が「111」でないと判断したときには、ステップS116の処理に移行する。
次いで、シフト量制御回路106は、ステップS112の処理において、トータルシフト量(b)が「−270」度でないと判断したときには、補正フラグ値(H)を「110」に設定してメモリに格納するとともに(ステップS113)、シフト更新量を「−90」度に決定し(ステップS114)、ステップS121の処理に移行する。
一方、シフト量制御回路106は、ステップS112の処理において、トータルシフト量(b)が「−270」度であると判断したときには、補正フラグ値(H)を「111」に設定してメモリに格納するとともに(ステップS115)、シフト量を「0」度に決定し(ステップS110)、ステップS122の処理に移行する。
次いで、シフト量制御回路106は、ステップS111の処理において、位相フラグ値が「111」でないと判断したときには、位相フラグ値が「001」であるか否かを判断し(ステップS116)、位相フラグ値が「001」であると判断したときには、シフト更新量をシフト量情報生成部113において算出された「+D」度に決定し(ステップS117)、ステップS121の処理に移行する。
他方、シフト量制御回路106は、位相フラグ値が「001」でないと判断したときには、位相フラグ値が「101」であるか否かを判断し(ステップS118)、位相フラグ値が「101」であると判断したときには、シフト更新量をシフト量情報生成部113において算出された「−D」度に決定し(ステップS119)、ステップS121の処理に移行する。
なお、シフト量制御回路106は、位相フラグ値が「101」でないと判断したときには、ステップS120の処理に移行する。
次いで、シフト量制御回路106は、ステップS102の処理において、位相フラグ値が「111」または「101」であると判断したとき、ステップS104の処理において、位相フラグ値が「011」または「001」であると判断したとき、または、ステップS118の処理において、位相フラグ値が「101」でないと判断したときには、シフト更新量を「0」に決定する(ステップS120)。
次いで、シフト量制御回路106は、ステップS108、S114、S117、S119およびS120の処理において各シフト更新量が決定されると、当該決定された各シフト更新量と前回シフト量を加算し、位相シフト量(S)を算出する(ステップS121)。
次いで、シフト量制御回路106は、ステップS110の処理にて設定された位相シフト量(S)、すなわち、「0」またはステップS121の処理において算出された位相シフト量(S)を当該PCM値における位相シフト量(S)と決定する(ステップS122)。
最後に、シフト量制御回路106は、決定された位相シフト量(S)を位相変換回路200に設定し(ステップS123)、本動作を終了する。
次に、図8を用いて本実施形態のシフト量制御回路106におけるシフト量決定処理について説明する。なお、図8は、本実施形態のシフト量制御回路106における補正値決定処理を示すフローチャートである。
この補正値決定処理は、メイン処理中に実行される処理であって、上述のシフト量決定処理にて決定された補正フラグ値(H)を用いて補正処理部105において補正するPCM値の補正量を決定する処理である。
まず、シフト量制御回路106は、補正フラグ値(H)をメモリから読み出し、当該読み出された補正フラグ値(H)が「101」または「111」の何れかであるかを判断する(ステップS201)。なお、シフト量制御回路106は、補正フラグ値(H)が「101」または「111」の何れかであると判断したときには、ステップS202の処理に移行し、補正フラグ値(H)が「101」および「111」の何れでもないと判断したときには、ステップS205の処理に移行する。
次いで、シフト量制御回路106は、ステップS201の処理において、補正フラグ値(H)が「101」または「111」の何れかであると判断したときには、当該補正フラグ値(H)が「101」であるか否かを判断し(ステップS202)、補正フラグ値(H)が「101」である判断したときには、補正値を「+1」に決定して(ステップS203)ステップS206の処理に移行する。
一方、シフト量制御回路106は、ステップS203の処理において、補正フラグ値(H)が「101」でない判断したときには、補正値を「−1」に決定し(ステップS204)、ステップS206の処理に移行する。
他方、シフト量制御回路106は、ステップS201の処理において、補正フラグ値(H)が「101」および「111」の何れでもないと判断したときには、補正値を「0」に決定し(ステップS203)、ステップS206の処理に移行する。
最後に、シフト量制御回路106は、決定された補正値を補正処理部105に設定し(ステップS206)、本動作を終了する。
次に、図9を用いて本実施形態のシフト量制御回路106におけるトータルシフト量算出処理について説明する。なお、図9は、本実施形態のシフト量制御回路106におけるトータルシフト量算出処理を示すフローチャートである。
このトータルシフト量算出処理は、メイン処理中に実行される処理であって、上述のシフト量決定処理にて決定された補正フラグ値(H)を用いてシフト量決定処理において使用するトータルシフト量(b)を決定する処理である。
まず、シフト量制御回路106は、補正フラグ値(H)をメモリから読み出し、当該読み出された補正フラグ値(H)が「100」または「110」の何れかであるかを判断する(ステップS301)。なお、シフト量制御回路106は、補正フラグ値(H)が「100」または「110」の何れかであると判断したときには、ステップS302の処理に移行し、補正フラグ値(H)が「100」および「110」の何れでもないと判断したときには、ステップS305の処理に移行する。
次いで、シフト量制御回路106は、ステップS301の処理において、補正フラグ値(H)が「100」または「110」の何れかであると判断したときには、当該補正フラグ値(H)が「110」であるか否かを判断し(ステップS302)、補正フラグ値(H)が「110」である判断したときには、メモリに格納されているトータルシフト量(b)に「+90」度を加算して新たなトータルシフト量(b)を算出し(ステップS303)、本動作を終了する。
一方、シフト量制御回路106は、ステップS303の処理において、補正フラグ値(H)が「110」でない判断したときには、メモリに格納されているトータルシフト量(b)に「−90」度を加算して新たなトータルシフト量(b)を算出し(ステップS304)、本動作を終了する。
他方、シフト量制御回路106は、ステップS301の処理において、補正フラグ値(H)が「100」および「110」の何れでもないと判断したときには、メモリに格納されているトータルシフト量(b)を「0」に設定し(ステップS305)、本動作を終了する。
次に、図10〜図12を用いて本実施形態のPCM/PWM変換部300におけるPCM/PWM変換処理について説明する。なお、図10は、本実施形態のPCM/PWM変換部300におけるPCM/PWM変換処理を示すフローチャートであり、図11および図12は、ノイズシェーピング回路102の出力ビット数が6ビットの場合において、本実施形態のPCM/PWM変換部300における出力されるPWM信号とシフトクロック信号の切換を示すタイミングチャートである。
本動作では、PCM/PWM変換部300は、ベースクロック信号に基づいて、シフト量制御回路106、補正処理部105および位相変換回路200と連動するとともに、当該ベースクロック信号とシフトクロック信号とに基づいて以下の処理を行う。
なお、クロック信号発生部103は、PWM信号の生成の処理が開始されると、ベースクロック信号を発生させるので、PWM信号の生成の処理が開始されると、ベースクロック信号およびシフトクロック1信号が入力される。また、ノイズシューピング回路102の出力ビット数が6ビットとする。
まず、操作者の指示など所定の指示に基づいてPWM信号の生成の処理が開始され、PCM/PWM変換部300がこの開始を検出すると(ステップS401)、スタートカウンタ301およびアップカウンタ302は、所定の値をクリアし、初期設定を行う(ステップS402)。
次いで、コンパレータ303は、入力されたPCM信号のPCM値を読み込む(ステップS403)。
次いで、スタートカウンタ301は、ベースクロック信号に基づいてカウントを開始するとともに(ステップS404)、スタート指示をRS−FF回路304に出力し、当該RS−FF回路304にPWM信号として「High」の信号を出力させる(ステップS405)。なお、スタートカウンタ301は、カウントが開始されると、ベースクロック信号に基づいて、「0」から「63」までを繰り返してカウントを行う。
次いで、アップカウンタ302は、シフトクロック信号に基づいてカウントを開始し、カウントの値を随時コンパレータ303に出力する(ステップS406)。
次いで、コンパレータ303は、アップカウンタ302から出力されたカウンタの値がステップS403の処理において読み込まれたPCM値と同一であるか検出し(ステップS407)、アップカウンタ302の値がPCM値と同一でないときには、アップカウンタ302から出力されたカウンタの値がステップS403の処理において読み込まれたPCM値と同一になるまで当該ステップS407の処理を繰り返す。
他方、コンパレータ303は、アップカウンタ302から出力されたカウンタの値がPCM値と同一であることを検出したときには、RS−FF回路304に所定の信号を出力し、当該RS−FF回路304にPWM信号として「Low」の信号を出力させる(ステップS408)。
なお、本動作は、ステップS409の処理が終了すると、ステップS403の処理に移行し、本実施形態のPCM/PWM変換部300におけるPCM/PWM変換処理を電源がオフになるなど所定の指示によって回路動作が停止するまで当該処理を繰り返す。
このように、本実施形態のPCM/PWM変換部300は、ベースクロック信号に基づいてPWM信号の「High」を出力し、シフトクロック信号に基づいてPWM信号の「Low」を出力するので、シフトクロック信号の位相が上述のシフト量制御回路106にて設定されたシフト量によってシフトクロック信号の位相が変化されていると、または、シフト量制御回路106にて設定された当該補正処理部105の補正値が算出されていると、スイッチング処理が施される際に生じる非線形歪みが補正されたPWM信号が出力される。
また、本実施形態では、シフトクロック信号の位相を直接的に変化させる場合には、シフトクロック信号をスタートカウンタ301が「0」のときに、位相が変化されたシフトクロック信号に切り換えるようになっている。
例えば、PCM値が「2」の場合であって、「+90」度の位相差を設ける場合には、本実施形態では、図11に示すように、PWM信号は、スタートカウンタ301が「0」のときに立ち上げられる。しかしながら、当該スタートカウンタ301が「0」のときに位相が変化されたシフトクロック信号に切り換えられ、PWM信号は、当該切り換えられたシフト信号によって立ち下げられるので、PWM信号の幅が長くすることができる。
また、PCM値が「2」の場合であって、「−90」度の位相差を設ける場合には、本実施形態では、図12に示すように、PWM信号は、スタートカウンタ301が「0」のときに立ち上げられる。しかしながら、当該スタートカウンタ301が「0」のときに位相が変化されたシフトクロック信号に切り換えられ、PWM信号は、当該切り換えられたシフトクロック信号に基づいて立ち下げられるので、PWM信号の幅が短くすることができる。
なお、図11および図12において、n番目のPCM値から「n+1」番目のPCM値に切り換わるときのタイミングチャートであり、また、タイミングチャート上一番上の信号は、ベースクロック信号およびシフトクロック1信号を生成する際に用いるベース信号である。
以上により、本実施形態のD級電力増幅装置100は、PCM信号をパルス変調し、当該パルス変調されたPCM信号を増幅してスピーカSPに出力するD級電力増幅装置100であって、PCM信号を受信するとともに、ベースクロック信号に基づいて、受信されたPCM信号をパルス変調し、パルス幅変調信号を生成するPCM/PWM変換部300と、生成されたパルス幅変調信号に従って電源電圧をスイッチングし、当該パルス幅変調信号の信号レベルを増幅して拡声信号を生成するスイッチング増幅回路108と、生成されたパルス幅変調信号と拡声信号との誤差を示す誤差信号を算出する誤差信号算出部111と、算出された誤差信号に基づいて、PCM/PWM変換部300によって用いられるベースクロック信号の位相を受信されたPCM信号に対して相対的に変化させる位相変換回路200と、を備える構成を有している。
この構成により、本実施形態のD級電力増幅装置100は、算出された誤差信号に基づいて、PCM/PWM変換部300によって用いられるベースクロック信号の位相を受信されたPCM信号に対して相対的に変化させる。
したがって、本実施形態のD級電力増幅装置100は、スイッチング増幅回路108によって生ずる誤差信号に基づいて、ベースクロック信号の位相を変化させることができるので、すなわち、シフトクロック信号を生成することができるので、当該シフトクロック信号を用いて、受信されたPCM信号からPWM信号を生成することができ、スイッチング増幅回路108にて増幅されるPWM信号のパルス幅を可変させることができる。
この結果、本実施形態のD級電力増幅装置100は、スイッチング増幅回路108にてスイッチング処理が施される際に生じる非線形歪み、すなわち、当該スイッチング増幅回路108にて直流電源のオン・オフの切り換えにより発生する非線形な歪みを的確に防止することができるとともに、高周波数に適用可能であり、PWM信号のパルス幅を可変にするための精度の高い専用の回路も必要なく、回路規模も小さくすることができる。
また、本実施形態のD級電力増幅装置100は、位相変換回路200が、パルス幅変調信号を生成する際にPCM値に、PCM/PWM変換部300によって用いられるクロック信号の位相を相対的に変化させるので、各PWM信号毎に非線形歪みを補正することができ、スピーカSPから出力される際の雑音を的確に除去することができる。
また、本実施形態のD級電力増幅装置100は、位相変換回路200が、算出された誤差信号に基づいて、クロック信号の位相を直接的に変化させること、または、PCM信号の受信時のタイミングを変化させることの少なくとも何れか一方によって、クロック信号の位相を受信されたPCM信号に対して相対的に変化させる構成を有している。
したがって、本実施形態のD級電力増幅装置100は、シフトクロック信号を生成する際に、所定の範囲内、例えば、−270度から+270度にて行うことができるので、構成を簡易にすることができる。
また、本実施形態のD級電力増幅装置100は、PCM/PWM変換部300の出力と、スイッチング増幅回路108の出力と、に基づいて誤差信号算出部111にて誤差信号を算出するようになっているが、PCM/PWM変換部300の出力とLPF109の出力とに基づいて誤差信号算出部111にて誤差信号を算出するようにしてもよい。この場合には、PCM/PWM変換部300の出力に対してLPF109と同様の高域遮断処理を施し、施した信号に基づいて誤差信号を算出するようになっている。
〔第2実施形態〕
次に、図13〜図16を用いて本願に係るD級電力増幅装置の第2実施形態について説明する。
本実施形態では、第1実施形態においてPWM変調方式がSingle Sided方式である点に代えて、当該Single Sided方式より高調波歪が減少するDouble Sided方式、すなわち、信号の立ち上がりおよび立ち下がりの両側からPWM信号の幅を制御してPWM変調を行う点に特徴があり、その他の点は、第1実施形態と同様であり、同一の部材については同一の符号を付してその説明を省略する。また、本実施形態のシフト量制御回路106におけるメイン処理は、第1実施形態と同様であるため、その説明を省略する。
なお、本実施形態では、位相変換回路200から出力される各シフトクロック信号、すなわち、シフトクロック1信号およびシフトクロック2信号は、それぞれ別々にPCM/PWM変換部に出力されるようになっている。
まず、図13を用いて本実施形態における位相変換回路について説明する。なお、図13は、本実施形態における位相変換回路の構成の一例を示すブロック図である。
本実施形態の位相変換回路200は、入力されたベースクロック信号の位相を変化させ、ベースクロック信号の他に、シフトクロック1信号およびシフトクロック2信号を生成し、生成された各シフトクロック信号を当該各ベースクロック信号とともに、PCM/PWM変換部300に出力するようになっている。
例えば、本実施形態の位相変換回路200は、図13に示すように、入力されたベースクロックを複数に分配する入力分配器211と、「+270」度から「−270」度において「90」度の位相間隔にてベースクロック信号の位相変化を行う複数のメインディレイ回路212と、各メインディレイ回路212の出力のうちシフトクロック1信号を制御する第1セレクタ213と、「0」度〜「90」度の範囲内において、シフトクロック1信号について所定の位相差を与える複数の第1サブディレイ回路214と、各第1サブディレイ回路204の出力を制御する第2セレクタ215と、各メインディレイ回路212の出力のうちシフトクロック2信号を制御する第3セレクタ216と、「0」度〜「90」度の範囲内において、シフトクロック2信号について所定の位相差(後述のシフト量情報生成部113において算出される位相差「D」)を与える複数の第2サブディレイ回路217と、各第2サブディレイ回路217の出力を制御する第4セレクタ218と、シフト量制御回路106の制御の下、シフト量制御回路106によって決定されたシフト量が設定され、当該設定されたシフト量に基づいて第1セレクタ213、第2セレクタ215、第3セレクタ216および第4セレクタ218を制御する制御部219、とから構成される。
なお、シフトクロック2信号は、制御部206において、後述するシフト量制御回路106にて算出されたトータルシフト量を−1倍した値に基づいて第3セレクタ206および第4セレクタ209を制御することによって生成されるようになっている。すなわち、シフトクロック1信号におけるシフト量がベースクロック信号に対して+90度の位相ずれが生じている場合には、シフト量がベースクロック信号に対して−90度の位相がずれているシフトクロック2信号が出力されるようになっている。ただし、メインディレイ回路202における位相間隔は、上述の「90」度だけではなく、例えば45度といった任意の位相間隔で設定してもよい。
また、例えば、本実施形態の制御部219は、後述するように、PCM/PWM変換部300と連動して、シフトクロック1信号にてPWM信号の立ち上がり、シフトクロック2信号にてPWM信号の立下りを変化させるため、シフト量制御回路106にて決定されたシフト量に基づいて、後述のPCM/PWM変換部300におけるスタートカウンタ301の「0」と同期させて第1セレクタ213、第2セレクタ215、第3セレクタ216および第4セレクタ218の切り換え制御を行うようになっている。
次に、図14を用いて本実施形態のPCM/PWM変換部300の構成について説明する。なお、図14は、本実施形態におけるPCM/PWM変換部300の構成を示すブロック図である。
本実施形態のPCM/PWM変換部300は、シフトクロック2信号に基づいてカウントアップするアップカウンタ401と、シフトクロック1信号に基づいてカウントダウンするダウンカウンタ402と、ベースクロック信号に基づいて動作し、アップカウンタ401およびダウンカウンタ402のスタートの指示出力を行うスタート指示回路403と、入力されたPCM信号におけるPCM値とアップカウンタ401の出力を比較する第1コンパレータ404と、入力されたPCM信号におけるPCM値とダウンカウンタ402の出力を比較する第2コンパレータ405と、第1コンパレータ404と第2コンパレータ405の出力に基づいてPWM値を出力するRS−FF回路406と、から構成される。
アップカウンタ401には、位相変換回路200から出力されたシフトクロック2信号とスタート指示カウンタ回路403からのスタート指示が入力されるようになっており、このアップカウンタ401は、スタート指示に基づいて、シフトクロックを「0」からカウントし、カウントした値を示すカウント値をデータとして第1コンパレータ404に出力するようになっている。
ダウンカウンタ402には、位相変換回路200から出力されたシフトクロック1信号とスタート指示回路403からのスタート指示が入力されるようになっており、このダウンカウンタ402は、スタート指示に基づいて、シフトクロック1信号をPCM値からカウントダウンし、カウント値をデータとして第2コンパレータ405に出力するようになっている。
スタート指示回路403には、位相変換回路200を介してクロック信号発生部103にて発生されたベースクロック信号が入力されるようになっており、このスタート指示回路403は、入力されたベースクロック信号に基づいて、例えばノイズシェーピング回路102における出力ビット数が6ビットの場合には、「0」から「127」までのカウントを繰り返し、「0」をカウントするときに、ダウンカウンタ402開始を指示する旨の信号を出力するようになっている。また「64」をカウントするときに、アップカウンタ401に対してカウント開始を指示する旨の信号を出力するようになっている。
第1コンパレータ404には、入力されたPCM信号のPCM値とアップカウンタ401から出力されたカウント値とを比較し、PCM値とカウント値が同一の値になったときに、RS−FF回路406にPWM信号の立ち下げを指示する旨の信号を出力するようになっている。
第2コンパレータ405には、入力されたPCM信号のPCM値とダウンカウンタ402から出力されたカウント値とを比較し、PCM値とカウント値が同一の値になったときに、RS−FF回路406にPWM信号の立ち上げを指示する旨の信号を出力するようになっている。
RS−FF回路406には、第2コンパレータ405からPWM信号の立ち上がりを指示する信号と、第1コンパレータ404から当該PWM信号の立ち下がりを指示する信号と、が入力されるようになっており、このRS−FF回路406は、立ち上がりを指示する信号が入力された際に出力するPWM信号を立ち上げるとともに、立ち下げを指示する信号が入力された際に当該出力するPWM信号を立ち下げるようになっている。
次に、図15を用いて本実施形態のPCM/PWM変換部300におけるPCM/PWM変換処理について説明する。なお、図15は、本実施形態のPCM/PWM変換部300におけるPCM/PWM変換処理を示すフローチャートである。
本動作では、PCM/PWM変換部300は、ベースクロック信号に基づいて、シフト量制御回路106、補正処理部105および位相変換回路200と連動するとともに、当該ベースクロック信号、シフトクロック1信号およびシフトクロック2信号に基づいて以下の処理を行う。なお、クロック信号発生部103は、PWM信号の生成の処理が開始されると、ベースクロック信号を発生させるので、PWM信号の生成の処理が開始されると、ベースクロック信号、シフトクロック1信号およびシフトクロック2信号が入力される。
まず、操作者の指示など所定の指示に基づいてPWM信号の生成の処理が開始され、PCM/PWM変換部300がこの開始を検出すると(ステップS501)、アップカウンタ401、ダウンカウンタ402およびスタート指示回路403は、所定の値をクリアし、初期設定を行う(ステップS502)。
次いで、第1コンパレータ404、第2コンパレータ405およびアップカウンタ401、ダウンカウンタ402は、入力されたPCM信号のPCM値を読み込む(ステップS503)。
次いで、スタート指示回路403は、ベースクロック信号に基づいてカウントを開始するとともに(ステップS504)、ダウンカウンタ402にカウントを開始する旨の信号を出力する。
次いで、ダウンカウンタ402は、シフトクロック1信号に基づいてカウントを開始し、カウントの値を随時第2コンパレータ405に出力する(ステップS505)。なお、ダウンカウンタ402は、カウントが開始されると、シフトクロック1信号に基づいて、ステップS503の処理にて読み込んだPCM値から「0」まで繰り返してカウントを行う。
次いで、第2コンパレータ405は、ダウンカウンタ402から出力されたカウンタの値がステップS503の処理において読み込まれたPCM値と同一であるかを検出し(ステップS506)、ダウンカウンタ402の値がPCM値と同一でないときには、ダウンカウンタ402は、カウンタの値がPCM値と同一になるまで当該ステップS506の処理を繰り返す。
一方、第2コンパレータ405は、カウンタの値がPCM値と同一のときには、所定の指示をRS−FF回路406に出力し、当該RS−FF回路406にPWM信号として「High」の信号を出力させる(ステップS507)。
次いで、スタート指示回路403は、スタート指示カウンタの値が64であるかを検出し(ステップS508)、カウンタが「64」であることを検出するまで当該ステップS508の処理を繰り返す。
次いで、スタート指示回路403は、カウンタが「64」になったことを検出すると、アップカウンタ401にカウントを開始する旨の信号を出力する(ステップS509)。
次いで、アップカウンタ401は、シフトクロック2信号に基づいてカウントを開始し、カウントの値を随時第1コンパレータ404に出力する(ステップS510)。なお、アップカウンタ401は、カウントが開始されると、シフトクロック2信号に基づいて、「0」からステップS503の処理にて読み込んだPCM値まで繰り返してカウントを行う。
次いで、第1コンパレータ404は、アップカウンタ401から出力されたカウンタ値がステップS503の処理にて読み込んだPCM値と同一であるかを検出し(ステップS511)、アップカウンタ401から出力されたカウンタの値がステップS503の処理において読み込まれたPCM値と同一になるまで当該ステップS511の処理を繰り返す。
一方、第1コンパレータ404は、アップカウンタ401から出力されたカウンタの値がPCM値と同一のときには、所定の指示をRS−FF回路406に出力し、当該RS−FF回路406にPWM信号として「Low」の信号を出力させる(ステップS512)。
なお、本動作は、ステップS512の処理が終了すると、ステップS503の処理に移行し、本実施形態のPCM/PWM変換部300におけるPCM/PWM変換処理を電源がオフになるなど所定の指示によって回路動作が停止するまで当該処理を繰り返す。
このように、本実施形態のPCM/PWM変換部300は、シフトクロック1信号に基づいてPWM信号の「High」を出力し、シフトクロック2信号に基づいてPWM信号の「Low」を出力するので、各シフトクロックの位相が上述のシフト量制御回路106にて設定されたシフト量によってシフトクロック信号の位相が変化されていると、または、シフト量制御回路106にて設定された当該補正処理部105の補正値が算出されていると、スイッチング処理が施される際に生じる非線形歪みが補正されたPWM信号が出力される。
また、本実施形態では、各シフトクロック信号の位相を直接的に変化させる場合には、シフトクロック信号をスタートカウンタ301が「0」のときに、位相が変化された各シフトクロック信号に切り換えるようになっている。
例えば、PCM値が「2」の場合であって、「+Dnsec」の位相差を設ける場合には、本実施形態では、図16に示すように、スタート指示カウンタ403が「0」のときに位相が変化されたシフトクロック1信号およびシフトクロック2信号が切り換えられ、PWM信号は、当該切り換えられたシフトクロック1信号によって立ち上げられ、当該切り換えられたシフトクロック2信号によって立ち下げられるので、PWM信号の幅を両側方向からから短くすることができる。
なお、図16はノイズシェーパ出力のビット数が6ビットの場合における、n番目のPCM値のときのタイミングチャートであり、また、タイミングチャート上一番上の信号は、ベースクロック信号およびシフトクロック1およびシフトクロック2信号である。
以上により、本実施形態のD級電力増幅装置100は、第1実施形態と同様に、PCM信号をパルス変調し、当該パルス変調されたPCM信号を増幅してスピーカSPに出力するD級電力増幅装置100であって、PCM信号を受信するとともに、ベースクロック信号に基づいて、受信されたPCM信号をパルス変調し、パルス幅変調信号を生成するPCM/PWM変換部300と、生成されたパルス幅変調信号に従って電源電圧をスイッチングし、当該パルス幅変調信号の信号レベルを増幅して拡声信号を生成するスイッチング増幅回路108と、生成されたパルス幅変調信号と拡声信号との誤差を示す誤差信号を算出する誤差信号算出部111と、算出された誤差信号に基づいて、PCM/PWM変換部300によって用いられるクロック信号の位相を受信されたPCM信号に対して相対的に変化させる位相変換回路200と、を備える構成を有している。
この構成により、本実施形態のD級電力増幅装置100は、算出された誤差信号に基づいて、PCM/PWM変換部300によって用いられるベースクロック信号の位相を受信されたPCM信号に対して相対的に変化させる。
したがって、本実施形態のD級電力増幅装置100は、スイッチング増幅回路108によって生ずる誤差信号に基づいて、ベースクロック信号の位相を変化させることができるので、すなわち、シフトクロック1信号およびシフトクロック2信号を生成することができるので、当該シフトクロック1信号およびシフトクロック2信号を用いて、受信されたPCM信号からPWM信号を生成することができ、スイッチング増幅回路108にて増幅されるPWM信号のパルス幅を可変させることができる。
この結果、本実施形態のD級電力増幅装置100は、スイッチング増幅回路108にてスイッチング処理が施される際に生じる非線形歪み、すなわち、当該スイッチング増幅回路108にて直流電源のオン・オフの切り換えにより発生する非線形な歪みを的確に防止することができるとともに、PWM信号のパルス幅を可変にするための精度の高い専用の回路も必要なく、回路規模も小さくすることができる。