sourav
New Member
Offline
Posts: 7
|
Hi Guys, I am finding issues in SNR calculation for my Simulink model and the model given in Screier toolbox.A pdf file is attached with the SNR figures and the model i have used
Specifications for my simulink model:
Amplitude= 0.8 Samples per period= 1170 Sample time= 10^-6 Frequency=2*pi*854.49 Hz
a,g,b,c have been calculated for CIFB model as:
H = synthesizeNTF(2,256,0,2); [a,g,b,c] = realizeNTF(H,'CIFB') a = 0.4721 1.2361 g = 0 b = 0.4721 1.2361 1.0000 c = 1 1
Matlab code for SNR calculation: OSR = 256; H = synthesizeNTF(2,OSR,0,2); N = 8192; fB = ceil(N/(2*OSR)); f=7; u = 0.8*sin(2*pi*f/N*[0:N-1]); v = simulateDSM(u,H); %% t = 0:1000; stairs(t, u(t+1),'g'); hold on; stairs(t,v(t+1),'b'); axis([0 200 -1.2 1.2]); ylabel('u, v'); %% spec=fft(v.*ds_hann(N))/(N/4); %figure plot(linspace(0,0.5,N/2+1), ... dbv(spec(1:N/2+1))); axis([0 0.5 -120 0]); grid on; ylabel('dBFS/NBW') snr=calculateSNR(spec(1:fB),f); s=sprintf('SNR = %4.1fdB\n',snr) text(0.25,-90,s); s=sprintf('NBW=%7.5f',1.5/N); text(0.25, -110, s);
Problem is that SNR for my model does'nt scale with OSR and also significantly smaller than theoretical one....
All sorts of suggestions are solicited....
Thanks and Regards, Sourav
|