Difference between revisions of "NVGate DSP computation SPU"

Jump to navigation Jump to search
Undo revision 12690 by Lmagimel (talk)
Tag: Reverted
(Undo revision 12690 by Lmagimel (talk))
Tag: Undo
Line 1: Line 1:
<!-- NVGate DSP Computation SPU — Wiki page -->
[[category:WikiOros]]
= Force DSP=


<!-- ── HEADER ──────────────────────────────────────────── -->
{{#widget:CalculateurSPU}}
<div style="background:linear-gradient(135deg,#0A1628,#0057A8,#0082CC);border-radius:10px;padding:28px 28px;margin-bottom:20px;">
<div style="font-family:Arial,sans-serif;font-size:1.8em;font-weight:700;color:#fff;letter-spacing:1px;">⚙️ NVGate — <span style="color:#F07800;">DSP Computation SPU</span></div>
<div style="color:rgba(255,255,255,0.75);font-size:0.88em;margin-top:8px;font-family:Arial,sans-serif;">Reference tables for Signal Processing Unit (SPU) consumption per channel and per analysis type.</div>
</div>


<!-- ── KEY CONCEPT ─────────────────────────────────────── -->
<div style="background:#FFF8F0;border-left:4px solid #F07800;border-radius:0 8px 8px 0;padding:14px 18px;margin-bottom:20px;font-family:Arial,sans-serif;font-size:0.88em;">
💡 <strong>Key principle:</strong> The higher the sampling frequency, the more data to process — and the fewer SPUs are available per DSP board. SPU budget must be shared across all active channels and analysis types.
</div>


<!-- ── DSP MODE OVERVIEW ────────────────────────────────── -->
On force DSP (and normal DSP), the number of SPU change according to the max sampling frequency.
{| style="width:100%;border-collapse:separate;border-spacing:10px;margin-bottom:8px;"
|-
| style="width:50%;background:#EEF4FF;border:2px solid #0057A8;border-radius:10px;padding:14px 18px;vertical-align:top;" |
<div style="font-family:Arial,sans-serif;font-weight:700;font-size:1em;color:#0057A8;margin-bottom:6px;">🔵 Normal DSP</div>
<div style="font-family:Arial,sans-serif;font-size:0.82em;color:#1A2340;">Models: OR34 V1 · OR35 V1 · OR36 V1/V2 · OR38 V1/V2<br/>Computation is <strong>linear</strong>: <strong>1 DSP = 12 SPU</strong>, regardless of sampling frequency.</div>
| style="width:50%;background:#FFF3E6;border:2px solid #F07800;border-radius:10px;padding:14px 18px;vertical-align:top;" |
<div style="font-family:Arial,sans-serif;font-weight:700;font-size:1em;color:#F07800;margin-bottom:6px;">🟠 Force DSP</div>
<div style="font-family:Arial,sans-serif;font-size:0.82em;color:#1A2340;">SPU count <strong>varies with sampling frequency</strong>. Higher frequency = fewer available SPUs. Force DSP generally requires <strong>2.5× to 5× fewer SPUs</strong> per channel than Normal DSP.</div>
|}


<!-- ── SPU AVAILABILITY (FORCE & NORMAL DSP) ──────────── -->
The more you have data to analyse (high sampling frequency), the less you have power computation (SPU).  
== 📊 SPU Availability vs. Sampling Frequency ==
We have:


<small style="font-family:Arial,sans-serif;color:#6B7A99;">Applies to both Force DSP and Normal DSP modes.</small>
{| class="wikitable"
 
|-
{| class="wikitable" style="width:50%;margin-top:8px;"
! Sampling Frequency (kHz) !! Number of SPU / DSP (Normal or Force)
! Sampling Frequency (kHz) !! SPU per DSP board
|-
|-
| 102.4 || 6
| 102.4 || 6
Line 52: Line 35:
|}
|}


{{#widget:CalculateurSPU}}
===FFT===
According to the architecture of force DSP, the SPU computation per channels is not linear.  So we have the following table for real time SPU computation :


----
{| class="wikitable"
 
|-
<!-- ══════════════════════════════════════════════════════
! Number of FFT lines !! Normal DSP: SPU / channel !! Force DSP: SPU / channel
    FFT
══════════════════════════════════════════════════════ -->
== 🔬 FFT ==
 
<!-- Force DSP note -->
<div style="background:#FFF3E6;border-left:4px solid #F07800;border-radius:0 8px 8px 0;padding:8px 14px;margin-bottom:10px;font-family:Arial,sans-serif;font-size:0.82em;">
⚠️ <strong>Force DSP note:</strong> Computation is not linear. FFT 801 lines is the most optimised configuration. Envelope (401 lines) = 2 SPU/ch · Zoom (401 lines) = 0.66 SPU/ch.
</div>
 
{| class="wikitable" style="width:100%;"
! FFT Lines !! 🔵 Normal DSP (SPU/ch) !! 🟠 Force DSP (SPU/ch)
|-
|-
| 401 || 1 || 0.33
| 401 ||1 || 0.33
|-
|-
| 801 || 1.25 || 0.18 <sup></sup>
| 801 || 1.25 || 0.18 (yes<sup>1</sup>)
|-
|-
| 1 601 || 1.5 || 0.75
| 1601 || 1.5 || 0.75
|-
|-
| 3 201 || 2 || 0.8
| 3201 || 2 || 0.8
|-
|-
| 6 401 || 3 || 2
| 6401 || 3 || 2
|-
|-
| 12 801 || 4 || 2
| 12801 || 4 || 2
|-
|-
| 25 601 || 6 || 3.5
| 25601 || 6 || 3.5
|}
|}
<small style="font-family:Arial,sans-serif;color:#6B7A99;">① 801 lines is the most optimised resolution for Force DSP.</small>


<!-- Normal DSP FFT detail -->
Envelope: 401 lines : 2 SPU per channel on force DSP
<div style="background:#EEF4FF;border-left:4px solid #0057A8;border-radius:0 8px 8px 0;padding:10px 14px;margin-top:14px;margin-bottom:10px;font-family:Arial,sans-serif;font-size:0.82em;">
 
🔵 <strong>Normal DSP — bandwidth & options effect</strong> (401 lines, Fdec=1 as base)
Zoom: 401 Lines : 0.66 SPU per channel on force DSP.
</div>


{| class="wikitable" style="width:100%;"
1) Computing is not linear and FFT 801 lines is the most optimised for DSP
! Bandwidth !! Fdec !! Resolution !! Envelope !! Zoom !! SPU/ch (real-time) !! SPU/ch (non real-time)
 
===Recorder===
 
{| class="wikitable"
|-
|-
| 20 kHz || 1 || 401 || No || No || 1 || 0.5
! Recorder Sampling frequency (Hz) !! Normal DSP: SPU / channel !! Force DSP: SPU / channel
|-
|-
| 10 kHz || 1 || 401 || No || No || 0.5 || 0.25
| 51200 or upper || 1 || 0.66
|-
|-
| N kHz || 1 || 401 || No || No || = N/20 || = N/40
| 32768 || 0.66 || 0.44
|-
|-
| 10 kHz || 2 || 401 || No || No || 1 || 1
| 25600 || 0.5 || 0.33
|-
|-
| 5 kHz || 4 || 401 || No || No || 0.8 || 0.6
| 16384 || 0.33 || 0.22
|-
|-
| 2 kHz || 10 || 401 || No || No || 0.6 || 0.6
| 12800 || 0.25 || 0.167
|-
|-
| 1 kHz || 20 || 401 || No || No || 0.5 || 0.6
| Else || 0.125 || 0.083
|}
 
===Octave===
 
{| class="wikitable"
|-
! Octave !! Normal DSP: SPU / channel !! Force DSP: SPU / channel
|-
|-
| < 1 kHz || > 20 || 401 || No || No || 0.5 || 0.5
| 1/3 || 3 || 1
|-
|-
| 20 kHz || 1 || 801 || No || No || 1.25 || 0.5
| 1/12 || 6 || 2
|-
|-
| 20 kHz || 1 || 1 601 || No || No || 1.5 || 0.5
| 1/24 || 12 || 4
|}
 
===OVA===
 
{| class="wikitable"
|-
|-
| 20 kHz || 1 || 3 201 || No || No || 2 || 0.5
! Normal DSP: SPU / channel !! Force DSP: SPU / channel
|-
|-
| 20 kHz || 1 || 6 401 || No || No || 3 || 0.5
| 1 || 0.25
|}
 
===TDA===
 
 
{| class="wikitable"
|-
|-
| 20 kHz || 1 || 401 || No || Yes || 2 || 1.5
! Normal DSP: SPU / channel !! Force DSP: SPU / channel
|-
|-
| 20 kHz || 1 || 401 || Yes || Yes || 3 || 3
| 3 || 1.5
|}
|}


[[Image:fft_sampling.png|500px|none]]
===SOA===
 
SPU computation for SOA is more complex because it depends of maximum speed, resolution and frequency. Also force DSP computation is not linear.
 
Force DSP will improve the SPU computation by reducing between  2.5 and 5 to compare with normal DSP.
 
(@20kHz - 401 lines, we need a maximum of 3 SPUs with normal DSP)
 
= Normal DSP=
SPU computation for normal DSP : OR34 V1 - OR35V1 - OR36V1 OR36V2 (normal DSP) - OR38V1 - OR38V2 (Normal DSP).
 
Because of the computation linearity, we simplify by saying: 1DSP = 12 SPU (no matter the sampling frequency). This allow a simplification for SPU computation. So we can deduce:


----
==FFT==


<!-- ══════════════════════════════════════════════════════
'''Computation SPUs:'''
    RECORDER
══════════════════════════════════════════════════════ -->
== 🎙️ Recorder ==


<small style="font-family:Arial,sans-serif;color:#6B7A99;">Force DSP only.</small>
{|class="wikitable" style="background:white"border="2" cellspacing="0" cellpadding="4" width="85%" align="center"
|'''Bandwidth'''
|'''Fdec'''
|'''Resolution'''
|'''Envelope'''
|'''Zoom'''
|'''SPU/Channel <br>for Real-time'''
|'''SPU/Channel <br>for non Real-time'''


{| class="wikitable" style="width:70%;"
! Recorder Sampling Frequency (Hz) !! 🔵 Normal DSP (SPU/ch) !! 🟠 Force DSP (SPU/ch)
|-
|-
| ≥ 51 200 || 1 || 0.66
|20k
|1
|401
|No
|No
|1
|0,5
 
|-
|-
| 32 768 || 0.66 || 0.44
|10k
|1
|401
|No
|No
|0,5
|0,25
 
|-
|-
| 25 600 || 0.5 || 0.33
|Nk
|1
|401
|No
|No
|=N/20
|=N/40
 
|-
|-
| 16 384 || 0.33 || 0.22
|10k
|2
|401
|No
|No
|1
|1
 
|-
|-
| 12 800 || 0.25 || 0.167
|5k
|4
|401
|No
|No
|0,8
|0,6
 
|-
|-
| Other || 0.125 || 0.083
|2k
|}
|10
|401
|No
|No
|0,6
|0,6


----
|-
|1k
|20
|401
|No
|No
|0,5
|0,6


<!-- ══════════════════════════════════════════════════════
|-
    OCTAVE
|Lower <br>than 1k
══════════════════════════════════════════════════════ -->
|Higher <br>than 20
== 🎵 Octave ==
|401
|No
|No
|0,5
|0,5


'''Force DSP — summary:'''
|-
|20k
|1
|401 and<br>below
|No
|No
|1
|0,5


{| class="wikitable" style="width:50%;"
! Resolution !! 🔵 Normal DSP (SPU/ch) !! 🟠 Force DSP (SPU/ch)
|-
|-
| 1/3 oct || 3 || 1
|20k
|1
|801
|No
|No
|1,25
|0,5
 
|-
|-
| 1/12 oct || 6 || 2
|20k
|1
|1601
|No
|No
|1,5
|0,5
 
|-
|-
| 1/24 oct || 12 || 4
|20k
|}
|1
|3201
|No
|No
|2
|0,5


'''Normal DSP — full detail:'''
|-
|20k
|1
|6401
|No
|No
|3
|0,5


{| class="wikitable" style="width:70%;"
! Bandwidth !! Fdec !! Resolution !! SPU/ch (real-time)
|-
|-
| 25.6 kHz || 1 || 1/3 oct || 4
|20k
|1
|401
|No
|No
|1
|0,5
 
|-
|-
| 20 kHz || 1 || 1/3 oct || 3
|20k
|1
|401
|No
|Yes
|2
|1,5
 
|-
|-
| 12.8 kHz || 1 || 1/3 oct || 2
|20k
|1
|401
|No
|No
|1
|0,5
 
|-
|-
| 10 kHz || 1 || 1/3 oct || 1.5
|20k
|1
|401
|Yes
|Yes
|3
|3
 
|}<br clear="all">
 
 
[[Image:fft_sampling.png|500px|none]]
 
==SOA==
Computation SPUs:<br>
 
{|class="wikitable" style="background:white" border="2" cellspacing="0" cellpadding="4" width="79%" align="center"
|align = "center"|'''Bandwidth (Hz)'''
|align = "center"|'''Decimation factor'''
|align = "center"|'''Resolution'''
|align = "center"|'''SPU/Channel'''
 
|-
|-
| 10 kHz || 2 || 1/3 oct || 2
|align = "center"|20 k
|align = "center"|1
|align = "center"|401
|align = "center"|3
 
|-
|-
| 5 kHz || 4 || 1/3 oct || 1.25
|align = "center"|10 k
|align = "center"|1
|align = "center"|401
|align = "center"|1,5
 
|-
|-
| 20 kHz || 1 || 1/1 oct || 1.5
|align = "center"|N k
|align = "center"|1
|align = "center"|401
|align = "center"|=(N*3)/20
 
|-
|-
| 20 kHz || 1 || 1/12 oct || 6
|align = "center"|10 k
|align = "center"|2
|align = "center"|401
|align = "center"|2
 
|-
|-
| 20 kHz || 1 || 1/24 oct || 12
|align = "center"|5 k
|}
|align = "center"|4
|align = "center"|401
|align = "center"|1,3


<small style="font-family:Arial,sans-serif;color:#6B7A99;">Sampling Frequency: ''Front-End / Inputs settings / Input sampling'' · Bandwidth: ''OCT / FFT analysis / range''</small>
|-
|align = "center"|2,5 k
|align = "center"|8
|align = "center"|401
|align = "center"|1,1


[[Image:Octave_01.png|framed|none]]
|-
|align = "center"|1,25 k
|align = "center"|16
|align = "center"|401
|align = "center"|0,9


----
|-
|align = "center"|625
|align = "center"|32
|align = "center"|401
|align = "center"|0,8


<!-- ══════════════════════════════════════════════════════
|-
    OVA
|align = "center"|313
══════════════════════════════════════════════════════ -->
|align = "center"|64
== 📈 OVA (Overall Acoustic Levels) ==
|align = "center"|401
|align = "center"|0,7


'''Force DSP:'''
|-
|align = "center"|156
|align = "center"|128
|align = "center"|401
|align = "center"|0,6


{| class="wikitable" style="width:40%;"
! 🔵 Normal DSP (SPU/ch) !! 🟠 Force DSP (SPU/ch)
|-
|-
| 1 || 0.25
|align = "center"|78
|}
|align = "center"|256
|align = "center"|401
|align = "center"|0,6


'''Normal DSP — by bandwidth:'''
|-
|align = "center"|20 k
|align = "center"|1
|align = "center"|401 and below
|align = "center"|3


{| class="wikitable" style="width:50%;"
! Bandwidth !! SPU/ch (real-time)
|-
| 25.6 kHz || 1.25
|-
| 20 kHz || 1
|-
| 12.8 kHz || 0.75
|-
|-
| 10 kHz || 0.5
|align = "center"|20 k
|}
|align = "center"|1
|align = "center"|801
|align = "center"|3,25


<small style="font-family:Arial,sans-serif;color:#6B7A99;">SPU count is directly proportional to analysis bandwidth (sampling frequency ÷ 2.56).</small>
|}<br clear="all">


----
[[Image:Order_analysis_19.png|framed|none]]


<!-- ══════════════════════════════════════════════════════
Sampling Frequency: set in ''Front-End/Inputs settings/Input sampling''
    TDA
══════════════════════════════════════════════════════ -->
== ⏱️ TDA ==


{| class="wikitable" style="width:40%;"
FFT Bandwidth: set in ''FFTx/FFT analysis/range''
! 🔵 Normal DSP (SPU/ch) !! 🟠 Force DSP (SPU/ch)
|-
| 3 || 1.5
|}


----
==


<!-- ══════════════════════════════════════════════════════
==Octave:==
    SOA
══════════════════════════════════════════════════════ -->
== 🔄 SOA (Order Analysis) ==


<div style="background:#FFF3E6;border-left:4px solid #F07800;border-radius:0 8px 8px 0;padding:8px 14px;margin-bottom:12px;font-family:Arial,sans-serif;font-size:0.82em;">
{|class="wikitable" style="background:white" border="2" cellspacing="0" cellpadding="4" width="61%" align="center"
⚠️ SOA computation depends on <strong>maximum speed, resolution and frequency</strong>. Force DSP computation is non-linear and reduces SPU consumption by <strong>2.5× to 5×</strong> vs Normal DSP.<br/>
|'''Bandwidth'''
<em>Example: @20 kHz, 401 lines → max 3 SPU/ch with Normal DSP.</em>
|'''Fdec'''
</div>
|'''Reso'''
|'''SPU/Channel <br>for Real-time'''


'''Normal DSP — SOA detail:'''
|-
|25.6k
|1
|1/3rd
|4


{| class="wikitable" style="width:70%;"
! Bandwidth (Hz) !! Decimation !! Resolution !! SPU/ch
|-
|-
| 20 kHz || 1 || 401 || 3
|20k
|1
|1/3rd
|3
 
|-
|12.8k
|1
|1/3rd
|2
 
|-
|-
| 10 kHz || 1 || 401 || 1.5
|10k
|1
|1/3rd
|1,5
 
|-
|-
| N kHz || 1 || 401 || = (N × 3) / 20
|20k
|1
|1/3rd
|3,0
 
|-
|-
| 10 kHz || 2 || 401 || 2
|10k
|2
|1/3rd
|2,0
 
|-
|-
| 5 kHz || 4 || 401 || 1.3
|5k
|4
|1/3rd
|1,25
 
|-
|-
| 2.5 kHz || 8 || 401 || 1.1
|20k
|1
|1/1
|1,5
 
|-
|-
| 1.25 kHz || 16 || 401 || 0.9
|20k
|1
|1/3rd
|3
 
|-
|-
| 625 Hz || 32 || 401 || 0.8
|20k
|1
|1/12th
|6
 
|-
|-
| 313 Hz || 64 || 401 || 0.7
|20k
|1
|1/24th
|12
 
|}<br clear="all">
 
[[Image:Octave_01.png|framed|none]]
 
Sampling Frequency: set in ''Front-End/Inputs settings/Input sampling''
 
1/N Oct Bandwidth: set in ''OCT/FFT analysis/range''
 
==OVA==
 
{|class="wikitable" style="background:white" border="2" cellspacing="0" cellpadding="4" width="52%"
|align = "center"|'''Bandwidth'''
|align = "center"|'''SPU/Channel <br>for Real-time'''
 
|-
|-
| 156 Hz || 128 || 401 || 0.6
|align = "center"|25,6k
|align = "center"|1,25
 
|-
|-
| 78 Hz || 256 || 401 || 0.6
|align = "center"|20k
|align = "center"|1
 
|-
|-
| 20 kHz || 1 || 801 || 3.25
|align = "center"|12,8k
|}
|align = "center"|0,75


<small style="font-family:Arial,sans-serif;color:#6B7A99;">Sampling Frequency: ''Front-End / Inputs settings / Input sampling'' · FFT Bandwidth: ''FFTx / FFT analysis / range''</small>
|-
|align = "center"|10k
|align = "center"|0,5


[[Image:Order_analysis_19.png|framed|none]]
|}


[[Category:WikiOros]]
The overall acoustic levels analysis requires 1 SPU per channel at 20 kHz bandwidth. The number of required SPUs is directly proportional to the analysis bandwidth (i.e. the sampling frequency divided by 2.56).

Navigation menu