?? bat4.m
字號:
function bat1%非正交的二次樣條二進小波h = [0 0 0.125 0.375 0.375 0.125 0 0].*sqrt(2);g = [0 0 0 -1 1 0 0 0].*sqrt(2);g1 = [0 0.015625 0.109375 0.34375 -0.34375 -0.109375 -0.015625 0].*sqrt(2);%正交的二次樣條二進小波% h = [0 0 0 0 0.375 0.125 0.373].*sqrt(2);% g = [0 0 0 0 0.5798 0.0869 0.0061].*sqrt(2);%g1 = [0 0.015625 0.109375 0.34375 -0.34375 -0.109375 -0.015625 0].*sqrt(2);%正交的三次樣條二進小波% h = [0 0.0625 0.2500 0.3750 0.2500 0.0625 0].*sqrt(2);% g = [-0.00008 -0.01643 -0.10872 -0.59261 0 0.59261 0.10872 0.01643 0.00008].*sqrt(2);%g1 = [0 0.015625 0.109375 0.34375 -0.34375 -0.109375 -0.015625 0].*sqrt(2);l = 512;x = [1:l];n = 7;sa = 0;sn = 5;dsa = 2.5;snum = 12;noise = rand(1,l)-0.5;so = sin(2*pi*x/l*4).*sin(2*pi*x/l*8).*sin(2*pi*x/l)+2.5;for i=1:snum % s0 = sin(2*pi*x/l*4).*sin(2*pi*x/l*8).*sin(2*pi*x/l)*sa+2*sa;% s = s0+(rand(1,l)-0.5)*sn;% signalName = 's1';sa = sa + dsa;% s = sin(2*pi*x/l*2);% s(1:l/4) = 2;% s(l/4+1:l*1/2) = 5;% s(l*1/2+1:l*3/4) = 3;% s(l*3/4+1:l) = 1;% s0 = s*sa;s0 = so*sa;s = s0 + noise*sn;SignalEnergy(i) = sum(s0.*s0);NoiseEnergy(i) = sum((s-s0).*(s-s0));SNR1(i) = 10*log10(SignalEnergy(i)/NoiseEnergy(i));signalName = ['s3_SNR' num2str(SNR1(i))];% s(1:l/4) = [1:l/4]./20 + l/8/20;% s(l/4+1:l*1/2) = s(l/4:-1:1);% s(l/2+1:l) = s(1:l/2);% s0 = s;% s = s0 + (rand(1,l)-0.5)*6;% signalName = 's2';picDir = ['pic' filesep signalName];if(exist(picDir,'dir')) ii = 1; picDir1 = [picDir '_' num2str(ii)]; while(exist(picDir1,'dir')) ii = ii+1; picDir1 = [picDir '_' num2str(ii)]; end picDir = picDir1;endmkdir(picDir);% sr = ss(:,n);sr = SSNF(s,n,h,g,g1,picDir);NoiseEnergyAfter(i) = sum((sr'-s0).*(sr'-s0));SNR2(i) = 10*log10(SignalEnergy(i)/NoiseEnergyAfter(i));errorReduce(i) = (NoiseEnergy(i)-NoiseEnergyAfter(i))/NoiseEnergy(i);SNRadvanced(i) = SNR2(i) - SNR1(i);SNRrate(i) = (SNR2(i) - SNR1(i))/SNR1(i);figuresubplot(5,1,1), hold on, title(['原始信號 E:' num2str(SignalEnergy(i))]),plot(s0), set(gca,'XTick',0:50:l);subplot(5,1,2), hold on, title(['噪聲信號 E:' num2str(NoiseEnergy(i))]),plot(s-s0), set(gca,'XTick',0:50:l);subplot(5,1,3), hold on, title(['含噪信號 SNR:' num2str(SNR1(i))]),plot(s), set(gca,'XTick',0:50:l);subplot(5,1,4), hold on, title(['去噪信號 SNR:' num2str(SNR2(i)) ' SNRadv: ' ... num2str(SNRadvanced(i)) ' SNRrate: ' num2str(SNRrate(i))]),plot(sr), set(gca,'XTick',0:50:l);subplot(5,1,5), hold on, title(['誤差信號 E:' num2str(NoiseEnergyAfter(i)) ' error redue: ' ... num2str(errorReduce(i))]),plot(sr-s0'), set(gca,'XTick',0:50:l);saveas(gcf, [picDir filesep 'finalResult'], 'png'), close(gcf);endx = [1:snum];figurehold on;[AX,H1,H2] = plotyy(x,SNR1,x,errorReduce,'plot');set(get(AX(1),'Ylabel'),'String','SNR')set(get(AX(2),'Ylabel'),'String','ErrorReduced')set(H1,'LineStyle','--')set(H2,'LineStyle','-.')title('去噪效果')saveas(gcf, ['pic' filesep 'SNRvsError'], 'png')%, close(gcf);figurehold on;plot(x,SNR1,'-',x,SNR2,'-.',x,SNRadvanced,'--');legend('SNR orginal','SNR after denoising','SNR advanced');title('SNR比較')saveas(gcf, ['pic' filesep 'SNRcompare'], 'png')saveas(gcf, ['pic' filesep 'SNRcompare'], 'fig')
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -