commsrc.pattern help

4 Ansichten (letzte 30 Tage)
Leor Greenberger
Leor Greenberger am 7 Okt. 2011
Bearbeitet: Richard Allred am 14 Jun. 2021
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?

Akzeptierte Antwort

Richard Allred
Richard Allred am 10 Jun. 2021
Bearbeitet: Richard Allred am 14 Jun. 2021
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)

Weitere Antworten (0)

Kategorien

Mehr zu Design and Simulate SerDes Systems finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by