Sample Rate Conversion Library for PIC32 User’s Guide

Similar documents
PIC10(L)F320/322 Product Brief

SMSC LAN8700 Datasheet

AN1019 そのような配慮として 下記の基本的ガイドラインに沿って 可能な限り 環境条件または動作条件を制限する必要があります アプリケーションの温度を可能な限り下げる アプリケーションの電圧 ( または EEPROM の VCC 電圧 ) を可能な限り下げる 書き込みバイト数を可能な限り少なくす

ヒント 2: CWG を使ったハーフブリッジまたはフルブリッジ回路の駆動 ハーフブリッジまたはフルブリッジモータ回路を駆動するために多ピンマイクロコントローラは必ずしも必要ではありません PWM モジュールと CWG モジュールを組み合わせると 少ピンデバイスでも駆動できます 図 2: CWG によ

PIC24F Family Reference Manual, Section 9 Watchdog Timer (WDT)

SMSC LAN8700 Datasheet

AN2754 USB-to-I2C Bridging with USB7002, USB7050, USB7051, and USB7052 Hubs

MPLAB Code Configurator User’s Guide

TB3179 メモリ保護ユニット (MPU) の設定方法 はじめに メモリ保護ユニット (MPU) は Cortex -M7 コアがメモリ保護のために備えているオプションのコンポーネントです MPU はメモリマップを分割し それぞれにアクセス権とルールを設定します 本書では Cortex-M7 ベー

B MPLAB XC HPA Renewal Instructions.book

Manchester Decoder Using the CLC and NCO

USB.mif

Microchip Capacitive Proximity Design Guide

TB3172 Cortex -M7 マイクロコントローラの XDMAC を使ってオーディオアプリケーションにピンポンバッファリングを実装する方法 はじめに オーディオシステムアプリケーションでは リアルタイムシステムに関する代表的なプロデューサ / コンシューマ問題が発生する可能性があります タイミ

DALI App. Note

PICF/LF1847 表 1: デバイス PICF/LF1847 ファミリの各製品 プログラムメモリフラッシュ ( ワード ) データ EEPROM ( バイト ) SRAM ( バイト ) I/O 10 ビット A/D (ch) タイマ 8/ ビット EUSART MSSP CCP/ ECCP

Cortex -M キャッシュコントローラを使って決定論的コード性能を達成する方法 TB3186 はじめに マイクロコントローラベース (MCU) の組み込みアプリケーションでは ソフトウェアは不揮発性メモリに保存して実行します この不揮発性メモリとは 通常はフラッシュメモリです フラッシュメモリは

a.fm

Multi-Tool Design Advisory

型名 RF007 ラジオコミュニケーションテスタ Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation RF007SDK-M001 RF007SDK-M001 参考資料 1

TB3177 MPLAB Harmony Configurator (MHC) を使った Hello World アプリケーションの作成 はじめに MPLAB Harmony は互換で相互運用可能なライブラリで構成されたソフトウェアフレームワークであり 周辺モジュールドライバ ミドルウェア システム

Using L1 Cache on PIC32MZ Devices.recover.fm

MCP42XXX Evaluation Board User’s Guide

CLUSTERPRO X for Windows PPガイド

Using RN4020 for Bluetooth Smart Communication.fm

AN1817 Using a Hardware or Software CRC with Enhanced Core PIC16F1XXX in Class B Applications

IOWebDOC

Alfa-Products_installguide

PowerPoint プレゼンテーション

表 1: ファミリの各製品 デバイス (1) プログラムメモリ バイトワード SRAM ( バイト ) データメモリ データ EEPROM ( バイト ) ピン数 I/O 10 ビット A/D チャンネル コンパレータ CCP/ ECCP BOR/LVD CTMU MSSP EUSART タイマ 8

Polycom RealConnect for Microsoft Office 365

始める スタート > 全てのプログラム > Cypress > PSoC Creator 2.0 > PSoC Creator 2.0 をクリックします プロジェクトを作成する / 開く Start Page の "Create New Project" をクリックし 要求されたプロジェクト情報を入

ポリシーマネージャ       Linux版                                 集中管理環境の新規構築

03 Podium Walkerのインストール方法およびアンインストール .docx

