?? program_17_02_special.asv
字號:
function program();
%裝載語音信號
clear all;
clc;
N=1024*60;
[s,fs,bits]=wavread('C:\TDDOWNLOAD\小波分析理論與MATALB R2007 實現\chapter17_S\sound.wav',N);
% sound(s,fs)
figure(1);
plot(1:N,s,'LineWidth',2);
xlabel('時間 n');
ylabel('幅值 A');
%選用小波函數
wavelet='db5';
%分解級數
level=5;
%壓縮參數
alpha=1.5;
%閾值類型
sorh='h';
%小波分解
[c,l]=wavedec(s,level,wavelet);
%計算閾值
[thr,nkeep]=wdcbm(c,l,alpha);
%使用硬閾值壓縮信號
[xc,cxc,lxc,perf0,perfl2]=wdencmp('lvd',c,l,wavelet,level,thr,sorh);
%對系數編碼
cC=encode(cxc);%調用編碼函數
%傳輸的系數
tC=cC;
%傳輸的系數向量長度
tL=length(tC)
%零系數的百分比
pzeros=perf0
%保留的能量大小
pnormen=perfl2
%編碼的壓縮比
compratio=length(s)/length(tC)
function cC=encode(C);
%初始變量
zeroseq=0;
zerocount=0;
j=1;
compC=[];
for m=1:length(C)
if (C(m)==0)&(zeroseq==0)
compC=[compC C(m)];
j=j+1;
zeroseq=1;
zerocount=1;
if m==length(C)
compC=[compC zerocount];
end
elseif (C(m)==0)&(zeroseq==1)
zerocount=zerocount+1;
if m==length(C)
compC=[compC zerocount];
end
elseif (C(m)~=0)&(zeroseq==1)
compC=[compC zerocount C(m)];
j=j+2;
zeroseq=0;
zerocount=0;
else
compC=[compC C(m)];
j=j+1;
end
end
cC=compC;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -