?? bat2.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];sa = 5;sn = 5;% 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';% signalName = 'blocks';signalName = 'bumps';signalName = 'heavy sine';signalName = 'doppler';signalName = 'quadchirp';[s0,s] = wnoise(signalName,9,5);noise = s-s0;% 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;% s = s0 + (rand(1,l)-0.5)*sn;% signalName = 's3';% 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';n = 7;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 adn ddn] = SSNF(s,n,h,g,g1,picDir);[a d] = swt1d_decomp(s0,n,h,g);SignalEnergy = sum(s0.*s0);NoiseEnergy = sum((s-s0).*(s-s0));NoiseEnergyAfter = sum((sr'-s0).*(sr'-s0));SNR1 = 10*log10(SignalEnergy/NoiseEnergy);SNR2 = 10*log10(SignalEnergy/NoiseEnergyAfter);errorReduce = (NoiseEnergy-NoiseEnergyAfter)/NoiseEnergy;SNRadvanced = SNR2 - SNR1;SNRrate = (SNR2 - SNR1)/SNR1;figuresubplot(5,1,1), hold on, title(['原始信號 E:' num2str(SignalEnergy)]),plot(s0), set(gca,'XTick',0:50:l);subplot(5,1,2), hold on, title(['噪聲信號 E:' num2str(NoiseEnergy)]),plot(s-s0), set(gca,'XTick',0:50:l);subplot(5,1,3), hold on, title(['含噪信號 SNR:' num2str(SNR1)]),plot(s), set(gca,'XTick',0:50:l);subplot(5,1,4), hold on, title(['去噪信號 SNR:' num2str(SNR2) ' SNRadv: ' ... num2str(SNRadvanced) ' SNRrate: ' num2str(SNRrate)]),plot(sr), set(gca,'XTick',0:50:l);subplot(5,1,5), hold on, title(['誤差信號 E:' num2str(NoiseEnergyAfter) ' error redue: ' ... num2str(errorReduce)]),plot(sr-s0'), set(gca,'XTick',0:50:l);saveas(gcf, [picDir filesep 'finalResult'], 'png')%, close(gcf);figure, title('原始信號的細節信息矩陣');hold on;for i=1:n subplot(n,1,i);% title(['去噪后細節矩陣 ' num2str(i)]); plot(d(:,i)); set(gca,'XTick',0:50:l);endsaveas(gcf, [picDir filesep 'do'], 'png'), close(gcf);figure, title('去噪信號-原始信號的細節信息矩陣');hold on;for i=1:n subplot(n,1,i);% title(['去噪后細節矩陣 ' num2str(i)]); plot(ddn(:,i)-d(:,i)); set(gca,'XTick',0:50:l);endsaveas(gcf, [picDir filesep 'ddn_do'], 'png'), close(gcf);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -