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

46
1 © 2011 The MathWorks, Inc. MATLAB®コードとSimulink®モデルの融合に よる 次世代通信システムの設計例 MathWorks Japan アプリケーションエンジニアリング部 シニアアプリケーションエンジニア 田中 明美

Upload: buithuan

Post on 29-Jun-2018

245 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

1 © 2011 The MathWorks, Inc.

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

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

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

Page 2: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

2

お客様の声

Page 3: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

3

正しく伝えるための障害

仕様 設計 実装 検証

B社/

B部署 C社/

C部署

A社/

A部署

D社/

D部署

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

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

開発フェーズ

Page 4: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

4

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

– MATLAB環境での機能設計

– MATLABとSimulinkの融合

– 実装へのパス

まとめ

アジェンダ

Page 5: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

5

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

– MATLAB環境での機能設計

– MATLABとSimulinkの融合

– 実装へのパス

まとめ

アジェンダ

Page 6: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

6

通信システム発展の要因

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

– OFDM

– MIMO (マルチアンテナ)

– Turbo Coding

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

– 適応変調

– 適応符号化

– 適応MIMO

– 適応帯域幅

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

Page 7: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

7

ex. LTE物理レイヤモデル

Turboチャネル

符号

MIMO OFDMA

各種

適応処理

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

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

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

– 物理チャネル

Page 8: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

8

= comm.TurboEncoder

=

comm.TurboDecoder(…

‘NumIterations’, 6,…

= comm.QPSKDemodulator(

‘DecisionMethod’,’Log-

Likelihood ratio’

ターボ符号・復号

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

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

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

Page 9: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

9

正しく伝えるための障害

仕様 設計 実装 検証

B社/

B部署 C社/

C部署

A社/

A部署

D社/

D部署

MATLAB ツールC ツールD MATLAB

開発フェーズ

設計工数削減

多くの手法/

パラメータによる試行

短時間での使用理解

曖昧さ低減による

繰り返し設計を回避

Page 10: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

10

R2012bより、

Communications System Toolboxの全てのSystem Objectsから

Cコード生成が可能

System objects からのCコード生成

=comm.OSTBCEncoder

MATLAB code

C code

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

Cコード生成が容易

Page 11: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

11

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

hTurboEncoder=comm.TurboEncoder(...

'TrellisStructure',Trellis,...

'InterleaverIndices',Indices);

hTurboEncoder=comm.TurboEncoder(...

'TrellisStructure',Trellis,...

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

上流モデル

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

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

Cコードを生成可能

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

ヒューマンエラー低減

Page 12: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

12

ファイルの比較

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

Page 13: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

13

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

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

Page 14: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

14

自動コード生成

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

fcn_04PSK_zTurbo_Soft_codegen -report

Cコード生成コマンド

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

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

Page 15: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

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

上流モデル

ハンドコードモデル

* *

上流モデル

ハンドコードモデル

評価

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

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

Page 16: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

16

正しく伝えるための障害

仕様 設計 実装 検証

B社/

B部署 C社/

C部署

A社/

A部署

D社/

D部署

MATLAB MATLAB ツールD MATLAB

開発フェーズ

・設計工数削減

・多くの手法/

パラメータによる試行

・短時間での使用理解

・曖昧さ低減による

繰り返し設計を回避

・安定した品質のコード

・既存のシステムに

組込んで使用

Page 17: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

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)

Page 18: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

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信号の作成

Page 19: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

19

MIMOの概要

Multiple Input Multiple Output

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

Multiple Input Multiple Output

h1,1

h1,2

h4,4

h2,1

X Y

Channel

Page 20: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

20

MIMO-OFDMの概要

X Y

次元=4; ランク =3;

H = チャネル応答行列

Page 21: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

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

Page 22: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

22

ex. LTE物理レイヤモデル

Turboチャネル

符号

MIMO OFDMA

各種

適応処理

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

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

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

– 物理チャネル

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

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

工数削減

Page 23: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

23

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

– MATLAB環境での機能設計

– MATLABとSimulinkの融合

– 実装へのパス

まとめ

アジェンダ

Page 24: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

24

Simulinkを利用すると・・・

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

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

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

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

• Simulink Projects でファイル管理

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

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

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

Page 25: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

25

MATLABとSimulinkの融合

Turboチャネル

符号

MIMO OFDMA

各種

適応処理

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

>> Open LTE system model

MATLAB Function Blockを使用して

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

Page 26: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

26

MATLABとSimulinkの融合

Page 27: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

27

正しく伝えるための障害

仕様 設計 実装 検証

B社/

B部署 C社/

C部署

A社/

A部署

D社/

D部署

MATLAB MATLAB ツールD MATLAB

開発フェーズ

・設計工数削減

・多くの手法/

パラメータによる試行

・短時間での使用理解

・曖昧さ低減による

繰り返し設計を回避

・安定した品質のコード

・既存のシステムに

組込んで使用

・フィードバックが容易

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

Page 28: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

28

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

– MATLAB環境での機能設計

– MATLABとSimulinkの融合

– 実装へのパス

まとめ

アジェンダ

Page 29: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

29

実装手順

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

実行可能な仕様書

– MATLABおよびSimulink

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

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

小数部の位置の決定

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

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

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

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

実装 コード生成

モデルの 詳細化

継続的な検証

浮動小数点 モデル

システム

要求

Page 30: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

30

OFDM信号生成

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

• フレームベース

• 浮動小数点

Page 31: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

31

実装

サンプルベース化

固定小数点化

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

Page 32: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

32

Cyclic Prefix挿入

Page 33: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

33

HDL コード生成モデル

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

Page 34: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

34

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

3. HDL コード生成

32x16bitの乗算器を32個使用

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

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

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

Page 35: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

35

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

3. 再度 HDLコード生成

18x16bitの乗算器32個

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

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

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

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

Page 36: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

36

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

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

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

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

Page 37: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

37

FPGAとのco-simulation(FIL)

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

Page 38: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

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基板で確認できるので、ユーザ基板評価での手戻り削減

Page 39: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

39

正しく伝えるための障害

仕様 設計 実装 検証

B社/

B部署 C社/

C部署

A社/

A部署

D社/

D部署

MATLAB MATLAB MATLAB MATLAB

開発フェーズ

・設計工数削減

・多くの手法/

パラメータによる試行

・短時間での使用理解

・曖昧さ低減による

繰り返し設計を回避

・安定した品質のコード

・既存のシステムに

組込んで使用

・上流設計で使用した

Simulinkモデルを

テストベンチとして利用

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

・フィードバックが容易

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

・コードのチューニング

Page 40: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

40

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

– MATLAB環境での機能設計

– MATLABとSimulinkの融合

– 実装へのパス

まとめ

アジェンダ

Page 41: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

41

お客様の声

Page 42: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

42

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

コンピュータ

シミュレーション

試作回数を低減

自動コード生成

ハンドコーディングよる

エラーを抑制

テスト

実機による

検証の効率化

手戻りの少ない開発

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

仕様のあいまいさを低減

仕様 設計 実装 検証

B社/

B部署 C社/

C部署

A社/

A部署

D社/

D部署

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

Page 43: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

43

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

日本のお客様の事例

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

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

主任研究員

船田 龍平 様

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

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

Page 44: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

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 の復調

Page 45: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

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日間)をご利用頂けます

Page 46: MATLAB®コードとSimulink® モデルの融合に よる …«おけるOFDM(MATLAB による実現) switch prmLTEPDSCH.Nrb 数パターンの チャネル帯域を想定

46

Q&A