PIC32 注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ
ナルの英語版をご参照願います。
PIC32 向け
サンプリング レート変換
ライブラリ ユーザガイド
 2013 Microchip Technology Inc.
DS61190A_JP
Microchip 社製デバイスのコード保護機能に関して次の点にご注意ください。
•
Microchip 社製品は、該当する Microchip 社データシートに記載の仕様を満たしています。
•
Microchip 社では、通常の条件ならびに仕様に従って使用した場合、Microchip 社製品のセキュリティ レベルは、現在市場に流
通している同種製品の中でも最も高度であると考えています。
•
しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、
Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります。このような行為は知的所
有権の侵害に該当する可能性が非常に高いと言えます。
•
Microchip 社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。
•
Microchip 社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保護
機能とは、Microchip 社が製品を「解読不能」として保証するものではありません。
コード保護機能は常に進歩しています。Microchip 社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip 社
のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著
本書に記載されているデバイス アプリケーション等に関する
情報は、ユーザの便宜のためにのみ提供されているものであ
り、更新によって無効とされる事があります。お客様のアプ
リケーションが仕様を満たす事を保証する責任は、お客様に
あります。Microchip 社は、明示的、暗黙的、書面、口頭、法
定のいずれであるかを問わず、本書に記載されている情報に
関して、状態、品質、性能、商品性、特定目的への適合性を
は じ め と す る、い か な る 類 の 表 明 も 保 証 も 行 い ま せ ん。
Microchip 社は、本書の情報およびその使用に起因する一切の
責任を否認します。Microchip 社の明示的な書面による承認な
しに、生命維持装置あるいは生命安全用途に Microchip 社の製
品を使用する事は全て購入者のリスクとし、また購入者はこ
れによって発生したあらゆる損害、クレーム、訴訟、費用に
関して、Microchip 社は擁護され、免責され、損害をうけない
事に同意するものとします。暗黙的あるいは明示的を問わず、
Microchip社が知的財産権を保有しているライセンスは一切譲
渡されません。
商標
Microchip 社の名称と Microchip ロゴ、dsPIC、FlashFlex、
KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、
PIC32 ロゴ、rfPIC、SST、SST ロゴ、SuperFlash、UNI/O は、
米 国お よ びそ の 他の 国 にお け る Microchip
Technology
Incorporated の登録商標です。
FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、
MTP、SEEVAL、Embedded Control Solutions Company は、
米国における Microchip Technology Incorporated の登録商標
です。
Silicon Storage Technology は、
その他の国における Microchip
Technology Incorporated の登録商標です。
Analog-for-the-Digital Age、Application Maestro、BodyCom、
chipKIT、chipKIT ロゴ、CodeGuard、dsPICDEM、dsPICDEM.net、
dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、
HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、
MPASM、MPF、MPLAB 認証ロゴ、MPLIB、MPLINK、mTouch、
Omniscient Code Generation、PICC、PICC-18、PICDEM、
PICDEM.net、PICkit、PICtail、REAL ICE、rfLAB、Select Mode、
SQI、Serial Quad I/O、Total Endurance、TSHARC、UniWinDriver、
WiperLock、ZENA、Z-Scale は、米国およびその他の国におけ
る Microchip Technology Incorporated の登録商標です。
SQTP は、米国における Microchip Technology Incorporated
のサービスマークです。
GestICとULPPは、その他の国におけるMicrochip Technology
Germany II GmbH & Co. & KG (Microchip Technology
Incorporated の子会社 ) の登録商標です。
その他、本書に記載されている商標は各社に帰属します。
©2013, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
ISBN: 978-1-62077-542-4
QUALITY MANAGEMENT SYSTEM
CERTIFIED BY DNV
== ISO/TS 16949 ==
DS61190A_JP - p. 2
Microchip 社では、Chandler および Tempe ( アリゾナ州 )、Gresham
( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォ
ルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を
取得しています。Microchip 社の品質システム プロセスおよび手順は、
PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイ
ス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、ア
ナログ製品に採用されています。さらに、開発システムの設計と製造
に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得し
ています。
 2013 Microchip Technology Inc.
PIC32 向けサンプリング レート変換
ライブラリ ユーザガイド
目次
第1章
はじめに
1.1
第2章
第3章
1.1 アルゴリズムの概要 ................................................................. 9
インストール
2.1
2.1 インストール手順 ................................................................... 13
2.2
2.2 リソース使用量 ....................................................................... 14
2.3
2.3 Audacity オーディオ編集ツールの使い方 ............................... 16
API (Application Programming Interface)
3.1
3.1 サンプリング レート変換ライブラリの API 関数 ................... 18
 2013 Microchip Technology Inc.
DS61190A_JP - p. 3
PIC32 向けサンプリング レート変換ライブラリ ユーザガイド
NOTE:
DS61190A_JP - p. 4
 2013 Microchip Technology Inc.
PIC32 向けサンプリング レート変換
ライブラリ ユーザガイド
序章
注意
全ての文書の内容は時間と共に古くなります。本書も例外ではありません。Microchip 社のツール
とマニュアルは、お客様のニーズを満たすために常に改良を重ねており、実際のダイアログやツー
ル の 内 容 が 本 書 の 説 明 と は 異 な る 場 合 が あ り ま す。最 新 の 文 書 は 弊 社 ウ ェ ブ サ イ ト
(www.microchip.com) でご覧になれます。
文書は「DS」番号によって識別されます。この識別番号は、各ページのフッタのページ番号の前に
記載しています。DS 番号「DSXXXXXA」の「XXXXX」は文書番号、「A」は文書のリビジョン レ
ベルを表します。
開発ツールの最新情報は、MPLAB® IDE のオンラインヘルプでご覧になれます。[Help] メニューか
ら [Topics] を選択すると、オンラインヘルプ ファイルのリストが表示されます。
はじめに
序章には、PIC32 向けサンプリング レート変換ライブラリを使い始める前に知って
おくと便利な一般情報を記載しています。主な内容は下記の通りです。
• 本書の構成
• 本書の表記規則
• 保証登録
• 推奨参考資料
• Microchip 社のウェブサイト
• 開発システムの顧客変更通知サービス
• カスタマサポート
• 改訂履歴
本書の構成
本書では、PIC32 向けサンプリング レート変換ライブラリの使い方について説明しま
す。本書の構成は下記の通りです。
• 第 1 章「はじめに」- SRC ライブラリの概要
• 第 2 章「インストール」- SRC ライブラリのインストール手順
• 第 3 章「API (Application Programming Interface)」- SRC ライブラリが提供する
API 関数の使い方
 2013 Microchip Technology Inc.
DS61190A_JP - p. 5
PIC32 向けサンプリング レート変換ライブラリ ユーザガイド
本書の表記規則
本書には下記の表記規則を適用します。
本書の表記規則
概要
意味
例
二重かぎカッコ
参考資料
太字
テキストの強調
... は唯一のコンパイラです ...
角カッコ : [ ]
ウィンドウ名
[Output] ウィンドウ
ダイアログ名
[Settings] ダイアログ
メニューの選択肢
かぎカッコ : 「 」
ウィンドウまたはダイアログの
フィールド名
右山カッコ (>) で区切った下
線付き斜体テキスト
メニュー項目の選択
『MPLAB® IDE ユーザガイド』
[Enable Programmer] を選択
「Save project before build」
File>Save
角カッコで囲んだ太字のテキ ダイアログのボタン
スト
タブ
[OK] をクリックする
山カッコ (< >) で囲んだテキ
スト
キーボードのキー
<Enter>、<F1> を押す
標準書体の Courier New
サンプル ソースコード
#define START
ファイル名
autoexec.bat
ファイルパス
c:\mcc18\h
キーワード
_asm, _endasm, static
コマンドライン オプション
-Opa+, -Opa-
ビット値
0, 1
定数
0xFF, ‘A’
変数の引数
file.o (file は有効な任意のファ
斜体の Courier New
[Power] タブをクリックする
イル名 )
角カッコ : [ ]
オプションの引数
mcc18 [options] file
[options]
中カッコとパイプ文字 :
文字 :{ | }
いずれかの引数を選択する場合
(OR 選択 )
errorlevel {0|1}
繰り返されるテキスト
var_name [, var_name...]
ユーザが定義するコード
void main (void)
{ ...
}
...
Note
特に間違いやすい内容や、デバイ
スの種類によって動作が異なる場
合等、読者に注意を促すための情
報を記載します。Note は、枠で
囲んで本文中に記載する場合と、
図または表の下に記載する場合が
あります。
Note: これは標準的な Note ボック
スです。
CAUTION
これは警告を示す Note です。
Note 1:
DS61190A_JP - p. 6
これは表内の Note です。
 2013 Microchip Technology Inc.
序章
保証登録
同封の保証登録カードにご記入の上、お早めに郵送してください。折り返し、製品の
アップデート情報をお届けします。ソフトウェアのマイナーリリースは弊社ウェブサ
イトで提供しております。
推奨参考資料
本書には、PIC32 向けサンプリング レート変換ライブラリの使い方を記載していま
す。参考資料として、Microchip 社が提供する下記の文書を推奨します。
PIC32 ファミリ リファレンス マニュアル ( 複数セクションに分冊 )
PIC32 ファミリ リファレンス マニュアルの各セクションには、PIC32 デバイスファ
ミリのアーキテクチャと周辺モジュールの動作に関する説明を記載しています。デバ
イスファミリごとの仕様は、各ファミリのデータシートに記載しています。
PIC32 向け MPLAB® C コンパイラ ユーザガイド (DS51686)
このユーザガイドには、PIC32 マイクロコントローラを使った 32 ビット アプリケー
ション開発における Microchip 社製 MPLAB C コンパイラの詳細な使い方を記載して
います。
MPLAB® IDE ユーザガイド (DS51519)
このユーザガイドには、MPLAB IDE ソフトウェアと付属の MPLAB エディタおよび
MPLAB SIM シミュレータ ソフトウェアのインストールと実装に関する情報を記載し
ています。
Microchip 社のウェブサイト
Microchip 社は、自社が運営するウェブサイト (www.microchip.com) を通してオンラ
イン サポートを提供しています。当ウェブサイトでは、お客様に役立つ情報やファイ
ルを簡単に見つけ出せます。一般的なインターネット ブラウザを使って下記の内容を
ご覧になれます。
• 製品サポート - データシートとエラッタ、アプリケーション ノート、サンプルコー
ド、設計リソース、ユーザガイドとハードウェア サポート文書、最新ソフトウェア
リリース、ソフトウェア アーカイブ
• 一般的技術サポート - よく寄せられる質問 (FAQ)、技術サポートのご依頼、オンラ
イン ディスカッション グループ、Microchip 社のコンサルタント プログラムおよび
メンバーリスト
• ご注文とお問い合わせ - 製品セレクタと注文ガイド、最新プレスリリース、セミナー
/ イベントの一覧、お問い合わせ先 ( 営業所 / 販売代理店 / 工場 ) の一覧
 2013 Microchip Technology Inc.
DS61190A_JP - p. 7
PIC32 向けサンプリング レート変換ライブラリ ユーザガイド
開発システムの顧客変更通知サービス
Microchip 社の顧客変更通知サービスは、お客様に Microchip 社製品の最新情報をお
届けする配信サービスです。ご興味のある製品ファミリまたは開発ツールに関連する
変更、更新、エラッタ情報をいち早くメールでお知らせします。
Microchip 社のウェブサイト (www.microchip.com) にアクセスし、
「設計サポート」メ
ニュー内の「製品変更のお知らせ」からご登録ください。
開発システム製品のグループ カテゴリは、以下の通りです。
• コンパイラ - Microchip 社の C コンパイラとその他の言語ツール (MPLAB® C コン
パイラ、MPASM™ および MPLAB 16 ビット アセンブラ、MPLINK™ および MPLAB
16 ビット オブジェクトリンカ、MPLIB™ および MPLAB 16 ビット オブジェクト ラ
イブラリ等 ) の最新情報
• エミュレータ - Microchip 社製インサーキット エミュレータ MPLAB REAL ICE™ の
最新情報
• インサーキット デバッガ - Microchip 社製インサーキットデバッガ MPLAB ICD 3 の
最新情報
• MPLAB IDE - Microchip 社の MPLAB IDE( 開発システムツール向け Windows® 統合
開発環境 : MPLAB IDE、MPLAB SIM シミュレータ、MPLAB IDE プロジェクト マ
ネージャ、一般的な編集 / デバッグ機能等 ) の最新情報
• プログラマ - Microchip 社製プログラマ (MPLAB PM3 デバイス プログラマと
PICkit™ 3 開発用プログラマを含む ) の最新情報
カスタマサポート
Microchip 社製品をお使いのお客様は、下記のチャンネルからサポートをご利用頂け
ます。
• 代理店または販売担当者
• 各地の営業所
• フィールド アプリケーション エンジニア (FAE)
• 技術サポート
サポートについては代理店、販売担当者、フィールド アプリケーション エンジニア
(FAE) までお問い合わせください。各地の営業所もご利用頂けます。本書の末尾には
各国の営業所の一覧を記載しています。
技術サポートは下記のウェブサイトからもご利用頂けます。
http://www.microchip.com/support
改訂履歴
リビジョン A (2013 年 2 月 )
本書は初版です。
DS61190A_JP - p. 8
 2013 Microchip Technology Inc.
PIC32 向けサンプリング レート変換
ライブラリ ユーザガイド
第 1 章 はじめに
PIC32 向けサンプリング レート変換ライブラリは、リアルタイム RAW ステレオ オー
ディオ データを、特定の標準的オーディオ サンプリング レートに変換する機能を提
供します。ライブラリはストリーミング オーディオ アプリケーション向けに設計さ
れており、特定のサンプリング レートを持つアナログ フロントエンドと一緒に使え
ます。ライブラリは 16 ビットと 24 ビットの入力データ分解能をサポートします。
16 および 24 ビット ライブラリは、下記のモードをサポートします。
• 44.1 kHz から 48 kHz へのアップ サンプリング レート変換
• 32 kHz から 48 kHz へのアップ サンプリング レート変換
24 ビット ライブラリのみ、下記のモードもサポートします。
• 48 kHz から 44.1 kHz へのダウン サンプリング レート変換
1.1
アルゴリズムの概要
SRC アルゴリズムは、リアルタイムの 16 または 24 ビット ステレオ オーディオデー
タ ストリームのサンプリング レートを変換します。SRC 用 API 関数を呼び出すたび
に、16 または 24 ビット ステレオ オーディオ サンプルを格納した長さ 1 ms のフレー
ムを処理します。1 ms の入力オーディオデータは、48 kHz 入力では 48 個のステレオ
サンプルを含み、32 kHz 入力では 32 個のステレオサンプルを含みます。44.1 kHz 入
力の場合、最初の 9 個のフレームは 44 個のステレオサンプルを含み、10 番目のフレー
ムだけ 45 個のステレオサンプルを含みます。出力フレームに含まれるサンプルの個数
は出力サンプリング レートによって決まります。
図 1-1 に SRC アルゴリズムの基本的ブロック図を示します。オーディオデータは、
アップサンプラ ( 補間 ) 段に入力され、アンチエイリアシングのためのローパスフィ
ルタを経て、ダウンサンプラ ( デシメーション ) 段から出力されます。
16 ビットと 24 ビットの SRC ライブラリではサポートする SRC モード ( 変換倍率 )
が異なるため、設計も異なります。16 ビット SRC ライブラリは、最大動作周波数が
40 MHz または 80 MHz の PIC32 デバイス向けに設計されています。24 ビット SRC
ライブラリは、最大動作周波数が 80 MHz の PIC32 デバイス向けに設計されていま
す。利用可能な MIPS には限りがあるため、16 ビット ライブラリと 24 ビット ライ
ブラリでは MIPS と音質はトレードオフの関係にあります。
図 1-1: SRC アルゴリズムのブロック図
Audio
Data In
Upsample
FIR Filter
Downsample
Polynomial
Interpolation
SRC Audio
Data Out
Polyphase Filtering
 2013 Microchip Technology Inc.
DS61190A_JP - p. 9
PIC32 向けサンプリング レート変換ライブラリ ユーザガイド
1.1.1
32 → 48 kHz サンプリング レート変換
入力を 3 倍にアップサンプリングした後に、有限インパルス応答 (FIR) フィルタを
使って信号を平滑化します。平滑化された信号にゲイン係数を適用する事で、ゼロ挿
入による信号ゲインの低下を補償します。この信号を 1/2 にダウンサンプリングする
事で、サンプリング レート 48 kHz の出力オーディオ信号を生成します。ダウンサン
プリングでは、一部のサンプルを間引いて破棄します。それらのサンプルのフィルタ
処理を省略する事で、実行命令サイクル数を大幅に削減できます。これは多相フィル
タ処理法を単純化した形態であり、SRC の処理速度が向上します。このモードの入
力サンプリング レートは 32 kHz であるため、長さ 1 ms の各入力オーディオ フレー
ムは 32 個のステレオサンプルを含む必要があります。このモードの出力サンプリン
グ レートは 48 kHz であるため、各出力オーディオ フレームは 48 個のステレオサン
プルを含みます。
1.1.2
44.1 → 48 kHz サンプリング レート変換
16 ビットライブラリは入力を 2 倍にアップサンプリングし、24 ビットライブラリは
4 倍にアップサンプリングします。各入力サンプルの後にゼロを挿入し、FIR フィル
タを使って信号を平滑化します。平滑化にゲイン係数を適用する事で、ゼロ挿入によ
る信号ゲインの低下を補償します。ダウンサンプリングには多項式補間を使います。
16 ビット ライブラリでは、88.2 kHz にアップサンプリングしたサンプルを 147 個ず
つ 48 kHz (80 個のサンプル ) にダウンサンプリングします。24 ビット ライブラリで
は、176.4 kHz にアップサンプリングしたサンプルを 294 個ずつ 48 kHz (80 個のサン
プル ) にダウンサンプリングします。また、多相フィルタ処理を採用する事で、冗長
なフィルタ処理を削減しています。このモードの入力サンプリング レートは 44.1 kHz
であるため、入力オーディオ フレームの最初の 9 個は 44 個のステレオサンプルを含
み、10 番目のフレームは 45 個のステレオサンプル含む必要があります。このモード
の出力サンプリング レートは 48 kHz であるため、各出力オーディオ フレームは 48 個
のステレオサンプルを含みます。
1.1.3
48 → 44.1 kHz サンプリング レート変換 (24 ビット専用 )
24 ビットライブラリは入力を 4 倍にアップサンプリングし、各サンプルの後にゼロを
挿入した後、FIR フィルタを使って信号を平滑化します。多項式補間を使って、196 kHz
にアップサンプリングしたサンプルを 640 個ずつ 44.1 kHz (147 個のサンプル ) にダ
ウンサンプリングする事で、出力オーディオデータのサンプリング レートを 44.1 kHz
に変換します。また、多相フィルタ処理を採用する事で、冗長なフィルタ処理を削減
しています。このモードの入力サンプリング レートは 48 kHz であるため、各入力
オーディオ フレームは 48 個のステレオサンプルを含む必要があります。このモード
の出力サンプリング レートは 44.1 kHz であるため、出力オーディオ フレームの最初
の 9 個は 44 個のステレオサンプルを含み、10 番目のフレームは 45 個のステレオサ
ンプルを含みます。
1.1.4
入力 FIR フィルタの設計
32 kHz 入力モードの場合、エイリアシング効果を抑制するために非常に急峻な減衰特
性を持つローパスフィルタを使います。カットオフ周波数は、中間サンプリング レー
トの 1/6 よりも低く設定されています。これはナイキスト周波数よりも低いため、ダ
ウンサンプリング時のエイリアシング効果は問題になりません。カットオフ周波数は、
16 ビットおよび 24 ビット ライブラリのどちらでも約 15 kHz です。これは、最初の
阻止帯域ゼロ点が入力のナイキスト周波数をカバーするようカットオフ周波数を調整
してフィルタ設計を最適化する場合に好ましい値です。
16 ビット ライブラリの 44.1 kHz 入力モードのローパスフィルタ カットオフ周波数は、
中間サンプリング レートの 1/4 よりも低い 19.7 kHz に設定されます。24 ビット ライ
ブラリの 44.1 kHz および 48 kHz 入力モードのローパスフィルタ カットオフ周波数は
中間サンプリング レートの 1/8 よりも低い 16 kHz に設定されます。
DS61190A_JP - p. 10
 2013 Microchip Technology Inc.
はじめに
フィルタをより高度に最適化するために、全てのフィルタに対して等リップル設計法
を適用しています。上記の各フィルタの通過帯域リップルは表 2-2、2-3、2-4 に記載
しています。阻止帯域減衰量は、44.1 kHz および 48 kHz 入力モードにおいて -70 dB
未満、32 kHz 入力モードにおいて -100 dB 未満です。FIR フィルタが処理負荷の大半
を占めますが、16 ビットおよび 24 ビット ライブラリのどちらでも、フィルタ設計と
出力音質はトレードオフの関係にあります。トレードオフ関係は、16 ビット ライブ
ラリよりも 24 ビット ライブラリで顕著となります。これは、より高いデータ分解能
を処理するために、32 ビット PIC32 デバイスで実行する中間処理の命令サイクル数
が増加するためです。
 2013 Microchip Technology Inc.
DS61190A_JP - p. 11
PIC32 向けサンプリング レート変換ライブラリ ユーザガイド
NOTE:
DS61190A_JP - p. 12
 2013 Microchip Technology Inc.
PIC32 向けサンプリング レート変換
ライブラリ ユーザガイド
第 2 章 インストール
本章では、PIC32 向けサンプリング レート変換ライブラリのインストール手順と、リ
ソース使用量について説明します。
この章の主な内容は下記の通りです。
• インストール手順
• リソース使用量
• Audacity オーディオ編集ツールの使い方
2.1
インストール手順
SRC ライブラリはサンプリング レート変換関連のウェブページ (www.microchip.com/SRC)
からダウンロードできます。ダウンロードしたファイルを解凍してインストーラを実
行し、パスを指定してライブラリをインストールします。24 ビット SRC ライブラリ
と 16 ビット SRC ライブラリのインストールには、別々のインストーラを使います。
下記の手順でアプリケーションにライブラリを追加します。
1. アプリケーションの MPLABワークスペースで、
「Project」ウィンドウ内の[Library
Files] を右クリックし、[Add files] を選択する。
2. アーカイブ ファイルのパス ( インストール ディレクトリ内の「libs」フォルダ )
をブラウザで指定し、下記ファイルのいずれか 1 つを選択する。
• libSRC_LITE_44_1KHz_to_48KHz_v1_0.a (24 ビット ライブラリ )
• libSRC_LITE_32KHz_to_48KHz_v1_0.a (24 ビット ライブラリ )
• libSRC_LITE_48KHz_to_44_1KHz_v1_0.a (24 ビット ライブラリ )
• libSRC_LITE_PIC32_v1_0.a (16 ビット ライブラリ )
• libSRC_FULL_PIC32_v1_0.a (16 ビット ライブラリ )
3. ファイルを選択してから [Open] をクリックすると、その SRC ライブラリがアプ
リケーションに追加される。
 2013 Microchip Technology Inc.
DS61190A_JP - p. 13
PIC32 向けサンプリング レート変換ライブラリ ユーザガイド
2.2
リソース使用量
2.2.1
16 ビット ライブラリの各 SRC モードにおける音質 (SNR) とリ
ソース使用量
表 2-1 に、16 ビット ライブラリの各 SRC モードにおける性能 (SNR) とリソース使
用量を示します。
表 2-1: 16 ビット SRC モードの音質 (SNR) とリソース使用量
SRCライブラリ
バージョン
Lite バージョン
フルバージョン
Note 1:
2.2.2
SRC モード
MIPS
コードサイズ
( バイト )
データサイズ
( バイト )
SNR (dB)(1)
5684
1284
82
5760
1364
84
32 kH → 48 kHz
27.4
44.1 kHz → 48 kHz
30.1
32 kH → 48 kHz
33.5
44.1 kHz → 48 kHz
36.7
82
82
1 kHz のフルスケール正弦波信号を使って評価
24 ビット ライブラリの各 SRC モードにおける音質 (THDN) とリ
ソース使用量
表 2-2、表 2-3、表 2-4 に 24 ビット ライブラリの各 SRC モードにおける MIPS、プ
ログラムメモリ、データメモリ使用量と、オーディオ帯域内の各信号周波数における
全高調波歪み (THDN) を示します。
Note:
24 ビット SRC ライブラリでは利用可能な MIPS に限りがあるため、MIPS
と音質はトレードオフの関係にあります。
表 2-2: 24 ビット 48 kHz → 44.1 kHz サンプリング レート変換の音質 (THDN) と
リソース使用量
リソース
通過帯域リップル < ±1.5 dB
MIPS = 57
プログラムメモリ = 5916 byte
データメモリ = 6976 byte
トーン周波数 (Hz)
THDN (dBFS)
100
-70
1k
-73
5k
-70
10k
-71
12k
-70
15k
-71
表 2-3: 24 ビット 44.1 kHz → 48 kHz サンプリング レート変換の音質 (THDN) と
リソース使用量
リソース
通過帯域リップル < ±2 dB
MIPS = 61
プログラムメモリ = 5984 byte
データメモリ = 6612 byte
DS61190A_JP - p. 14
トーン周波数 (Hz)
THDN (dBFS)
100
-75
1k
-70
5k
-70
10k
-76
12k
-69
15k
-69
 2013 Microchip Technology Inc.
インストール
表 2-4: 24 ビット 32 kHz → 48 kHz サンプリング レート変換の音質 (THDN) とリ
ソース使用量
リソース
通過帯域リップル < ±0.2 dB
MIPS = 53
プログラムメモリ = 2608 byte
データメモリ = 3328 byte
Note 1:
 2013 Microchip Technology Inc.
トーン周波数 (Hz)
THDN (dBFS)
100
-104
1k
-104
5k
-110
10k
-115
12k
-105
15k
-105
試験には 24 ビットのステレオ オーディオトーンを使いました。
2:
リソース使用量は、XC32 コンパイラ (v1.20) を使った場合の値です。
3:
ライブラリのコンパイルには 32 ビット命令セット使い、コンパイラの
実行速度最適化オプション ( レベル -O3) を有効にしています。
DS61190A_JP - p. 15
PIC32 向けサンプリング レート変換ライブラリ ユーザガイド
2.3
Audacity オーディオ編集ツールの使い方
SRC ライブラリは、RAW ステレオ オーディオ サンプルのオーディオ ストリームを
リアルタイムに処理します。しかし、ライブラリを非リアルタイムに解析する必要が
ある場合、Audacity オーディオ編集ツールを使って .RAW オーディオ ファイルを作成
および解析できます。Audacity オーディオ編集ツールを使うと、高音質オーディオ ス
トリームを編集、作成、解析できます。
Audacity オーディオ編集ツールの使い方は以下の通りです。
1. 下記から Audacity オーディオ編集ツールをダウンロードしてインストールする。
http://audacity.sourceforge.net/
2. .RAW オーディオ ファイルを作成する。
Note: 下記リンク (Track Drop-Down Menu) のチュートリアル を参照してくださ
い。
http://manual.audacityteam.org/man/Track_Drop-Down_Menu
a) Audacity にオーディオ ファイルをインポートする。
b) インポートしたオーディオがステレオ オーディオである事を確認する。ステ
レオではない場合、片方のチャンネルのオーディオ信号を他方のチャンネル
にコピーする (Track > Make Stereo Track)。
c) Track > Set Sample Format > 24-bit PCM を選択する。
d) File > Export を選択する。
e) Save as Type > Other uncompressed files を選択する。
f) [Options] をクリックし、Header > RAW (header-less) を選択する。
g) Encoding > Signed 32-bit PCM を選択する。
h) ファイル名を入力し、[Save] をクリックする。
3. .RAW オーディオ ファイルをインポートする。
a) File> Import > Raw Data を選択する。
b) ブラウザでファイルを選択し、[Open] をクリックする。
c) Encoding > Signed 32-bit PCM を選択する。
d) Byte Order > Little-endian を選択する。
e) Channels > 2 Channels (Stereo) を選択する。
f) 「Sample Rate」テキストボックスにサンプリング レートを入力する。
g) [Import] をクリックする。
h) インポートしたオーディオ ファイルを再生または解析する。
DS61190A_JP - p. 16
 2013 Microchip Technology Inc.
