commsrc.pattern help
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Leor Greenberger
le 7 Oct 2011
Modifié(e) : Richard Allred
le 14 Juin 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?
0 commentaires
Réponse acceptée
Richard Allred
le 10 Juin 2021
Modifié(e) : Richard Allred
le 14 Juin 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)
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Sources and Sinks dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!