matlab®コードとsimulink® モデルの融合に よる …«おけるofdm(matlab...

Post on 29-Jun-2018

245 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1 © 2011 The MathWorks, Inc.

MATLAB®コードとSimulink®モデルの融合による

次世代通信システムの設計例

MathWorks Japan アプリケーションエンジニアリング部 シニアアプリケーションエンジニア 田中 明美

2

お客様の声

3

正しく伝えるための障害

仕様 設計 実装 検証

B社/

B部署 C社/

C部署

A社/

A部署

D社/

D部署

ツールB ツールC ツールD ツールA

それぞれの環境で設計+ベンチ作成 + 検証

開発フェーズ

4

次世代通信システム設計例

– MATLAB環境での機能設計

– MATLABとSimulinkの融合

– 実装へのパス

まとめ

アジェンダ

5

次世代通信システム設計例

– MATLAB環境での機能設計

– MATLABとSimulinkの融合

– 実装へのパス

まとめ

アジェンダ

6

通信システム発展の要因

洗練された数学的アルゴリズムによる統合技術

– OFDM

– MIMO (マルチアンテナ)

– Turbo Coding

リソース・帯域の効果的な活用

– 適応変調

– 適応符号化

– 適応MIMO

– 適応帯域幅

様々な通信システムで共通に使用される技術

7

ex. LTE物理レイヤモデル

Turboチャネル

符号

MIMO OFDMA

各種

適応処理

Reference: 3GPP TS 36 211 v10 (2010-12)

ダウンリンク共有チャネル

– トランスポートチャネル

– 物理チャネル

8

= comm.TurboEncoder

=

comm.TurboDecoder(…

‘NumIterations’, 6,…

= comm.QPSKDemodulator(

‘DecisionMethod’,’Log-

Likelihood ratio’

ターボ符号・復号

上流設計では、System objectTMを使用し短時間でターボ符号・復号が使える

オブジェクトの入替が容易なため、多くの手法パラメータでの確認が可能

後段の設計では、仕様の曖昧さを低減し理解可能

9

正しく伝えるための障害

仕様 設計 実装 検証

B社/

B部署 C社/

C部署

A社/

A部署

D社/

D部署

MATLAB ツールC ツールD MATLAB

開発フェーズ

設計工数削減

多くの手法/

パラメータによる試行

短時間での使用理解

曖昧さ低減による

繰り返し設計を回避

10

R2012bより、

Communications System Toolboxの全てのSystem Objectsから

Cコード生成が可能

System objects からのCコード生成

=comm.OSTBCEncoder

MATLAB code

C code

MATLABのプログラミング環境でも

Cコード生成が容易

11

ターボ符号/復号のCコード生成

hTurboEncoder=comm.TurboEncoder(...

'TrellisStructure',Trellis,...

'InterleaverIndices',Indices);

hTurboEncoder=comm.TurboEncoder(...

'TrellisStructure',Trellis,...

'InterleaverIndices',[1764,1868,…1704]);

上流モデル

Cコード生成モデル 乱数から定数に置き換え

上流モデルを再利用することにより、少ない変更で

Cコードを生成可能

スクラッチからCコードを記述、検証するよりも工数削減

ヒューマンエラー低減

12

ファイルの比較

ファイルをドラッグ&ドロップで比較

13

比較結果 変更点はファイル名と

インタリーバのテーブルのみ

14

自動コード生成

codegen -args {EbNo,MaxNumErrs,MaxNumBits} -config coder.config('lib') …

fcn_04PSK_zTurbo_Soft_codegen -report

Cコード生成コマンド

上流で設計されたMATLABコードを詳細化し、Cコードを自動生成することで

コーディングの時間を短縮 & ヒューマンエラーの低減

15

ハンドコーディングされたCコードの取込み

parfor n = 1:length(EbNoVec)

BERVec(n) = fcn_04PSK_zTurbo_Soft(EbNoVec(n),maxNumErrs,maxNumBits);

end

parfor n = 1:length(EbNoVec)

BERVec(n) = handcode_mex(EbNoVec(n),maxNumErrs,maxNumBits);

end

mex handcode.c –output handcode_mex

上流モデル

ハンドコードモデル

* *

上流モデル

ハンドコードモデル

評価

上流設計者は受け入れ時、仕様の一致性を確認

後段の設計者はハンドコードモデルの検証時間短縮

16

正しく伝えるための障害

仕様 設計 実装 検証

B社/

B部署 C社/

C部署

A社/

A部署

D社/

D部署

MATLAB MATLAB ツールD MATLAB

開発フェーズ

・設計工数削減

・多くの手法/

パラメータによる試行

・短時間での使用理解

・曖昧さ低減による

繰り返し設計を回避

・安定した品質のコード

・既存のシステムに

組込んで使用

17

Frequency

Nmax=2048

Time (msec)

Resource

block

Resource

element

0.5 1

Resource

grid

1.5 2

LTEにおけるOFDM(ダウンリンクリソースグリッド)

Pilots

Interpolate

vertically

(Frequency)

Interpolate

horizontally (Time)

18

LTEにおけるOFDM(MATLABによる実現)

switch

prmLTEPDSCH.Nrb

数パターンの

チャネル帯域を想定

Case 25, N=512;

FFT点数を決定

= 6*numRb +

mod(v+vsh, 6) + 1;

送信:

所定の間隔でパイロットを配置

Case 100, N=2048; = mean([hp(:,1,1,n)

hp(:,3,1,n)])

受信:

時間と周波数での補間処理により、チャネルを推定

= mean([hp(k,2,1,:)

hp(k,4,1,:)]) X=ifft(tmp,N,1);

OFDM信号の作成

19

MIMOの概要

Multiple Input Multiple Output

複数の送信および受信アンテナを使用

Multiple Input Multiple Output

h1,1

h1,2

h4,4

h2,1

X Y

Channel

20

MIMO-OFDMの概要

X Y

次元=4; ランク =3;

H = チャネル応答行列

21

MATLABによる適応MIMO

受信側の動作:

H行列のランクV=レイヤ数を検出

送信側の動作:

(次のフレームに対して)

レイヤ数に応じて送信アンテナ数を

決定

case 4

out =

complex(zeros(inLen1/2, v));

out(:,1:2) = reshape(in1, 2,

inLen1/2).';

out(:,3:4) = reshape(in2, 2,

inLen2/2).';

V=

prmLTEPDSCH.numLayers;

Switch V

22

ex. LTE物理レイヤモデル

Turboチャネル

符号

MIMO OFDMA

各種

適応処理

Reference: 3GPP TS 36 211 v10 (2010-12)

ダウンリンク共有チャネル

– トランスポートチャネル

– 物理チャネル

共通で使用するパーツは共有化して

次工程他プロジェクトで再利用し

工数削減

23

次世代通信システム設計例

– MATLAB環境での機能設計

– MATLABとSimulinkの融合

– 実装へのパス

まとめ

アジェンダ

24

Simulinkを利用すると・・・

• システムにおける機能ブロックの振る舞いの確認

• ブロック線図にすることで、データの流れを直感的に理解

• 仕様書に記載された機能毎のブロック線図と同じようにモジュール分割

• Configurable Subsystem 等でブロックを差替えてのシミュレーション

• Simulink Projects でファイル管理

• マルチドメインシミュレーションが可能

• MATLABで設計したコードも含めブロック線図からのCコード生成が可能

• 時間の概念を持たせ実装を意識したモデリングが可能

25

MATLABとSimulinkの融合

Turboチャネル

符号

MIMO OFDMA

各種

適応処理

Reference: 3GPP TS 36 211 v10 (2010-12)

>> Open LTE system model

MATLAB Function Blockを使用して

MATLAB コードで設計したIPをSimulinkで使用

26

MATLABとSimulinkの融合

27

正しく伝えるための障害

仕様 設計 実装 検証

B社/

B部署 C社/

C部署

A社/

A部署

D社/

D部署

MATLAB MATLAB ツールD MATLAB

開発フェーズ

・設計工数削減

・多くの手法/

パラメータによる試行

・短時間での使用理解

・曖昧さ低減による

繰り返し設計を回避

・安定した品質のコード

・既存のシステムに

組込んで使用

・フィードバックが容易

・機能毎に詳細度、バージョンの入替等が容易

28

次世代通信システム設計例

– MATLAB環境での機能設計

– MATLABとSimulinkの融合

– 実装へのパス

まとめ

アジェンダ

29

実装手順

浮動小数点モデル – システム要求の確認

実行可能な仕様書

– MATLABおよびSimulink

モデルの詳細化 – ハードウェアを意識したアーキテクチャ

– 固定小数点化 語長の決定

小数部の位置の決定

実装設計 – HDL CoderTMによるHDLコードの生成

– 3rdパーティIPの取り込み

検証 – HDLシミュレータとの協調シミュレーション

– ハードウェアとの協調シミュレーション(HILS) 検証

実装 コード生成

モデルの 詳細化

継続的な検証

浮動小数点 モデル

システム

要求

30

OFDM信号生成

• 高抽象度のビヘイビアモデル

• フレームベース

• 浮動小数点

31

実装

サンプルベース化

固定小数点化

HDL Coder でサポートされる関数/ブロック

32

Cyclic Prefix挿入

33

HDL コード生成モデル

HDL コーディングの工数削減、ヒューマンエラーの低減

34

HDL コード生成(チューニング前)

3. HDL コード生成

32x16bitの乗算器を32個使用

ex. Xilinx FPGA には18x18bitの乗算器

1. 固定小数点の語長設定

2. リファレンスとのエラー推定

35

HDLコード生成(チューニング後)

3. 再度 HDLコード生成

18x16bitの乗算器32個

Xilinx FPGA 18x18bitの乗算器にマッピング

1. 固定小数点の語長を調整

2. 許容範囲内のエラーに収まるか確認

チューニングによりHDLコード最適化

36

HDLシミュレータとのco-simulation

HDL シミュレータとの連携でハンドコード、自動生成コードの検証

上流設計でのテストベンチ再利用で、検証の工数削減

HDL Coder との連携で検証モデルモデル自動生成

37

FPGAとのco-simulation(FIL)

FPGA-in-the-Loop simulation モデルの自動生成によるFPGAを利用したシミュレーション環境構築の工数削減と、シミュレーションの高速化による工数削減

38

FPGAとのco-simulation(FIL) 導入効果(ユーザ実績)

1.テストボード: ML605

2.適用回路: 無線デジタル信号処理回路

3.論理規模: • FF:25,000

• LUT:20,000

• 36KBRAM:150

• DSP48E1:130

4.シュミレーション時間:

Simulink 論理合成後 FIL

時間 60分 200時間以上 4分30秒

FILのメリット

論理合成後シミュレーションの高速化(2,000倍以上高速)

Simulinkシミュレーションの高速化(10倍以上高速)

汎用FPGA基板で確認できるので、ユーザ基板評価での手戻り削減

39

正しく伝えるための障害

仕様 設計 実装 検証

B社/

B部署 C社/

C部署

A社/

A部署

D社/

D部署

MATLAB MATLAB MATLAB MATLAB

開発フェーズ

・設計工数削減

・多くの手法/

パラメータによる試行

・短時間での使用理解

・曖昧さ低減による

繰り返し設計を回避

・安定した品質のコード

・既存のシステムに

組込んで使用

・上流設計で使用した

Simulinkモデルを

テストベンチとして利用

・シミュレーションの高速化

・フィードバックが容易

・機能毎に詳細度、バージョンの入替等が容易

・コードのチューニング

40

次世代通信システム設計例

– MATLAB環境での機能設計

– MATLABとSimulinkの融合

– 実装へのパス

まとめ

アジェンダ

41

お客様の声

42

まとめ:モデルベースデザインによる開発プロセス

コンピュータ

シミュレーション

試作回数を低減

自動コード生成

ハンドコーディングよる

エラーを抑制

テスト

実機による

検証の効率化

手戻りの少ない開発

実行可能なモデルで仕様を記述

仕様のあいまいさを低減

仕様 設計 実装 検証

B社/

B部署 C社/

C部署

A社/

A部署

D社/

D部署

検証のフィードバック/受入検証

43

モデルベースデザインでご成功された

日本のお客様の事例

独立行政法人情報通信研究機構

スマートワイヤレス研究室

主任研究員

船田 龍平 様

研究開発・標準化策定作業におけるモデルベースデザインとFPGA実装事例

A3 14:10-15:00(次のセッション)

44

デモブースのご案内 信号処理アルゴリズム設計

~システム設計~実装

© 2012 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc.

See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names

may be trademarks or registered trademarks of their respective holders.

USRPを使用したFM Radio の復調

45

本日の関連ツール

• MATLAB®

• Simulink®

• Signal Processing ToolboxTM

• DSP System ToolboxTM

• Communications System ToolboxTM

• Fixed-Point ToolboxTM

• Simulink® Fixed PointTM

• MATLAB® CoderTM

• HDL CoderTM

• HDL VerifierTM

• Parallel Computing ToolboxTM

ご希望の方は、無償評価版(30日間)をご利用頂けます

46

Q&A

top related