資格部

資格・検定の試験情報、対策方法、問題解説などをご紹介

AP 午後 組込みシステム開発[R3春]

 ディジタル補聴器の設計に関する次の記述を読んで,設問1〜3に答えよ。

 H社は,ディジタル補聴器を開発している会社である。開発するディジタル補聴器(以下,新補聴器という)は,ソフトウェアでの信号処理によって,入力された音を八つの周波数帯(以下,それぞれを帯域という)に分割し,帯域ごとの音量設定ができる。さらに,入力された音の大きさに応じて自動的に音量の調節を行う自動音量調節(以下,AVCという)の機能がある。想定される利用者は,特定の帯域の音が聞き取りにくい人などである。入力された音の帯域への分割を図1に示す。

f:id:trhnmr:20210421072755j:plain

図1 入力された音の帯域への分割

 利用者は,スマートフォンのアプリケーションプログラム(以下,スマホアプリという)を使用して,帯域ごとの音量設定に必要な各種パラメタ(音量パラメタなど)を変更する。

 

〔ハードウェア構成〕
 新補聴器のハードウェア構成を図2に示す。

f:id:trhnmr:20210421072806j:plain

図2 新補聴器のハードウェア構成

・BTモジュールは,Bluetoothを介してスマホアプリと通信する。

・ADCは,マイクから入力されたアナログ信号を,1秒間に24,000回サンプリングし,16ビットの符号付き整数のデータに変換して入力バッファに書き込む。64サンプルのデータを1フレームとして書き込み,書込みが完了したことを制御部に通知する。この通知を受信完了通知という。

・制御部は,受信完了通知を受けると1フレーム分のデータを処理して出力バッファに書き込む。演算は全て整数演算であり,浮動小数点演算は使用しない。

・DACは,出力バッファに書き込まれた16ビットの符号付き整数のデータをアナログ信号に変換する。

・低速クロック部は,ADC及びDACに24kHzのサンプリングクロックを供給する。

・高速クロック部は,制御部に高速クロックを供給する。高速クロックの周波数はf0又はその整数倍で,ソフトウェアによって決定することができる。

 

入力バッファ及び出力バッファ
 入力バッファ及び出力バッファは,それぞれ三つのブロックで構成されている。一つのブロックには1フレーム分のデータを格納できる。入カバッファ及び出カバッファのサイズはともに  a  バイトである。
 ADC及びDACは,入力バッファ及び出力バッファの同じブロック番号のブロックにアクセスする。制御部は,ADCによるデータの書込みが完了したブロックにアクセスする。ADC,DAC及び制御部は,ブロック3にアクセスした後,ブロック1のアクセスに戻る。
 バッファの使用例を図3に示す。(1)ADC及びDACがブロック1にアクセスしているとき,制御部はブロック3にアクセスする。次に,(2)ADC及びDACがブロック2にアクセスしているとき,制御部はブロック1にアクセスする。

f:id:trhnmr:20210421072816j:plain

図3 バッファの使用例

 マイクからのアナログ信号がADCで処理されてから,イヤホンから出力されるまでの時間は  b  ミリ秒になる。

 

新補聴器のソフトウェア
 制御部のソフトウェアの主な処理内容は,①信号処理,②合成,③AVCである。制御部が受信完了通知を受けると,次に示すように処理を行う。

① サンプリングしたデータから一つの帯域を抽出し,帯域に割り当てられた音量パラメタを乗じる。これを八つの帯域に対して行う。

② ①で得られたそれぞれの帯域のディジタル信号を合成して一つのディジタル信号にする。

③ 合成されたディジタル信号について,AVCで音量を調節して,出力バッファに書き込む。

 

 新補聴器の消費電力をできるだけ抑えたい。新補聴器では,消費電力は供給される高速クロックの周波数に比例し,ソフトウェアの実行時間(以下,実行時間という)は高速クロックの周波数に反比例することが分かっている。  最適なクロック周波数を決定するために,高速クロックの周波数を用いて,O〜3の実行時間を計測した。  1フレーム分のデータを処理するとき,①の一つの帯域の最大実行時間をTf,②の最大実行時間をTs,③の最大実行時間をTaとしたとき,1フレーム分のデータを処理する最大実行時間Tdは,8×  c  +  d  +  e  で表すことができる。  受信完了通知から次の受信完了通知までの時間をTframeとし,高速クロックとして周波数fを供給したときの各処理の実行時間を表1に示す。①〜③の全ての処理がTframe内に完了し,かつ,消費電力が最も抑えられる周波数について,表1を基に決定する。

表1 高速クロックとして周波数f0を供給したときの各処理の実行時間

