comm.EyeDiagramのMATLAB commpilerでのコンパイル後の動作不具合
Show older comments
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 Comments
Kazuya
on 10 Jul 2019
「クラス'extmgr.ConfigurationSet'のメソッド、プロパティまたはフィールド'ConfigurationSet'が認識されません」
以外に表示されているエラーメッセージはありませんか?
Kazuhiro Kashiwakura
on 10 Jul 2019
MATLAB Compiler の制約に引っかかっているのでしょうか・・。
Communications Toolbox の項目を見ると UIs が Cannot be compiled に入っています。。
アイダイアグラム表示はUIなのか・・疑問です。
別ページに飛ばずに確認できるよう添付します。

Kazuhiro Kashiwakura
on 12 Jul 2019
Accepted Answer
More Answers (0)
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!