Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: [802.3_COM] COM 4.17.0 interference and quantization noise discrepancies with 178A



Hi Hossein,

2.

If setting it to input is the same as applying the main tap, that would mean the main tap adds no quantization noise. If the noise was due to quantized coefficient taps, than a value of 1 would add no noise. But that would contradict the draft, which states to apply Equation (178A–46) (a uniform noise distribution) to every tap. The noise seems to represent ADC quantization instead.

 

Application of  FFE to the input noise involves a series of incremental convolutions of scaled noise PDFs. The main tap with a value of 1 simply generates the same noise PDF at the output. Seeding the output noise PDF to input, takes care of the main tap, then other pre and post taps contributions get added in the loop.


The output quantization noise PDF is seeded to a dirac delta (in accordance with the draft), not the input quantization noise pdf 
% initialize quantization noise PDF afeter RxFFE to a Dirac delta PDF quantization_noise_pdf = combined_interference_and_noise_pdf; [~,ind_center]= min(abs(quantization_noise_pdf.x)); quantization_noise_pdf.y = zeros(size(quantization_noise_pdf.x)); quantization_noise_pdf.y(ind_center) = 1;

 

3.

A CDF is inherently one-sided, so it is one sided in the code. But because of that the CDF (Psn) is also one sided in the draft. And the draft states to divide the clipping probability Pqc by 2 when using a one sided function. I interpret Pqc to then represent the probability of the signal exceeding Vqc on either side.

 

If I understand your recent statement above, I guess I agree and there is no discrepancy between the code and the draft. They both achieve the same intention.


Both the code and the draft use a one sided CDF. But the draft divides Pqc by 2, while the code doesn't which is a discrepancy. Unless you mean Pqc represents a two sided probability in the draft and a one sided probability in the code? Which would conflict with the Pqc values in some of the config sheets on the COM github, if I recall right wouldn't match up with other areas it's used in the code, and would be confusing.


Jimmy

From: Hossein Shakiba <hossein.shakiba@xxxxxxxxxx>
Sent: Tuesday, October 27, 2026 8:03 AM
To: Zhimin Liang <jimmy.liang@xxxxxxxxxxx>; STDS-802-3-COM@xxxxxxxxxxxxxxxxx <STDS-802-3-COM@xxxxxxxxxxxxxxxxx>
Subject: RE: [802.3_COM] COM 4.17.0 interference and quantization noise discrepancies with 178A
 

Hi Jimmy,

 

Maybe I was not clear enough. Please see inline.

 

Regards,

Hossein

 

From: Zhimin Liang [mailto:jimmy.liang@xxxxxxxxxxx]
Sent: October 26, 2026 8:31 PM
To: STDS-802-3-COM@xxxxxxxxxxxxxxxxx
Subject: Re: [802.3_COM] COM 4.17.0 interference and quantization noise discrepancies with 178A

 

Hi Hossein,

 

Thanks for replying.

 

2.

If setting it to input is the same as applying the main tap, that would mean the main tap adds no quantization noise. If the noise was due to quantized coefficient taps, than a value of 1 would add no noise. But that would contradict the draft, which states to apply Equation (178A–46) (a uniform noise distribution) to every tap. The noise seems to represent ADC quantization instead.

 

Application of  FFE to the input noise involves a series of incremental convolutions of scaled noise PDFs. The main tap with a value of 1 simply generates the same noise PDF at the output. Seeding the output noise PDF to input, takes care of the main tap, then other pre and post taps contributions get added in the loop.

 

3.

A CDF is inherently one-sided, so it is one sided in the code. But because of that the CDF (Psn) is also one sided in the draft. And the draft states to divide the clipping probability Pqc by 2 when using a one sided function. I interpret Pqc to then represent the probability of the signal exceeding Vqc on either side.

 

If I understand your recent statement above, I guess I agree and there is no discrepancy between the code and the draft. They both achieve the same intention.

 

Jimmy

 


From: Hossein Shakiba <hossein.shakiba@xxxxxxxxxx>
Sent: Monday, October 26, 2026 6:20 AM
To: Zhimin Liang <jimmy.liang@xxxxxxxxxxx>; STDS-802-3-COM@xxxxxxxxxxxxxxxxx <STDS-802-3-COM@xxxxxxxxxxxxxxxxx>
Subject: RE: [802.3_COM] COM 4.17.0 interference and quantization noise discrepancies with 178A

 

Hi Jimmy,

 

Please see responses to 2 and 3 inline below.

For 1, I leave it to others. As far as I know, interference noise has not been used so far.

 

Regards,

Hossein

 

From: Zhimin Liang [mailto:jimmy.liang@xxxxxxxxxxx]
Sent: October 23, 2026 8:29 PM
To: STDS-802-3-COM@xxxxxxxxxxxxxxxxx
Subject: [802.3_COM] COM 4.17.0 interference and quantization noise discrepancies with 178A

 

Hi,

 

I noticed some seeming discrepancies between the 4.17.0 COM code and the 802.3dj Draft 3.3 178A. So I wanted to get confirmation, and put attention on them so they can get fixed.

 

1.

Transmitter rise time filter is not applied to interference noise (shown in Figure 178A-8).

But it appears to be applied in the code.

The interference noise uses sdd21p

        %% compute S_in ( eq 178A-24 d0.2 )
        % S_in = 0 when Rx Calibration is not performed
        if OP.PSDRXCAL
            % interpolate to fvec
            result.H_noise=H_interp(chdata(end).sdd21p,chdata(1).faxis,fvec,f_b);

Which has H_t, the transmitter rise time filter, included

        if include_die
            s21p= H_t.*s21.*(1-gamma_tx).*(1+gamma_rx)./(1.- s11.*gamma_tx - s22.*gamma_rx  -s21.*s12.*gamma_tx.*gamma_rx +s11.*s22.*gamma_tx.*gamma_rx);

2.

When quantization noise is added the cursor is skipped in the code

[HS] no, it has not been skipped.  The output noise is first set to input and then all the pre and post cursors are applied. Setting it to input is the same as applying the main cursor (which is always equal to 1).

 

    if irxffe ~= cursor_tap
        quantization_noise_in_pdf_scale = scalePDF(quantization_noise_in_pdf, abs(h_rxffe(irxffe)));
        quantization_noise_pdf = conv_fct(quantization_noise_pdf, quantization_noise_in_pdf_scale);
    end

But the draft says to use all the taps

"The probability distribution function for the quantization noise at the detector input pqn(y) is initialized to a

Dirac delta function and the assignment defined by Equation (178A–46) is repeated for each value n in the

feed-forward filter tap index vector i (i.e., over all of the feed-forward filter coefficients)."

 

3.

Vqc is defined as

"the quantization clipping amplitude Vqc is a positive value that satisfies the relationship Psn(–Vqc) = Pqc / 2"

But the code does not divide by 2

 

[HS] The code is correct. CDF inverse is also one sided, so it is already the amplitude and divided by 2.

 

adc_clip = -CDF_inv_ev(param.P_qc, sig_after_ctle_pdf, sig_after_ctle_cdf);

 

Jimmy

 

 


To unsubscribe from the STDS-802-3-COM list, click the following link: https://listserv.ieee.org/cgi-bin/wa?SUBED1=STDS-802-3-COM&A=1


To unsubscribe from the STDS-802-3-COM list, click the following link: https://listserv.ieee.org/cgi-bin/wa?SUBED1=STDS-802-3-COM&A=1


To unsubscribe from the STDS-802-3-COM list, click the following link: https://listserv.ieee.org/cgi-bin/wa?SUBED1=STDS-802-3-COM&A=1