処理 実行時間
①の一つの帯域の処理 Tf=0.30×Tframe
②の処理 Ts=0.05×Tframe
③の処理 Ta=0.20×Tframe

 

〔AVC処理〕
 〔新補聴器のソフトウェア〕の3の処理は,1フレームごとに実行し,適切な音声を出力するように音量を調節する。合成されたディジタル信号の大きさを確認して所定の大きさよりも大きいときは音量を小さくし,所定の大きさよりも小さいときは音量を大きくする。
 音量を変更するときは1フレームごとに音量を変化させ,M又はM+1フレーム間で徐々に目標の音量にする。Mは2以上の値でシステムの定数である。目標の音量に到達したら,その次のフレームの合成された信号について目標の音量を決定し,同様の音量調節を行う。

 

AVC処理のソフトウェア
 AVCの処理フローで使用する変数,関数,定数を表2に,AVCの処理フローを図4に示す。特定の条件では,目標の音量を決定したとき,直ちに音量を目標の音量にする。そのための判定を網掛けした判定部で行っている。演算は全て整数演算である。

表2 AVCの処理フローで使用する変数,関数,定数

変数・関数・定数 形式 機能など
dv 静的変数 音量のフレームごとの変化分であり,初期値は0
v 静的変数 現在の音量であり,初期値は利用者の設定した値
vt 静的変数 AVCの目標の音量
p 動的変数 合成されたディジタル信号の大きさ
getPower() 関数 合成されたディジタル信号の大きさを算出
getTarget(p) 関数 合成されたディジタル信号の大きさ(p)から目標の音量を算出
M 定数 目標の音量に変化させるフレーム数であり,2以上の値の定数

f:id:trhnmr:20210421072828j:plain

図4 AVCの処理フロー

出典:令和3年度春期 問7

設問1 入力バッファ及び出力バッファについて,(1),(2)に答えよ。

(1)本文中の  a  に入れる適切な数値を答えよ。

 

解答・解説
解答例

 384

解説
準備中

 

 

(2)本文中の  b  に入れる適切な数値を答えよ。答えは小数第2位を四捨五入して,小数第1位まで求めよ。ここで,ADCの変換時間及びDACの変換時間は無視できるものとする。

 

解答・解説
解答例

 8.0

解説
準備中

 

 

設問2 新補聴器のソフトウェアについて,(1),(2)に答えよ。

(1)本文中の  c    e  に入れる適切な字句を答えよ。

 

解答・解説
解答例

 c:Tf d:Ts e:Ta (順不同)

解説
準備中

 

 

(2)決定した高速クロックの周波数はの何倍か。適切な数値を整数で答えよ。

 

解答・解説
解答例

 3

解説
準備中

 

 

設問3 AVC処理のソフトウェアについて,(1),(2)に答えよ。

(1)図4中の  ア    ウ  に入れる適切な字句を答えよ。

 

解答・解説
解答例

 ア:dv > 0 and v ≧ vt イ:vt ウ:0

解説
準備中

 

 

(2)図4中の網掛けした判定部において,判定結果が“Yes”となるのは,音量がどのような場合か。40字以内で述べよ。

 

解答・解説
解答例

 現在の音量が目標値に近く,変化量が0となり音量を変更する必要がない場合

解説
準備中

 

 

IPA公開情報

出題趣旨

 補聴器は,ディジタル化が進み,入力された音を複数の周波数帯域に分割し,周波数帯域ごとに音量設定が可能な製品が販売されている。周波数帯域に分割するフィルタには論理演算だけで実現できるディジタルフィルタが使われている。また,各種設定をスマートフォンから行うことができる製品もある。
 本問では,ディジタル補聴器を題材として,使用するバッファのサイズ,音声が入力されてから出力されるまでの遅延時間の計算,処理能力と消費電力を考慮した最適な動作クロック周波数の決定,及び自動音量調節のアルゴリズムについての設計・実装に関する能力を問う。

採点講評

 問7では,ディジタル補聴器を題材に,ディジタル補聴器の構成,性能と消費電力及び自動音量調節機能について出題した。全体として正答率は平均的であった。
 設問1(1)は,正答率が低かった。全体のバッファ長について問うたが,バッファを構成するブロック長を答えている解答が散見された。仕様書からバッファ長を決定するのは設計の基本なので,理解してほしい。
 設問2(1)は,正答率が高く,式の意味を正しく理解できていることがうかがえた。組込みシステム開発において,消費電力と性能はトレードオフの関係にあり,これらを同時に満足させる最適解を決定することが重要である。
 設問3(2)は,正答率が低かった。判定部の式の意味について問うたが,式をそのまま記述しただけの解答が散見された。式の意味を正しく理解することは,ソフトフェアの挙動を理解することである。ソフトウェアの設計において必須なので,是非理解してほしい。