commsrc.pattern help

5 ビュー (過去 30 日間)
Leor Greenberger
Leor Greenberger 2011 年 10 月 7 日
編集済み: Richard Allred 2021 年 6 月 14 日
I am having trouble using commsrc.pattern to generate the following psuedo-random binary signal:
Pattern: PRBS7
Bitrate: 28E9
Rise time: 10E-12
Fall time: 10E-12
Output Levels: [475E-3 725E-3]
PulseWidth = 35.71E-12 seconds (at 50% point)
I tried something like the following:
z = commsrc.pattern('SamplingFrequency',10*br,'SamplesPerSymbol',25,'PulseType','NRZ', 'OutputLevels', [-475E-3 725E-3], 'RiseTime', 10E-12, 'PulseDuration', 35.71E-12 , 'FallTime', 10E-12, 'DataPattern', 'PRBS7')
but it doesn't work. Any ideas?

採用された回答

Richard Allred
Richard Allred 2021 年 6 月 10 日
編集済み: Richard Allred 2021 年 6 月 14 日
The property 'PulseDuration' is only valid when the 'PulseType' is 'RZ'. To solve your issue, simply don't specify the Pulse Duration property:
br = 28e9;
SamplesPerSymbol = 25;
z1 = commsrc.pattern(...
'SamplingFrequency',br,...
'SamplesPerSymbol',SamplesPerSymbol,...
'PulseType','NRZ', ...
'OutputLevels', [-475E-3 725E-3], ...
'RiseTime', 10E-12, ...
...'PulseDuration', 35.71E-12 , ...
'FallTime', 10E-12, ...
'DataPattern', 'PRBS7')
w1 = generate(z1,127);
figure(1),plot(w1)
An alternative solution is to use the stimulus object from the SerDes Toolbox
z2 = serdes.Stimulus(...
'SymbolTime',1/br,...
'SampleInterval',1/br/SamplesPerSymbol,...
'Modulation',2,...
'Order',7,...
'MapToVoltage',[-475E-3 725E-3]);
N = SamplesPerSymbol*127;
w2 = zeros(N,1);
for ii = 1:N
w2(ii) = step(z2);
end
figure(2),plot(w2)

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDesign and Simulate SerDes Systems についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by