clear all
N=2^16;
L=8;
fd=1000;
sko=65;
sr=5;
t=0:1/fd:(N-1)*1/fd;
noise=sr+(sko*(randn(1,N)+j*randn(1,N)));
smes=noise;
smes_s=reshape(smes,N/L,L);
sp1=(abs(fft(smes_s)))/(N/L);
sp=mean(sp1');
sp_noise=median(sp(1:end));
P_sp_noise=sqrt((N/L)*sp_noise^2)/1.25
P_vr_noise=std((noise))/sqrt(2)
Fpr=10;
Fpod=12;
[L1,f,a] = remezord([Fpr Fpod],[1 0],[0.1 0.000001],fd);
h1 = remez(L1, f , a);
fop=155/fd;
opora=exp(sqrt(-1)*2*pi*fop*(1:length(h1)));
Hn=h1.*opora;
figure(1)
plot(sp)
hold on
plot(abs(fft(Hn,length(sp))),'r')
hold off
D=round(fd/(2*Fpod))-1;
n_f=upfirdn(smes,Hn,1,D);
P_vr_noise_f=std(abs(n_f))
figure(2)
hold on
plot(abs(n_f),'r')
plot(abs(noise(1:length(n_f))),'g')
hold off
P_sp_noise - уровень шума, рассчитанная в спектральной области
P_vr_noise - уровень шума, рассчитанного во временной области
P_vr_noise_f - уровень шума после фильтрации и децимации и амплитудного детектора.
P_sp_noise и P_vr_noise вроде показывают одно и тоже значение, которое соответствует модельной величине sko. Но для того, чтобы соответствие получилось, пришлось в P_vr_noise ввести поправочный коэффициент 1.25. Вопрос - откуда он берется?
После фильтрации, децимации и амплитудного детектирования получается P_vr_noise_f, но ее никак не получается пересчитать с учетом фильтра, децимации и детектирования к исходному P_vr_noise. Вопрос как это можно сделать (или наоборот - зная исходный P_vr_noise пересчитать, что получиться после фльтрации, децимации и детектирования)?