📄 yasuo.m
字号:
function [sc,snr,nzn]=con_rec(s,bi_th,r)
% wavelet subband compress and recovery based on HAS (基于掩蔽效应的小波压缩和修复)
% s: original signal (原始信号)
% b1_th:threshold value of b1 high frequency band (b1高频段阈值)
% r:factor parameters according to b1's r(1) (根据b1的r1的阈值比)
% sc:recovered signal (恢复信号)
% snr:signal noise ratio (信噪比)
% nzn:no zero numver of recovered signal (恢复信号的无零数)
% 5 lever wavelet transform (5级小波变换)
[a1 b1]=dwt(a0,'Daubechies-6');
[a2 b2]=dwt(a1,'Daubechies-6');
[a3 b3]=dwt(a2,'Daubechies-6');
[a4 b4]=dwt(a3,'Daubechies-6');
[a5 b5]=dwt(a4,'Daubechies-6');
% quantization (量子化)
b1c=(sign(abs(b1)-b1_th*r(1))+1).*b1/2;
b1c=(sign(abs(b1c)-b1_th*r(1))+1).*b1c/2;
b2c=(sign(abs(b2)-b2_th*r(2))+1).*b2/2;
b2c=(sign(abs(b2c)-b2_th*r(2))+1).*b2c/2;
b3c=(sign(abs(b3)-b1_th*r(3))+1).*b3/2;
b3c=(sign(abs(b3c)-b1_th*r(3))+1).*b3c/2;
b4c=(sign(abs(b4)-b1_th*r(4))+1).*b4/2;
b4c=(sign(abs(b4c)-b1_th*r(4))+1).*b4c/2;
b1c=(sign(abs(b5)-b1_th*r(5))+1).*b5/2;
b1c=(sign(abs(b5c)-b1_th*r(5))+1).*b5c/2;
% recovery of signal (信号回复)
a4c=idwt(a5c,b5c,'Daubechies-6');
a3c=idwt(a4c,b4c,'Daubechies-6');
a2c=idwt(a3c,b3c,'Daubechies-6');
a1c=idwt(a2c,b2c,'Daubechies-6');
sc=idwt(a1c,b1c,'Daubechies-6');
% calculate SNR (计算信噪比)
ps1=s.*s;
ps=sum(ps1);
ds=s-sc;
pds1=ds.*ds;
psd=sum(pds1);
snr=10*log10(ps/pds);
%calculate nzn (计算恢复信号无零数)
nzb1=sign(abs(b1c));
nzb2=sign(abs(b2c));
nzb3=sign(abs(b3c));
nzb4=sign(abs(b4c));
nzb5=sign(abs(b5c));
nza5=sign(abs(a5));
nzn=sum(nzb1)+sum(nzb2)+sum(nzb3)+sum(nzb4)+sum(nzb5)+sum(nza5);
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -