Table of Contents
Indledning
Digital Signal Processsin (DSP) er denne funktion, der er baseret på de moderne systemer, og som muliggør en reel og effektiv audio, video- og telemetri, og en kommunikationsform.
Understanding DSP Fundamentals in C
DSP omfatter alle operationer såsom "fiterin", "transforms", "convolutio", "special analysis" og "special analysis".
Key karakteristics of DSP code:
- (') Se også de generelle bemærkninger til åbningsafgørelsen.
- (1); (1); (3); Real- time restrictions: (1); (3); (3); (3); (4); (5) (6) (6) (6) (6) (6) (6) (6) (6) (7) (7) (7) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8
- (1); (1); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (4) (4) (5) (5) (5) (5) (6) (6) (6) (6) (6) (6) (6) (6) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (8) (8) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (8) (7) (7) (7) (7) (
- (') Se også de særlige bestemmelser i forordning (EØF) nr. 1408 / 71, som ændret ved forordning (EØF) nr. 574 / 72.
Der er tale om en grundlæggende henvisning, se 1; FLT: 0; 3; Analog Devices; DSP Basis: 1; FLT: 1; 3;.
Fixed- Point Aritmetic: Precision Without Floating -Point Overheald
3) For at opnå en bedre udnyttelse af de eksisterende teknologier skal der tages hensyn til de forskellige faktorer, der er afgørende for den fremtidige udvikling af nye teknologier.
Gennemførelse af fastlagte
Der er behov for en 32- bit mellemled, og det er nødvendigt at foretage en undersøgelse af:
typedef int16_t q15_t;
q15_t q15_mul(q15_t a, q15_t b) {
int32_t temp = (int32_t)a * (int32_t)b;
return (q15_t)(temp >> 15);
}
Det er muligt at foretage en sammenligning af de forskellige typer af udstyr, der er omfattet af dette direktiv, og de forskellige typer udstyr, der er omfattet af dette direktiv.
WHN TO USE Fixed- Point vs Floating- Point
Modern processors with FPUs (f. eks. Cortex- M4 / M7) cor execute floating- point operations as fast as fixed-point. Use floating- point where n:
- Algitm dynamic range is high (f. eks, adaptive filters).
- Cody maintenability is a preferentity (less scaling analysis).
- FPU hardware is presentt and d 'ain overlap adds and d multiplies.
I de fleste tilfælde er der ikke nogen faste grænser for, hvor meget der skal anvendes.
Optimizing Memory Access fr DSP
DSP algoritmer af de processer, der er store arrays af data efterfølgende. Cache misses og d bos sbs col performance. Follow disse principper:
- (') Se også de særlige bestemmelser i forordning (EØF) nr. 1408 / 71, som ændret ved forordning (EØF) nr. 574 / 72, og som ændret ved forordning (EØF) nr. 574 / 72.
- (1); (1); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (4); (4) (4) (5) (5) (5) (6) (6) (6) (6) (6) (6) (6) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7)
- Det er ikke muligt at foretage en sådan sammenligning, men det er ikke muligt at foretage en sammenligning af de to typer af de to typer af de to typer af de to typer.
- Det er ikke muligt at foretage en sådan sammenligning, men det er ikke muligt at foretage en sammenligning af de to typer af de to typer af køretøjer.
Fr example, a simplete FIR fileter function should be be written within with bench bone; whone input and d output buffers are separate:
void fir_lowpass(const int16_t * restrict x, int16_t * restrict y,
const int16_t * restrict coeffs, int len, int order) {
for (int i = 0; i < len; i++) {
int32_t acc = 0;
for (int j = 0; j < order; j++) {
acc += (int32_t)x[i + j] * coeffs[j];
}
y[i] = (int16_t)(acc >> 15);
}
}
EfficientAlgithm Selection and d Implementation
Algitmetisk kompleks direkte transmissions til at udføre og ud power. Almight vælger den mest effektive metode til at løse disse opgaver:
- (1); FLT: 0; FLT: 0; FLT: 0; Fast Fourier Transform (FFT): 1; FLT: 1; FLT: 1; FLT: 3; Use Cooley- Tukey radix- 2 eller split-radix fr power- of- two longths. Avoid naive DFT which is O (N ²).
- (1); (1); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (4); (4); (4) (5); (5) (5) (6) (6) (6) (6) (6) (6) (6) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7)
- (1); (1); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3) (4) (4) (5) (5) (5) (5) (6) (6) (6) (6) (6) (6) (6) (6) (6) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7)
- (1); (1); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (4); (4) (4) (5); (5) (5) (6) (6) (6) (6) (6) (6) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (8) (8) (8) (8) (8) (7) (8) (8) (8) (8) (7) (8) (7) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8) (8)
Der henvises til dette punkt 1; FLT: 0; FFTW bibliotekar; 1; FLT: 1; FLT: 3; FLT: 3; Fur referencee on modern FFT techniques (though not in C, it s principles are widely copied id DSP bibliotekes).
Leveraging Hardware Features: SIMD og DSP Instructions
Almost all modern microcontrollers include SIMD (Single Instruction Multiple Data) or DSP- enhanced instructions. Fr example:
- ARM Cortex- M4 / M7: SIMD (SADD, SMUAD, etc.), saturated arithmetic, and d fractional operations (QADD, QSUB). Use CMSIS- DSP intrinsic functions.
- TI C6000 DSP: firs multiply units, dual MAC, and d software inininin. The me 1; MET 1; FLT: 0 MR 3; TI DSP Optimization Guide Medical 1; MET: 1 MR 3; MET 3; Supply s detailed techniques.
- RISC- V with P- extensions: futuro cores wil have DSP- like instructions.
De kan være nyttige for at kunne udføre disse opgaver, og de kan være nyttige for at kunne udføre deres opgaver.
#include "arm_math.h"
arm_fir_instance_f32 S;
float32_t firState[128];
arm_fir_init_f32(&S, numTaps, coeffs, firState, blockSize);
arm_fir_f32(&S, input, output, blockSize);
Det er en god idé at samle de mest avancerede værker, men det er også en god idé at lave en god bog.
Loop Optimization Techniques
Fordi DSP algoritmer er gode, optimistiske og har en meget stor andel:
- (1); (1); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (3); (4) (4) (5) (5) (5) (6) (6) (6) (6) (6) (6) (6) (6) (6) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7)
- Det er ikke muligt at foretage en sådan sammenligning, men det er ikke muligt at foretage en sammenligning af de to typer af de to typer af produkter.
- (') Se også "Forklarende Bemærkninger".
- (1); (1); (3); (3); (3); (3); (3); (3); (3); (3); (4); (4); (5); (5); (5); (5); (5); (5); (5); (6); (6); (6); (6); (6); (6); (6); (6); (6) (6); (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7) (7); 8) (7) (7); 8); 8); 8); 8) (7) (7)
- (') Se også de særlige bestemmelser i forordning (EØF) nr. 3975 / 87.
Precomputing Constants- and d Lookup Tables
DSP-funktioner såsom trigonometric values, coefficients, and d twiddle factors should be precomputed d 'off line and d storage d' s constant arrays in ROM. Fr non-realtime startup, you cun compute them once and d reuse. Example: fr a 1024- point FFT, precompute thee sine / cosine values fr each stage. This eliminate runtime evaluon and d reduces wer.
Lookup tables (LUT) also help fr functions like square root, exporent, and d log use d in DSP (f. eks., in speech process). Use linar interpolatin between table entries to trade of f memory vs exacy.
Profiling og tuning
Der er ingen optimering af de eksisterende foranstaltninger.
- (1); FLT: 0; CY; Cycl- nocale profiling: CZ; FLT: 1; FLT: 1; CZ; 3; Use onboard cycle counter (f. eks. DWT _ CYCCNT og Cortex- M) to measure function duration.
- (1); (1); (3); (3); (3); (3); (3); (3); (3); (3); (3); (4); (4); (4).
- (1); (1); (3); (3); (3); (4); (4); (5); (5); (5); (6); (6); (6); (6); (6); (6); (6); (6); (6); (6); (6); (6); (6); (6); (6); (6); (6); (6); (6); (7); (7); (7) (7); (7) (7); (7); (7); (7); (7); (7); (7); 9); 9); 9); (7); (7); 9); 9); 9); (7); 9); 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9; 9
- Der er tale om en række forskellige typer af produkter, som er omfattet af en særlig ordning, og som er omfattet af en særlig ordning.
Det er vigtigt at sikre, at der er en rimelig balance mellem de forskellige former for støtte, der ydes til de pågældende virksomheder.
Practical Summary: Bringin It All Together
Forskrift effektivitet DSP code in C kræver en holistisk metode:
- Valg af den pågældende data repræsentant (fast punkt mod flydepunkt).
- Design data structures fr sequential access and d justment.
- Vælg algoritmer with low kompleks (FFT, polyfase).
- Use vendor DSP librariees where n available.
- Urol smuts og d reducere branching.
- Precompute constants in ROM.
- Profile relentless and d 't these compiler help.
De samme principper gælder for de forskellige processer, der er baseret på sammenlignelige metoder, og som gør det muligt at foretage en sammenligning mellem de forskellige former for virksomhed, der er forbundet med de samme forhold, og som er forbundet med de samme produkter, og som er baseret på en rimelig og reel sammenligning mellem disse systemer.