Red de conocimiento informático - Conocimiento informático - Después de modelar el AD de 12 bits, MATLAB escribe un programa para realizar FFT en él, calcular la relación señal-ruido y generar el espectro. ¿Cómo escribir el programa? urgente

Después de modelar el AD de 12 bits, MATLAB escribe un programa para realizar FFT en él, calcular la relación señal-ruido y generar el espectro. ¿Cómo escribir el programa? urgente

¿Utiliza Simulink para exportar datos al banco de trabajo? ¿Entonces usar matlab para calcular su SFDR, relación señal-ruido y otros parámetros?

También estoy haciendo una calibración dinámica de DAC recientemente, así que te daré el código. He anotado algunos de ellos y puedes modificarlos según tus propias necesidades.

% de carga ScopeData

datos dinámicos = señales de datos de alcance

data_size=tamaño (datos dinámicos); n = max(data_size);

Sample_number=input('Punto de muestreo de entrada:');

if sample_number & gtNormal

Display ("Datos de muestra insuficientes , verifique")

else data = datos_dinámicos (1: número_muestra);

n = número de muestras;

Fin

F_samples=input('Frecuencia de muestreo de entrada:');

Mean_code=mean(data);

v =código medio de datos;

V = V. *Hanning(N);

dout _ SPECT = FFT(V);

dout _ dB = 20 * log 10(ABS(dout _ SPECT));

máx _ dB = máx(dout _ dB(1:N/2));

x=(0:N/2-1). * F _muestra/N;

y = dout _ dB(1:N/2)-max _ dB;

Figura (1)

gráfico ( x, y);

eje();

Cuadrícula desactivada;

Título ('gráfico FFT'); 'Frecuencia de entrada analógica (Hz)');

Ylabel('Amplitud (dB)');

f _ in = find(dout _ dB(1:N/ 2) = = max_dB);

span=max(redondeado (N/200), 5);

spanh = 2;

spectp= (abs(dout_spect )).

*(ABS(dout _ SPECT));

PDC = suma(spectp(1:span)

% Ps = suma(spectp(F _ in-span:F) _ en+span));

f _ armónico =[];

p _ armónico =[];

para har_number=1:10

p>

tono = rem((har _ número *(F _ in-1)+1)/N, 1);

if tono & gt0.5

tono = 1 tono;

Fin

F _ armónico =[F _ tono armónico];

har _ pico = max( spectp(round(tono * N)-spanh:round(tono * N)+spanh));

har _ bin = find(spectp(round(tono * N)-spanh:round(tono * N)+spanh) = = har _ pico);

har _ bin = har _ bin+round(tono * N)-spanh-1

P _ armónico =[ P _ suma armónica (spectp(har_bin-1:har_bin+1))];

Fin

Visualización (armónico F)

Visualización (onda armónica P)

%

% Pd = suma(P _ armónico(2:5));

%

% Pn = suma( spectp(1:N/2))-Pdc-Ps-Pd;

Formato;

% SNR = 10 * log 10(Ps/Pn)

%

% SINAD = 10 * log 10(Ps/(Pn+Pd))

SFDR = 10 * log 10(P _ armónico(1)/max( P _ armónico(2:5))

% THD = 10 * log 10(Pd/P _ armónico(1))

%

% ENOB =( SINAD-1.76)/6.02