?? samplevalueanalyzer.asv
字號:
function y = SampleValueAnalyzer(inputEleSig,BitlengN,SamRate,BitSequence)
%%%%%%%% 取Q值最大點所在地為時間判決點OptTk, 并給出判決值參考值y_th, mu1, mu0, sigma1, sigma0
SamplesBit = SamRate;
SquenceNumber = BitlengN;
Squence = BitSequence;
Signal = inputEleSig;
SquenceTh = (max(BitSequence) + min(BitSequence))/2;
for ii=1:SamplesBit
u0=0;u1=0;Segama0=0;Segama1=0;
Number1=0;
Number0=0;
for kk=1:SquenceNumber
SamplePoint=ii+SamplesBit.*(kk-1) ; %sample point
if Squence(kk)>SquenceTh
u1=u1+Signal(SamplePoint);
Segama1=Segama1+Signal(SamplePoint).^2;
Number1=Number1+1;
else
u0=u0+Signal(SamplePoint);
Segama0=Segama0+Signal(SamplePoint).^2;
Number0=Number0+1;
end
end
if Number1==0
mu1(ii) = 0; Sigama1(ii) = 0;
mu0(ii)=u0./(Number0);
Sigama0(ii)=sqrt(Segama0./(Number0)-mu0(ii).^2);
elseif Number0 == 0
mu0(ii) = 0; Sigama0(ii) = 0;
mu1(ii)=u1./(Number1);
Sigama1(ii)=sqrt(Segama1./(Number1)-mu1(ii).^2);
else
mu1(ii)=u1./(Number1);
mu0(ii)=u0./(Number0);
Sigama1(ii)=sqrt(Segama1./(Number1)-mu1(ii).^2);
Sigama0(ii)=sqrt(Segama0./(Number0)-mu0(ii).^2);
end
QValue(ii)=(mu1(ii)-mu0(ii))./(Sigama1(ii)+Sigama0(ii));
end
%%%%只比較8至24個元素%%%
%QValue_choose=zeros(1,SamplesBit);
%for ii=8:24
% QValue_choose(ii)=QValue(ii);
%end
[SPStat(5), OptTk] = max(QValue);
SPStat(1) = mu1(OptTk); SPStat(2) = mu0(OptTk);
SPStat(3) = Sigama1(OptTk); SPStat(4) = Sigama0(OptTk);
DecTh = (SPStat(1)-SPStat(3) + SPStat(2)+SPStat(4))/2;
y = [OptTk,DecTh,SPStat];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -