I just remeasured my Meizu HiFi DAC non-pro with 100% charged Android's battery, and HibyMusic player 1kHz Fs = 48k 16 and 24bit.
At 32ohm resistor load, it starts to clip at 49mW(previous my measurement has 31mW, and I suspect that my Android wasn't charged properly, and UAPP player used), near to that level THD+N was .0016% for 24bit and .0018% for 16bit. Furthermore, at no-load condition, Meizu HiFi DAC non-pro also looks much better than first time, see attached screenshot. THD+N reading .0002% and max harmonic at the level -124db! So, Meizu HiFi DAC non-pro is better than S8 if loaded(less power yet) and the same if not loaded.
PS: probably the first my Meizu HiFi DAC non-pro measurement, I just kept reference at 1VRMS and didn't measure THD and FFT at 2VRMS DAC supply if no load.. I'll try to discharge my Android later to find the root cause.
PS: probably some you guys, who familiar with Audio Precision analyzers can be surprised that SYS2700 software does the same trick with hires FFT like new APx500. I did implement some short Matlab script for that:
clear;
j=0;
span=1.5;
fid = fopen('C:\Users\64\Desktop\meizu.adx', 'r');
for i=1:1000
b = fscanf(fid,'%s', 1);
if strcmp(b,',,,,,,');
j=j+1;
end;
if j==3;
break;
end;
end;
for i=1:30000;
f = fscanf(fid,'%f', 1);
b = fscanf(fid,'%s', 1);
a = fscanf(fid,'%f', 1);
b = fscanf(fid,'%s', 2);
if i>1 && f<f1(i-1);
break;
end;
f1(i)=f;
a1(i)=a;
end;
f2(1)=f;
a2(1)=a;
for i=2:30000;
if feof(fid)
break;
end;
f = fscanf(fid,'%f', 1);
b = fscanf(fid,'%s', 1);
a = fscanf(fid,'%f', 1);
b = fscanf(fid,'%s', 2);
if isempty(f)
break;
end;
f2(i)=f;
a2(i)=a;
end;
fclose(fid);
peaki = find(a2==max(a2));% the peak frequency index
peakf=f1(peaki);% the peack frequency
floori=find(f1>peakf*span,100);% noise floor samples index
floor1=0;
for i=1:size(floori,2)
floor1=a1(floori(i))+floor1;
end;
floor1=floor1/size(floori,2);
floor2=0;
for i=1:size(floori,2)
floor2=a2(floori(i))+floor2;
end;
floor2=floor2/size(floori,2);
floord=floor1-floor2;% noise floors difference
k=floor1/floor2;
c=0;
for i=1:size(f1,2)
if f1(i)>peakf/span && f1(i)<peakf*span
combo(i)=a2(i)*k+c;
else combo(i)=a1(i);
end;
end;
fid = fopen('C:\Users\64\Desktop\combo.adx', 'w');
fprintf(fid, '\n');
fprintf(fid, 'Fft.FFT Freq., Fft.Ch.1 Ampl, ,,,,,,');
fprintf(fid, '\n');
fprintf(fid, 'Source 1, Data 1, ,,,,,,');
fprintf(fid, '\n');
fprintf(fid, 'Hz, dBr A, ,,,,,,');
fprintf(fid, '\n');
for i=1:size(combo,2)
fprintf(fid,'%f', f1(i));
fprintf(fid, ', ');
fprintf(fid,'%f', combo(i));
fprintf(fid, ', ,,,,,,');
fprintf(fid, '\n');
end;
fclose(fid);