PIC32 向けサンプリング レート変換
ライブラリ ユーザガイド
第 3 章 API (Application Programming Interface)
この章では、PIC32 向けサンプリング レート変換ライブラリの API (Application
Programming Interface) について説明します。
SRC ライブラリの API 関数は簡単に使えます。API 関数のプロトタイプ宣言、使用
するステートバッファ、SRC モード用に使うバッファのサイズは、ライブラリ バー
ジョン別のヘッダファイルに記述されています。アーカイブ ファイルは、プロジェク
ト ワークスペース内で使うライブラリ ファイルです。例 3-1 と例 3-2 に、それぞれ
16 ビットおよび 24 ビット SRC ライブラリのヘッダファイルとアーカイブ ファイル
のリストを示します。
例 3-1: 16 ビットライブラリのヘッダファイルとアーカイブ ファイル
|
|----- h
|
|
|
|
|----- libs
|
|
src_api.h
(header file for SRC APIs)
libSRC_x_y_v1_0.a (SRC library archive)
24 ビット SRC ライブラリは、変換モードごとに別々のファイルに分割されています。
実際に使用する変換モードのファイルだけをインクルードする事で、SRC のプログ
ラムメモリ使用量を最小限に抑える事ができます。
例 3-2: 24 ビットライブラリのヘッダファイルとアーカイブ ファイル
|
|--------h
|
|
src_api_LITE_44_1KHz_to_48KHz.h
|
src_api_LITE_32KHz_to_48KHz.h
|
src_api_LITE_48KHz_to_44_1KHz.h
|
|--------libs
|
|
libSRC_LITE_44_1KHz_to_48KHz_v1_0.a
|
libSRC_LITE_32KHz_to_48KHz_v1_0.a
|
libSRC_LITE_48KHz_to_44_1KHz_v1_0.a
 2013 Microchip Technology Inc.
