comm.EyeDiagramのMATLAB commpilerでのコンパイル後の動作不具合

조회 수: 1 (최근 30일)
Kazuhiro Kashiwakura
Kazuhiro Kashiwakura 2019년 7월 10일
댓글: Kazuhiro Kashiwakura 2019년 7월 25일
Modeling a High-Speed Backplane (4-Port S-Parameters to a Rational Function)を参考に
アイダイアグラムを表示するスクリプトを書き、MATLAB compilerを用いてコンパイルすると、
「クラス'extmgr.ConfigurationSet'のメソッド、プロパティまたはフィールド'ConfigurationSet'が認識されません」
とのエラーでアイダイアグラムが表示されません。
対処方法を教えてください。
なお、EXE化しなければ正常に動作いたします。
-以下、ソース-
clear
close all
StartTime = datetime;
disp(StartTime)
[FileName, DirName] = uigetfile('*.s4p','Select Single Mode S-Parameter!');
backplane = sparameters([DirName FileName]);
data = backplane.Parameters;
freq = backplane.Frequencies;
z0 = backplane.Impedance;
diffdata = s2sdd(data);
diffz0 = 2*z0;
%{
diffsparams = sparameters(diffdata,freq,diffz0);
figure
smithplot(diffsparams,1,1)
%}
difftransfunc = s2tf(diffdata,diffz0,diffz0,diffz0);
delayfactor = 0.98; % Delay factor. Leave at the default of zero if your
% data does not have a well-defined principle delay
rationalfunc = rationalfit(freq,difftransfunc,'DelayFactor',delayfactor);
npoles = length(rationalfunc.A);
%fprintf('The derived rational function contains %d poles.\n',npoles);
ENTER=inputdlg({'Modeling Freq.(GHz)','Enter Data Rate(Gbps)','Emphasis(%)'},'Input',[1 40], {'28','25.78125','0'});
modelfreq = str2double(ENTER{1}) * 1e9;
Nmodel = int64(modelfreq / 10e6);
datarate = str2double(ENTER{2}) * 1e9;
EMPH = str2double(ENTER{3}) / 100;
TXEQ = [1-EMPH/2 -EMPH/2];
freqsforresp = linspace(10e6,modelfreq,Nmodel)';
resp = freqresp(rationalfunc,freqsforresp);
figure
subplot(2,1,1)
plot(freq*1.e-9,20*log10(abs(difftransfunc)),'r',freqsforresp*1.e-9, ...
20*log10(abs(resp)),'b--','LineWidth',2)
title(sprintf('Rational Fitting with %d poles',npoles),'FontSize',12)
ylabel('Magnitude (decibels)')
xlabel('Frequency (GHz)')
legend('Original data','Fitting result')
subplot(2,1,2)
origangle = unwrap(angle(difftransfunc))*180/pi+360*freq*rationalfunc.Delay;
plotangle = unwrap(angle(resp))*180/pi+360*freqsforresp*rationalfunc.Delay;
plot(freq*1.e-9,origangle,'r',freqsforresp*1.e-9,plotangle,'b--', ...
'LineWidth',2)
ylabel('Detrended phase (deg.)')
xlabel('Frequency (GHz)')
legend('Original data','Fitting result')
samplespersymb = 30; %100
pulsewidth = 1/datarate;
ts = pulsewidth/samplespersymb;
numsamples = 2^17;
numplotpoints = 20000;
t_in = double((1:numsamples)')*ts;
input = sign(randn(1,ceil(numsamples/samplespersymb)));
input = conv(input,TXEQ);
input = repmat(input,[samplespersymb, 1]);
input = input(:);
[output,t_out] = timeresp(rationalfunc,input,ts);
figure
%subplot(2,1,1)
plot(t_in(1:numplotpoints)*1e9,input(1:numplotpoints),'r','LineWidth',1);hold on
title([ENTER{2},'Gbps(Emphasis=',ENTER{3},'%)'],'FontSize',12)
%ylabel('Input signal')
%xlabel('Time (ns)')
%axis([-inf,inf,-1.5,1.5])
%subplot(2,1,2)
plot(t_out(1:numplotpoints)*1e9,output(1:numplotpoints),'b','LineWidth',2);hold on
%ylabel('Output signal')
ylabel('Signal')
xlabel('Time (ns)')
axis([-inf,inf,-1.5,1.5])
legend('Input','Output','Location','best')
eyedi = comm.EyeDiagram('Name', [FileName, '-',ENTER{2},'Gbps(Emphasis=',ENTER{3},'%)'],...
'SampleRate', 1./ts, ...
'SamplesPerSymbol', samplespersymb, ...
'DisplayMode', '2D color histogram', ...
'EnableMeasurements', true, ...
'OverlayHistogram', 'Jitter', ...
'ShowBathtub', 'both', ... %Horizontal/Vertical/Both
'ShowGrid', true, ...
'YLimits', [-1.5 1.5], ...
'BathtubBER', 10.^-(1:15), ...
'BERThreshold', 1e-7,...
'OversamplingMethod', 'None',... %None/Input interpolation/Histogram interpolation
'RiseFallThresholds', [10 90], ...
'EyeLevelBoundaries', [40 60] ...
);
eyedi.Position = eyedi.Position + [0 0 0 120];
% Update the eye diagram object with the transmitted signal
estdelay = floor(rationalfunc.Delay/ts);
eyedi(output(estdelay+1:end));
EndTime = datetime;
disp(EndTime)
  댓글 수: 4
Kazuya
Kazuya 2019년 7월 12일
편집: Kazuya 2019년 7월 12일
MATLAB Compiler の制約に引っかかっているのでしょうか・・。
Communications Toolbox の項目を見ると UIs が Cannot be compiled に入っています。。
アイダイアグラム表示はUIなのか・・疑問です。
別ページに飛ばずに確認できるよう添付します。
ERROR.jpg
Kazuhiro Kashiwakura
Kazuhiro Kashiwakura 2019년 7월 12일
駄目なのですね・・・
ありがとうございました。

댓글을 달려면 로그인하십시오.

채택된 답변

Kazuya
Kazuya 2019년 7월 18일
R2019a では同じエラーが発生しましたが、R2019b の prelease 版で試してみたところ
の1つ目の例題「フィルター処理された QPSK 信号のアイ ダイアグラム」を EXE 化してもちゃんとアイダイアグラムが表示されました。参考まで。
  댓글 수: 1
Kazuhiro Kashiwakura
Kazuhiro Kashiwakura 2019년 7월 25일
ご確認どうもありがとうございます。
リリースされ次第、確認してみます。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 記述統計에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!