commsrc.pattern help

5 次查看(过去 30 天)
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 CenterFile Exchange 中查找有关 Design 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