DS61190A_JP - p. 17
PIC32 向けサンプリング レート変換ライブラリ ユーザガイド
3.1
サンプリング レート変換ライブラリの API 関数
3.1.1
16 ビット ライブラリの API 関数
以下では、16 ビット SRC ライブラリ用の 2 つの API 関数について説明します。
SRC_init()
概要
API 関数 SRC_init() は変換モードを設定し、SRC ライブラリに必要なローカル ス
テートバッファを初期化します。SRC ステートバッファはバッファポインタ、フィ
ルタに必要な分割バッファ、多項式補間用のバッファを格納します。
プロトタイプ
void SRC_init(int* ptrSRC_state, int cd_flag);
引数
ptrSRC_state SRC ライブラリのこのインスタンス向けのステートメモリを指す
ポインタ
cd_flag
SRC_32KHZ_TO_48KHZ - 32 kHz → 48 kHz 変換モード
SRC_44_1KHZ_TO_48KHZ - 44.1 kHz → 48 kHz 変換モード
例
#define CD_FLAG SRC_32KHZ_TO_48KHZ
.
.
.
int srcStateMem[SRC_STATE_MEM_SIZE_INT];
.
.
.
SRC_init(srcStateMem, CD_FLAG);
DS61190A_JP - p. 18
 2013 Microchip Technology Inc.
