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
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>
p>
tono = rem((har _ número *(F _ in-1)+1)/N, 1);
if tono & gt0.5 p>
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