Pulse response from data pattern waveform
Load pulse response column matrix from a file.
Select the primary pulse response and remove any DC components.
P1 = pulse(:,1) - pulse(1,1);
Create a symbol pattern of PRBS order 7.
order = 7; data = prbs(order,2^order-1)-0.5;
Create a data pattern waveform from the pulse response.
W1 = pulse2wave(P1,data,SamplesPerSymbol);
Apply memoryless nonlinearity to the waveform using a
serdes.SaturatingAmplifier object. The saturating amplifier clips any voltage over
SatAmp = serdes.SaturatingAmplifier('Limit',0.4); W2 = SatAmp(W1);
Recover the pulse response from the waveform
P2 = wave2pulse(W2,data,SamplesPerSymbol);
Plot the original and recovered pulse responses.
t2 = dt*(0:length(P2)-1); figure plot(t,P1,t2,P2) xlabel('Time (Seconds)') ylabel('Voltage') legend('Original pulse response','Recovered pulse response')
W— Data pattern waveform
Data pattern waveform, specified as a column vector.
D— Symbol pattern
Symbol pattern contained within the data pattern waveform
specified as a vector.
N— Number of samples per symbol
Number of samples per symbol, specified as a positive integer scalar.
K— Desired length of pulse response
Desired length of the pulse response, specified as a positive integer scalar in symbols.
P— Pulse response
Converted pulse response, returned as a column matrix. The first column contains the primary pulse response and the subsequent columns (if any) contain the crosstalk pulse responses.