API (Application Programming Interface)
SRC_apply()
概要
API 関数 SRC_apply() を呼び出す事で、1 フレーム (1 ms) の入力オーディオ信号に
対してサンプリング レート変換を実行します。この API は入力バッファ、出力バッ
ファ、SRC ステートを指す各ポインタと、入力オーディオ バッファのサイズを引数
とします。入力オーディオ データバッファのサイズは、入力サンプリング レートが
32 kHz の場合は 64、入力サンプリング レートが 44.1 kHz の場合は 88 または 90 です。
プロトタイプ
int SRC_apply(int* ptrSRC_state, short* Sin, short* Sout,
int readCount);
引数
ptrSRC_state
SRC のこのインスタンスのステートメモリを指すポインタ
Sin
入力オーディオ信号に対応したサイズ SRC_IN_PROC_SIZE を持
つ入力バッファを指すポインタ
Sout
サイズ SRC_OUT_PROC_SIZE の出力バッファを指すポインタ
readCount
入力バッファから読み出すサンプルの個数 ( 左右チャンネルのサ
ンプルの合計数 )
例
#define CD_FLAG SRC_32KHZ_TO_48KHZ
.
.
.
short
Sin[SRC_IN_PROC_SIZE];
short
Sout[SRC_OUT_PROC_SIZE];
int
srcStateMem[SRC_STATE_MEM_SIZE_INT];
int
read_count;
int
write_count;
.
.
.
read_count = 64;
.
.
.
SRC_init(srcStateMem, CD_FLAG);
.
.
.
write_count = SRC_apply(srcStateMem, Sin, Sout, read_count);
 2013 Microchip Technology Inc.