Pirates Buster Series Secure Viewer セットアップマニュアル (Web インストーラ)

QNAP vsphere Client 用プラグイン : ユーザーガイド 2012 年 12 月更新 QNAP Systems, Inc. All Rights Reserved. 1

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

OpenLAB Data Store Release Notes

03 Podium Walkerのインストール方法およびアンインストール .docx

CLUSTERPRO MC StorageSaver for BootDisk 1.2 (for Windows) インストールガイド 2014(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

Nero ControlCenter マニュアル

WES7シンクライアントIE11アップデート手順書

鳥取県物品電子入札システムセキュリティ ポリシー設定マニュアル IC カードを利用しない応札者向け 第 1.7 版 平成 31 年 2 月鳥取県物品契約課 鳥取県物品電子入札システムセキュリティ ポリシー設定マニュアル Ver.01-07

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows インストールガイド 2013(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

CLUSTERPRO MC StorageSaver for BootDisk 2.1 (for Windows) インストールガイド 2016(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

目次 1 はじめに 本文書の概要 PVF ソフトウェアと VISUAL STUDIO PVF ソフトウェアの種類 MICROSOFT VISUAL STUDIO の日本語化について VISUAL STUDIO

OSの切替えについて

MPLAB Code Configurator v3.xx User’s Guide

KDDI Smart Mobile Safety Manager Mac OS キッティングマニュアル 最終更新日 2019 年 4 月 25 日 Document ver1.1 (Web サイト ver.9.6.0)

世界最高水準の 8/16 ビット PIC マイクロコントローラの伝統を継承し PIC32 ファミリ誕生は 32 ビットの性能と大容量のメモリで複雑化を続ける組み込みシステム設計の課題を解決します 高性能と大容量メモリ RTOS タッチパネル 複雑なアプリケーション向け MHz 1.56 DMIPS

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows 日本語版 : インストール・ガイド

ArcGIS Runtime SDK for WPF インストールガイド (v10.2.5)

DA-300USB JP_GS_Final_1128.indd

Windows Vista(R) Home Premium 64ビット版について

FT-450D シリーズ MAIN ファームウェアアップデートマニュアル 本ソフトウェアは FT-450D/FT-450DM/FT-450DS の アップデートファームウェアです FT-450 シリーズのアップデートには使用できません 八重洲無線株式会社

EndNote X7 クイックレファレンスガイド

Application Note Application Note No. ESC-APN Document No.: ESC-APN adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以

WES7/WE8SシンクライアントVMwareHorizonClientアップデート手順書

インテル(R) Visual Fortran コンパイラ 10.0

HD-AMP1F_QuickStartGuide_JPN_ indd

ハイサイド MOSFET の損失 どのような MOSFET でも 総損失は伝導損失とスイッチング損失の合計として求まります 低デューティでは コンバータスイッチング損失がハイサイド MOSFET の支配的な損失要因となる傾向にあります 降圧型コンバータのデューティサイクルは下式により表せます ハイサ

monologue Sound Librarian 取扱説明書

McAfee SaaS Protection 統合ガイド Microsoft Office 365 と Exchange Online の保護

<< 目次 >> 1 PDF コンバータのインストール ライセンスコードの入力 PDF にフォントを埋め込みたい場合の設定 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明 PDF コンバータのアン

Cisco ViewMail for Microsoft Outlook クイックスタートガイド (リリース 8.5 以降)

はじめにお読みください

CubePDF ユーザーズマニュアル

Notes and Points for TMPR454 Flash memory

統合開発環境CubeSuite+ V へのバージョンアップのお知らせ


Visual DSP++ install and tutorial

Transcription:

注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います 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 PIC 32 ロゴ 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 dspicdemnet 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 PICDEMnet 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 USA, All Rights Reserved ISBN: 978-1-62077-542-4 QUALITY MANAGEMENT SYSTEM CERTIFIED BY DNV == ISO/TS 16949 == Microchip 社では Chandler および Tempe ( アリゾナ州 ) Gresham ( オレゴン州 ) の本部 設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を取得しています Microchip 社の品質システムプロセスおよび手順は PIC MCU および dspic DSC KEELOQ コードホッピングデバイス シリアル EEPROM マイクロペリフェラル 不揮発性メモリ アナログ製品に採用されています さらに 開発システムの設計と製造に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得しています DS61190A_JP - p 2 2013 Microchip Technology Inc

目次 第 1 章 第 2 章 第 3 章 はじめに 11 11 アルゴリズムの概要 9 インストール 21 21 インストール手順 13 22 22 リソース使用量 14 23 23 Audacity オーディオ編集ツールの使い方 16 API (Application Programming Interface) 31 31 サンプリングレート変換ライブラリの API 関数 18 2013 Microchip Technology Inc DS61190A_JP - p 3

NOTE: DS61190A_JP - p 4 2013 Microchip Technology Inc

序章 注意 全ての文書の内容は時間と共に古くなります 本書も例外ではありません Microchip 社のツールとマニュアルは お客様のニーズを満たすために常に改良を重ねており 実際のダイアログやツールの内容が本書の説明とは異なる場合があります 最新の文書は弊社ウェブサイト (wwwmicrochipcom) でご覧になれます 文書は 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

本書の表記規則 本書には下記の表記規則を適用します 本書の表記規則 概要 意味 例 二重かぎカッコ 参考資料 MPLAB IDE ユーザガイド 太字 テキストの強調 は唯一のコンパイラです 角カッコ : [ ] ウィンドウ名 [Output] ウィンドウ ダイアログ名 [Settings] ダイアログ メニューの選択肢 [Enable Programmer] を選択 かぎカッコ : ウィンドウまたはダイアログのフィールド名 Save project before build 右山カッコ (>) で区切った下線付き斜体テキスト 角カッコで囲んだ太字のテキスト メニュー項目の選択 ダイアログのボタンタブ File>Save [OK] をクリックする [Power] タブをクリックする 山カッコ (< >) で囲んだテキ キーボードのキー <Enter> <F1> を押す スト 標準書体の Courier New サンプルソースコード #define START ファイル名 ファイルパス キーワード コマンドラインオプション ビット値 0, 1 定数 autoexecbat c:\mcc18\h _asm, _endasm, static -Opa+, -Opa- 0xFF, A 斜体の Courier New 変数の引数 fileo (file は有効な任意のファイル名 ) 角カッコ : [ ] オプションの引数 mcc18 [options] file [options] 中カッコとパイプ文字 : 文字 :{ } いずれかの引数を選択する場合 (OR 選択 ) errorlevel {0 1} 繰り返されるテキスト var_name [, var_name] Note ユーザが定義するコード 特に間違いやすい内容や デバイスの種類によって動作が異なる場合等 読者に注意を促すための情報を記載します Note は 枠で囲んで本文中に記載する場合と 図または表の下に記載する場合があります void main (void) { } Note: これは標準的な Note ボックスです CAUTION これは警告を示す Note です Note 1: これは表内の Note です DS61190A_JP - p 6 2013 Microchip Technology Inc

序章 保証登録 推奨参考資料 同封の保証登録カードにご記入の上 お早めに郵送してください 折り返し 製品のアップデート情報をお届けします ソフトウェアのマイナーリリースは弊社ウェブサイトで提供しております 本書には PIC32 向けサンプリングレート変換ライブラリの使い方を記載しています 参考資料として Microchip 社が提供する下記の文書を推奨します Microchip 社のウェブサイト PIC32 ファミリリファレンスマニュアル ( 複数セクションに分冊 ) PIC32 ファミリリファレンスマニュアルの各セクションには PIC32 デバイスファミリのアーキテクチャと周辺モジュールの動作に関する説明を記載しています デバイスファミリごとの仕様は 各ファミリのデータシートに記載しています PIC32 向け MPLAB C コンパイラユーザガイド (DS51686) このユーザガイドには PIC32 マイクロコントローラを使った 32 ビットアプリケーション開発における Microchip 社製 MPLAB C コンパイラの詳細な使い方を記載しています MPLAB IDE ユーザガイド (DS51519) このユーザガイドには MPLAB IDE ソフトウェアと付属の MPLAB エディタおよび MPLAB SIM シミュレータソフトウェアのインストールと実装に関する情報を記載しています Microchip 社は 自社が運営するウェブサイト (wwwmicrochipcom) を通してオンラインサポートを提供しています 当ウェブサイトでは お客様に役立つ情報やファイルを簡単に見つけ出せます 一般的なインターネットブラウザを使って下記の内容をご覧になれます 製品サポート - データシートとエラッタ アプリケーションノート サンプルコード 設計リソース ユーザガイドとハードウェアサポート文書 最新ソフトウェアリリース ソフトウェアアーカイブ 一般的技術サポート - よく寄せられる質問 (FAQ) 技術サポートのご依頼 オンラインディスカッショングループ Microchip 社のコンサルタントプログラムおよびメンバーリスト ご注文とお問い合わせ - 製品セレクタと注文ガイド 最新プレスリリース セミナー / イベントの一覧 お問い合わせ先 ( 営業所 / 販売代理店 / 工場 ) の一覧 2013 Microchip Technology Inc DS61190A_JP - p 7

開発システムの顧客変更通知サービス カスタマサポート 改訂履歴 Microchip 社の顧客変更通知サービスは お客様に Microchip 社製品の最新情報をお届けする配信サービスです ご興味のある製品ファミリまたは開発ツールに関連する変更 更新 エラッタ情報をいち早くメールでお知らせします Microchip 社のウェブサイト (wwwmicrochipcom) にアクセスし 設計サポート メニュー内の 製品変更のお知らせ からご登録ください 開発システム製品のグループカテゴリは 以下の通りです コンパイラ - 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://wwwmicrochipcom/support リビジョン A (2013 年 2 月 ) 本書は初版です DS61190A_JP - p 8 2013 Microchip Technology Inc

第 1 章はじめに 11 アルゴリズムの概要 PIC32 向けサンプリングレート変換ライブラリは リアルタイム RAW ステレオオーディオデータを 特定の標準的オーディオサンプリングレートに変換する機能を提供します ライブラリはストリーミングオーディオアプリケーション向けに設計されており 特定のサンプリングレートを持つアナログフロントエンドと一緒に使えます ライブラリは 16 ビットと 24 ビットの入力データ分解能をサポートします 16 および 24 ビットライブラリは 下記のモードをサポートします 441 khz から 48 khz へのアップサンプリングレート変換 32 khz から 48 khz へのアップサンプリングレート変換 24 ビットライブラリのみ 下記のモードもサポートします 48 khz から 441 khz へのダウンサンプリングレート変換 SRC アルゴリズムは リアルタイムの 16 または 24 ビットステレオオーディオデータストリームのサンプリングレートを変換します SRC 用 API 関数を呼び出すたびに 16 または 24 ビットステレオオーディオサンプルを格納した長さ 1 ms のフレームを処理します 1 ms の入力オーディオデータは 48 khz 入力では 48 個のステレオサンプルを含み 32 khz 入力では 32 個のステレオサンプルを含みます 441 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

111 32 48 khz サンプリングレート変換 入力を 3 倍にアップサンプリングした後に 有限インパルス応答 (FIR) フィルタを使って信号を平滑化します 平滑化された信号にゲイン係数を適用する事で ゼロ挿入による信号ゲインの低下を補償します この信号を 1/2 にダウンサンプリングする事で サンプリングレート 48 khz の出力オーディオ信号を生成します ダウンサンプリングでは 一部のサンプルを間引いて破棄します それらのサンプルのフィルタ処理を省略する事で 実行命令サイクル数を大幅に削減できます これは多相フィルタ処理法を単純化した形態であり SRC の処理速度が向上します このモードの入力サンプリングレートは 32 khz であるため 長さ 1 ms の各入力オーディオフレームは 32 個のステレオサンプルを含む必要があります このモードの出力サンプリングレートは 48 khz であるため 各出力オーディオフレームは 48 個のステレオサンプルを含みます 112 441 48 khz サンプリングレート変換 16 ビットライブラリは入力を 2 倍にアップサンプリングし 24 ビットライブラリは 4 倍にアップサンプリングします 各入力サンプルの後にゼロを挿入し FIR フィルタを使って信号を平滑化します 平滑化にゲイン係数を適用する事で ゼロ挿入による信号ゲインの低下を補償します ダウンサンプリングには多項式補間を使います 16 ビットライブラリでは 882 khz にアップサンプリングしたサンプルを 147 個ずつ 48 khz (80 個のサンプル ) にダウンサンプリングします 24 ビットライブラリでは 1764 khz にアップサンプリングしたサンプルを 294 個ずつ 48 khz (80 個のサンプル ) にダウンサンプリングします また 多相フィルタ処理を採用する事で 冗長なフィルタ処理を削減しています このモードの入力サンプリングレートは 441 khz であるため 入力オーディオフレームの最初の 9 個は 44 個のステレオサンプルを含み 10 番目のフレームは 45 個のステレオサンプル含む必要があります このモードの出力サンプリングレートは 48 khz であるため 各出力オーディオフレームは 48 個のステレオサンプルを含みます 113 48 441 khz サンプリングレート変換 (24 ビット専用 ) 24 ビットライブラリは入力を 4 倍にアップサンプリングし 各サンプルの後にゼロを挿入した後 FIR フィルタを使って信号を平滑化します 多項式補間を使って 196 khz にアップサンプリングしたサンプルを 640 個ずつ 441 khz (147 個のサンプル ) にダウンサンプリングする事で 出力オーディオデータのサンプリングレートを 441 khz に変換します また 多相フィルタ処理を採用する事で 冗長なフィルタ処理を削減しています このモードの入力サンプリングレートは 48 khz であるため 各入力オーディオフレームは 48 個のステレオサンプルを含む必要があります このモードの出力サンプリングレートは 441 khz であるため 出力オーディオフレームの最初の 9 個は 44 個のステレオサンプルを含み 10 番目のフレームは 45 個のステレオサンプルを含みます 114 入力 FIR フィルタの設計 32 khz 入力モードの場合 エイリアシング効果を抑制するために非常に急峻な減衰特性を持つローパスフィルタを使います カットオフ周波数は 中間サンプリングレートの 1/6 よりも低く設定されています これはナイキスト周波数よりも低いため ダウンサンプリング時のエイリアシング効果は問題になりません カットオフ周波数は 16 ビットおよび 24 ビットライブラリのどちらでも約 15 khz です これは 最初の阻止帯域ゼロ点が入力のナイキスト周波数をカバーするようカットオフ周波数を調整してフィルタ設計を最適化する場合に好ましい値です 16 ビットライブラリの 441 khz 入力モードのローパスフィルタカットオフ周波数は 中間サンプリングレートの 1/4 よりも低い 197 khz に設定されます 24 ビットライブラリの 441 khz および 48 khz 入力モードのローパスフィルタカットオフ周波数は中間サンプリングレートの 1/8 よりも低い 16 khz に設定されます DS61190A_JP - p 10 2013 Microchip Technology Inc

はじめに フィルタをより高度に最適化するために 全てのフィルタに対して等リップル設計法を適用しています 上記の各フィルタの通過帯域リップルは表 2-2 2-3 2-4 に記載しています 阻止帯域減衰量は 441 khz および 48 khz 入力モードにおいて -70 db 未満 32 khz 入力モードにおいて -100 db 未満です FIR フィルタが処理負荷の大半を占めますが 16 ビットおよび 24 ビットライブラリのどちらでも フィルタ設計と出力音質はトレードオフの関係にあります トレードオフ関係は 16 ビットライブラリよりも 24 ビットライブラリで顕著となります これは より高いデータ分解能を処理するために 32 ビット PIC32 デバイスで実行する中間処理の命令サイクル数が増加するためです 2013 Microchip Technology Inc DS61190A_JP - p 11

NOTE: DS61190A_JP - p 12 2013 Microchip Technology Inc

第 2 章インストール 21 インストール手順 本章では PIC32 向けサンプリングレート変換ライブラリのインストール手順と リソース使用量について説明します この章の主な内容は下記の通りです インストール手順 リソース使用量 Audacity オーディオ編集ツールの使い方 SRC ライブラリはサンプリングレート変換関連のウェブページ (wwwmicrochipcom/src) からダウンロードできます ダウンロードしたファイルを解凍してインストーラを実行し パスを指定してライブラリをインストールします 24 ビット SRC ライブラリと 16 ビット SRC ライブラリのインストールには 別々のインストーラを使います 下記の手順でアプリケーションにライブラリを追加します 1 アプリケーションのMPLABワークスペースで Project ウィンドウ内の[Library Files] を右クリックし [Add files] を選択する 2 アーカイブファイルのパス ( インストールディレクトリ内の libs フォルダ ) をブラウザで指定し 下記ファイルのいずれか 1 つを選択する libsrc_lite_44_1khz_to_48khz_v1_0a (24 ビットライブラリ ) libsrc_lite_32khz_to_48khz_v1_0a (24 ビットライブラリ ) libsrc_lite_48khz_to_44_1khz_v1_0a (24 ビットライブラリ ) libsrc_lite_pic32_v1_0a (16 ビットライブラリ ) libsrc_full_pic32_v1_0a (16 ビットライブラリ ) 3 ファイルを選択してから [Open] をクリックすると その SRC ライブラリがアプリケーションに追加される 2013 Microchip Technology Inc DS61190A_JP - p 13

22 リソース使用量 221 16 ビットライブラリの各 SRC モードにおける音質 (SNR) とリソース使用量表 2-1 に 16 ビットライブラリの各 SRC モードにおける性能 (SNR) とリソース使用量を示します 表 2-1: 16 ビット SRC モードの音質 (SNR) とリソース使用量 SRC ライブラリバージョン SRC モード MIPS コードサイズ ( バイト ) データサイズ ( バイト ) SNR (db) (1) Lite バージョン 32 kh 48 khz 274 5684 1284 82 441 khz 48 khz 301 82 フルバージョン 32 kh 48 khz 335 5760 1364 84 441 khz 48 khz 367 82 Note 1: 1 khz のフルスケール正弦波信号を使って評価 222 24 ビットライブラリの各 SRC モードにおける音質 (THDN) とリソース使用量表 2-2 表 2-3 表 2-4 に 24 ビットライブラリの各 SRC モードにおける MIPS プログラムメモリ データメモリ使用量と オーディオ帯域内の各信号周波数における全高調波歪み (THDN) を示します Note: 24 ビット SRC ライブラリでは利用可能な MIPS に限りがあるため MIPS と音質はトレードオフの関係にあります 表 2-2: 24 ビット 48 khz 441 khz サンプリングレート変換の音質 (THDN) とリソース使用量リソーストーン周波数 (Hz) THDN (dbfs) 通過帯域リップル < ±15 db MIPS = 57 プログラムメモリ = 5916 byte データメモリ = 6976 byte 100-70 1k -73 5k -70 10k -71 12k -70 15k -71 表 2-3: 24 ビット 441 khz 48 khz サンプリングレート変換の音質 (THDN) とリソース使用量 リソーストーン周波数 (Hz) THDN (dbfs) 通過帯域リップル < ±2 db MIPS = 61 プログラムメモリ = 5984 byte データメモリ = 6612 byte 100-75 1k -70 5k -70 10k -76 12k -69 15k -69 DS61190A_JP - p 14 2013 Microchip Technology Inc

インストール 表 2-4: 24 ビット 32 khz 48 khz サンプリングレート変換の音質 (THDN) とリソース使用量リソーストーン周波数 (Hz) THDN (dbfs) 通過帯域リップル < ±02 db MIPS = 53 プログラムメモリ = 2608 byte データメモリ = 3328 byte 100-104 1k -104 5k -110 10k -115 12k -105 15k -105 Note 1: 試験には 24 ビットのステレオオーディオトーンを使いました 2: リソース使用量は XC32 コンパイラ (v120) を使った場合の値です 3: ライブラリのコンパイルには 32 ビット命令セット使い コンパイラの 実行速度最適化オプション ( レベル -O3) を有効にしています 2013 Microchip Technology Inc DS61190A_JP - p 15

23 Audacity オーディオ編集ツールの使い方 SRC ライブラリは RAW ステレオオーディオサンプルのオーディオストリームをリアルタイムに処理します しかし ライブラリを非リアルタイムに解析する必要がある場合 Audacity オーディオ編集ツールを使って RAW オーディオファイルを作成および解析できます Audacity オーディオ編集ツールを使うと 高音質オーディオストリームを編集 作成 解析できます Audacity オーディオ編集ツールの使い方は以下の通りです 1 下記から Audacity オーディオ編集ツールをダウンロードしてインストールする http://audacitysourceforgenet/ 2 RAW オーディオファイルを作成する Note: 下記リンク (Track Drop-Down Menu) のチュートリアルを参照してください http://manualaudacityteamorg/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

第 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 src_apih (header file for SRC APIs) ----- libs libsrc_x_y_v1_0a (SRC library archive) 24 ビット SRC ライブラリは 変換モードごとに別々のファイルに分割されています 実際に使用する変換モードのファイルだけをインクルードする事で SRC のプログラムメモリ使用量を最小限に抑える事ができます 例 3-2: 24 ビットライブラリのヘッダファイルとアーカイブファイル --------h src_api_lite_44_1khz_to_48khzh src_api_lite_32khz_to_48khzh src_api_lite_48khz_to_44_1khzh --------libs libsrc_lite_44_1khz_to_48khz_v1_0a libsrc_lite_32khz_to_48khz_v1_0a libsrc_lite_48khz_to_44_1khz_v1_0a 2013 Microchip Technology Inc DS61190A_JP - p 17

31 サンプリングレート変換ライブラリの API 関数 311 16 ビットライブラリの API 関数 以下では 16 ビット SRC ライブラリ用の 2 つの API 関数について説明します SRC_init() 概要 API 関数 SRC_init() は変換モードを設定し SRC ライブラリに必要なローカルステートバッファを初期化します SRC ステートバッファはバッファポインタ フィルタに必要な分割バッファ 多項式補間用のバッファを格納します プロトタイプ void SRC_init(int* ptrsrc_state, int cd_flag); 引数 ptrsrc_state cd_flag SRC ライブラリのこのインスタンス向けのステートメモリを指すポインタ SRC_32KHZ_TO_48KHZ - 32 khz 48 khz 変換モード SRC_44_1KHZ_TO_48KHZ - 441 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 入力サンプリングレートが 441 khz の場合は 88 または 90 です プロトタイプ int SRC_apply(int* ptrsrc_state, short* Sin, short* Sout, int readcount); 引数 ptrsrc_state Sin Sout readcount SRC のこのインスタンスのステートメモリを指すポインタ 入力オーディオ信号に対応したサイズ SRC_IN_PROC_SIZE を持つ入力バッファを指すポインタ サイズ SRC_OUT_PROC_SIZE の出力バッファを指すポインタ 入力バッファから読み出すサンプルの個数 ( 左右チャンネルのサンプルの合計数 ) 例 #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

312 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 入力サンプリングレートが 441 khz の場合は 44 または 45 です 出力オーディオデータバッファのサイズは 出力サンプリングレートが 32 khz の場合は 32 出力サンプリングレートが 48 khz の場合は 48 出力サンプリングレートが 441 khz の場合は 44 または 45 です Note: 24 ビットライブラリの場合 readcount はステレオサンプルの個数を表します これとは異なり 16 ビットライブラリの readcount は 左右チャンネルのサンプルを合計した個数を表します プロトタイプ int SRC_apply_44_1KHz_to_48KHz(int* ptrsrc_state, AudioStereo32b* Sin, AudioStereo32b* Sout, int readcount); int SRC_apply_32KHz_to_48KHz(int* ptrsrc_state, AudioStereo32b* Sin, AudioStereo32b* Sout, int readcount); int SRC_apply_48KHz_to_44_1KHz(int* ptrsrc_state, AudioStereo32b* Sin, AudioStereo32b* Sout, int readcount); 引数 ptrsrc_state Sin Sout readcount SRC のこのインスタンスのステートメモリを指すポインタ AudioStereo32b 入力ステレオオーディオデータバッファを指すポインタ (AudioStereo32b のデータ型は 2 つの 32 ビットメンバー ( 左チャンネルと右チャンネルのオーディオデータ ) から成る構造体です ) AudioStereo32b 出力ステレオオーディオデータバッファを指すポインタ 入力バッファから読み出すステレオサンプルの個数 2013 Microchip Technology Inc DS61190A_JP - p 21

例 AudioStereo32b Sin[SRC_IN_PROC_SIZE]; AudioStereo32b Sout[SRC_OUT_PROC_SIZE]; int srcstatemem[src_state_mem_size_int]; int read_count; 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://wwwmicrochipcom/ support URL: wwwmicrochipcom アトランタ Duluth, GA Tel:678-957-9614 Fax:678-957-1455 オースティン (TX) Tel:512-257-3370 ボストン Westborough, MA Tel:774-760-0087 Fax:774-760-0088 シカゴ 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 ヒューストン (TX) Tel:281-894-5983 インディアナポリス Noblesville, IN Tel:317-773-8323 Fax:317-773-5453 ロサンゼルス Mission Viejo, CA Tel:949-462-9523 Fax:949-462-9608 ニューヨーク (NY) Tel:631-435-6000 サンノゼ (CA) Tel:408-735-9110 カナダ - トロント Tel:905-673-0699 Fax:905-673-6509 アジア / 太平洋アジア太平洋支社 Suites 3707-14, 37th Floor Tower 6, The Gateway Harbour City, Kowloon Hong Kong Tel:852-2401-1200 Fax:852-2401-3431 オーストラリア - シドニー Tel:61-2-9868-6733 Fax:61-2-9868-6755 中国 - 北京 Tel:86-10-8569-7000 Fax:86-10-8528-2104 中国 - 成都 Tel:86-28-8665-5511 Fax:86-28-8665-7889 中国 - 重慶 Tel:86-23-8980-9588 Fax:86-23-8980-9500 中国 - 杭州 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 中国 - 瀋陽 Tel:86-24-2334-2829 Fax:86-24-2334-2393 中国 - 深圳 Tel:86-755-8864-2200 Fax:86-755-8203-1760 中国 - 武漢 Tel:86-27-5980-5300 Fax:86-27-5980-5118 中国 - 西安 Tel:86-29-8833-7252 Fax:86-29-8833-7256 中国 - 厦門 Tel:86-592-2388138 Fax:86-592-2388130 中国 - 珠海 Tel:86-756-3210040 Fax:86-756-3210049 アジア / 太平洋インド - バンガロール Tel:91-80-3090-4444 Fax:91-80-3090-4123 インド - ニューデリー Tel:91-11-4160-8631 Fax:91-11-4160-8632 インド - プネ Tel:91-20-3019-1500 日本 - 大阪 Tel:81-6-6152-7160 Fax:81-6-6152-9310 日本 - 東京 Tel:81-3-6880-3770 Fax:81-3-6880-3771 韓国 - 大邱 Tel:82-53-744-4301 Fax:82-53-744-4302 韓国 - ソウル Tel:82-2-554-7200 Fax:82-2-558-5932 または 82-2-558-5934 マレーシア - クアラルンプール Tel:60-3-6201-9857 Fax:60-3-6201-9859 マレーシア - ペナン Tel:60-4-227-8870 Fax:60-4-227-4068 フィリピン - マニラ 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:886-7-213-7830 台湾 - 台北 Tel:886-2-2508-8600 Fax:886-2-2508-0102 タイ - バンコク Tel:66-2-694-1351 Fax:66-2-694-1350 ヨーロッパオーストリア - ヴェルス Tel:43-7242-2244-39 Fax:43-7242-2244-393 デンマーク - コペンハーゲン Tel:45-4450-2828 Fax:45-4485-2829 フランス - パリ Tel:33-1-69-53-63-20 Fax:33-1-69-30-90-79 ドイツ - デュッセルドルフ Tel:49-2129-3766400 ドイツ - ミュンヘン Tel:49-89-627-144-0 Fax:49-89-627-144-44 ドイツ - プフォルツハイム Tel:49-7231-424750 イタリア - ミラノ Tel:39-0331-742611 Fax:39-0331-466781 イタリア - ベニス Tel:39-049-7625286 オランダ - ドリューネン Tel:31-416-690399 Fax:31-416-690340 ポーランド - ワルシャワ Tel:48-22-3325737 スペイン - マドリッド 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 10/28/13 DS61190A_JP - p 24 2013 Microchip Technology Inc