[z,fs]=readwav('c:\yuyin\201.wav');
INC=128; %帧移
NW=256; %窗长
W=hamming(NW); %采用汉明窗
f=enframe(z,W,INC);%分帧加窗
f1=f(42,:);%选取第42帧
z1=dct(f1);%离散余弦变换
for t=1:NW
if(abs(z1(t))<0.02)
z1(t)=0
end
end
y1=z1;
m2=randn(NW/8,NW);%随机高斯矩阵作为观测矩阵
z=m2*y1';%生成观测序列
zz=SolveBP(m2,z,NW);%重建信号
ff=idct(zz);%离散余弦逆变换
B=hadamard(256);
m3=B(1:32,:);%部分哈达玛矩阵作为观测矩阵
w=m3*y1';%生成观测序列
zz1=SolveBP(m3,w,NW);%重建信号
ff1=idct(zz1);%离散余弦逆变换
C=randint(256,256);
m4=C(1:32,:);%部分哈达玛矩阵作为观测矩阵
d=m4*y1';%生成观测序列
zz2=SolveBP(m4,d,NW);%重建信号
ff2=idct(zz2);%离散余弦逆变换
subplot(411);plot(f1)
title('原始语音样本')
subplot(412);plot(ff)
title('随机高斯矩阵作为观测矩阵重建信号')
subplot(413);plot(ff1)
title('部分哈达玛矩阵作为观测矩阵重建信号')
subplot(414);plot(ff2)
title('部分伯努利矩阵作为观测矩阵重建信号')