DS61190A_JP - p. 19
PIC32 向けサンプリング レート変換ライブラリ ユーザガイド
3.1.2
24 ビット ライブラリの API 関数
24 ビット SRC ライブラリは、変換モードごとに別々のファイルに分割されています。
実際に使用する変換モードのファイルだけをインクルードする事で、SRC のプログ
ラムメモリ使用量を最小限に抑える事ができます。
SRC_init_x()
概要
API 関数 SRC_init_x() は実行する変換モードを設定し、24 ビット SRC ライブラリ
に必要なローカル ステートバッファを初期化します。SRC ステートバッファは、バッ
ファポインタ、フィルタに必要な分割バッファ、多項式補間用のバッファを格納しま
す。
プロトタイプ
void SRC_init_44_1KHz_to_48KHz(int* ptrSRC_state);
void SRC_init_32KHz_to_48KHz(int* ptrSRC_state);
void SRC_init_48KHz_to_44_1KHz(int* ptrSRC_state);
引数
ptrSRC_state
SRC のこのインスタンスのステートメモリを指すポインタ
例
int srcStateMem[SRC_STATE_MEM_SIZE_INT];
.
.
.
SRC_init_44_1KHz_to_48KHz(srcStateMem);
DS61190A_JP - p. 20
 2013 Microchip Technology Inc.
API (Application Programming Interface)
SRC_apply_x()
概要
API 関数 SRC_apply_x() を呼び出す事で、1 フレーム (1 ms) の 24 ビット入力オー
ディオ信号に対してサンプリング レート変換を実行します。この API は、非圧縮ス
テレオ オーディオ データの入力バッファ、非圧縮ステレオ オーディオ データを格納
する出力バッファ、SRC ステートバッファを指す各ポインタと、入力オーディオ バッ
ファのサイズを引数とします。入力オーディオ データバッファのサイズは、入力サン
プリング レートが 32 kHz の場合は 32、入力サンプリング レートが 48 kHz の場合は
48、入力サンプリング レートが 44.1 kHz の場合は 44 または 45 です。出力オーディ
オ データバッファのサイズは、出力サンプリング レートが 32 kHz の場合は 32、出
力サンプリング レートが 48 kHz の場合は 48、出力サンプリング レートが 44.1 kHz
の場合は 44 または 45 です。
Note:
24 ビット ライブラリの場合、readCount はステレオサンプルの個数を表
します。これとは異なり、16 ビット ライブラリの readCount は、左右
チャンネルのサンプルを合計した個数を表します。
プロトタイプ
int
int
int
SRC_apply_44_1KHz_to_48KHz(int* ptrSRC_state,
AudioStereo32b* Sin,
AudioStereo32b* Sout,
int readCount);
SRC_apply_32KHz_to_48KHz(int* ptrSRC_state,
AudioStereo32b* Sin,
AudioStereo32b* Sout,
int readCount);
SRC_apply_48KHz_to_44_1KHz(int* ptrSRC_state,
AudioStereo32b* Sin,
AudioStereo32b* Sout,
int readCount);
引数
ptrSRC_state
SRC のこのインスタンスのステートメモリを指すポインタ
Sin
AudioStereo32b 入力ステレオ オーディオ データバッファを指す
ポインタ (AudioStereo32b のデータ型は、2 つの 32 ビット メン
バー ( 左チャンネルと右チャンネルのオーディオデータ ) から成
る構造体です )
Sout
AudioStereo32b 出力ステレオ オーディオ データバッファを指す
ポインタ
readCount
入力バッファから読み出すステレオサンプルの個数
 2013 Microchip Technology Inc.
DS61190A_JP - p. 21
PIC32 向けサンプリング レート変換ライブラリ ユーザガイド
例
AudioStereo32b Sin[SRC_IN_PROC_SIZE];
AudioStereo32b Sout[SRC_OUT_PROC_SIZE];
srcStateMem[SRC_STATE_MEM_SIZE_INT];
int
read_count;
int
int
write_count;
.
.
.
read_count = 32;
.
.
.
SRC_init_44_1KHz_to_48KHz(srcStateMem);
.
.
.
write_count = SRC_apply _44_1KHz_to_48KHz(srcStateMem, Sin, Sout,
read_count);
DS61190A_JP - p. 22
 2013 Microchip Technology Inc.
NOTE:
 2013 Microchip Technology Inc.
DS61190A_JP - p. 23
各国の営業所とサービス
北米
アジア / 太平洋
アジア / 太平洋
ヨーロッパ
本社
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel:480-792-7200
Fax:480-792-7277
技術サポート :
http://www.microchip.com/
support
URL:
www.microchip.com
アジア太平洋支社
Suites 3707-14, 37th Floor
Tower 6, The Gateway
Harbour City, Kowloon
Hong Kong
Tel:852-2401-1200
Fax:852-2401-3431
インド - バンガロール
Tel:91-80-3090-4444
Fax:91-80-3090-4123
オーストリア - ヴェルス
Tel:43-7242-2244-39
インド - ニューデリー
Tel:91-11-4160-8631
Fax:91-11-4160-8632
デンマーク - コペンハーゲン
Tel:45-4450-2828
Fax:45-4485-2829
インド - プネ
Tel:91-20-3019-1500
フランス - パリ
Tel:33-1-69-53-63-20
Fax:33-1-69-30-90-79
アトランタ
Duluth, GA
Tel:678-957-9614
Fax:678-957-1455
中国 - 北京
Tel:86-10-8569-7000
Fax:86-10-8528-2104
オーストラリア - シドニー
Tel:61-2-9868-6733
Fax:61-2-9868-6755
オースティン (TX)
Tel:512-257-3370
中国 - 成都
Tel:86-28-8665-5511
Fax:86-28-8665-7889
ボストン
Westborough, MA
Tel:774-760-0087
Fax:774-760-0088
中国 - 重慶
Tel:86-23-8980-9588
Fax:86-23-8980-9500
シカゴ
Itasca, IL
Tel:630-285-0071
Fax:630-285-0075
クリーブランド
Independence, OH
Tel:216-447-0464
Fax:216-447-0643
ダラス
Addison, TX
Tel:972-818-7423
Fax:972-818-2924
デトロイト
Novi, MI
Tel:248-848-4000
中国 - 杭州
Tel:86-571-2819-3187
Fax:86-571-2819-3189
中国 - 香港 SAR
Tel:852-2943-5100
Fax:852-2401-3431
中国 - 南京
Tel:86-25-8473-2460
Fax:86-25-8473-2470
中国 - 青島
Tel:86-532-8502-7355
Fax:86-532-8502-7205
中国 - 上海
Tel:86-21-5407-5533
Fax:86-21-5407-5066
ヒューストン (TX)
Tel:281-894-5983
中国 - 瀋陽
Tel:86-24-2334-2829
Fax:86-24-2334-2393
インディアナポリス
Noblesville, IN
Tel:317-773-8323
Fax:317-773-5453
中国 - 深圳
Tel:86-755-8864-2200
Fax:86-755-8203-1760
ロサンゼルス
Mission Viejo, CA
Tel:949-462-9523
Fax:949-462-9608
ニューヨーク (NY)
Tel:631-435-6000
中国 - 武漢
Tel:86-27-5980-5300
Fax:86-27-5980-5118
中国 - 西安
Tel:86-29-8833-7252
Fax:86-29-8833-7256
サンノゼ (CA)
Tel:408-735-9110
中国 - 厦門
Tel:86-592-2388138
Fax:86-592-2388130
カナダ - トロント
Tel:905-673-0699
Fax:905-673-6509
中国 - 珠海
Tel:86-756-3210040
Fax:86-756-3210049
Fax:43-7242-2244-393
日本 - 大阪
Tel:81-6-6152-7160
Fax:81-6-6152-9310
ドイツ - デュッセルドルフ
Tel:49-2129-3766400
日本 - 東京
Tel:81-3-6880- 3770
Fax:81-3-6880-3771
ドイツ - ミュンヘン
Tel:49-89-627-144-0
Fax:49-89-627-144-44
韓国 - 大邱
Tel:82-53-744-4301
Fax:82-53-744-4302
ドイツ - プフォルツハイム
Tel:49-7231-424750
イタリア - ミラノ
Tel:39-0331-742611
Fax:39-0331-466781
韓国 - ソウル
Tel:82-2-554-7200
Fax:82-2-558-5932 または
82-2-558-5934
イタリア - ベニス
Tel:39-049-7625286
マレーシア - クアラルンプール
Tel:60-3-6201-9857
Fax:60-3-6201-9859
オランダ - ドリューネン
Tel:31-416-690399
Fax:31-416-690340
マレーシア - ペナン
Tel:60-4-227-8870
Fax:60-4-227-4068
ポーランド - ワルシャワ
Tel:48-22-3325737
フィリピン - マニラ
Tel:63-2-634-9065
Fax:63-2-634-9069
シンガポール
Tel:65-6334-8870
Fax:65-6334-8850
台湾 - 新竹
Tel:886-3-5778-366
Fax:886-3-5770-955
スペイン - マドリッド
Tel:34-91-708-08-90
Fax:34-91-708-08-91
スウェーデン - ストックホル
ム
Tel:46-8-5090-4654
イギリス - ウォーキンガム
Tel:44-118-921-5800
Fax:44-118-921-5820
台湾 - 高雄
Tel:886-7-213-7830
台湾 - 台北
Tel:886-2-2508-8600
Fax:886-2-2508-0102
タイ - バンコク
Tel:66-2-694-1351
Fax:66-2-694-1350
10/28/13
DS61190A_JP - p. 24
2013 Microchip Technology Inc.