📄 bysj7.m
字号:
clear;
t=[0:1/80000:79999/80000];
f11=wavread('sy7.wav',80000)*10;
f12=f11';
f1=f12(1,:);
n=length(f1);
%f1=0.5*sin(2*pi*800*t);
%f0=800 hz;
%fs=80000 hz;
figure
subplot(3,1,1);
plot(t,f1);
axis([0 600/80000 -1 1])
g=0; m=pi/10; m0=pi/20;
y=zeros(1,80000);
for i=1:1:80000
e(i)=f1(i)-g;
if e(i)<=0
y(i)=0;
else
y(i)=1;
end
%---------------------------------------------
if i<3
if y(i)==0
g=g-m;
else
g=g+m;
end
else
if ((y(i)==y(i-1))&(y(i-1)==y(i-2)))%&(y(i-2)==y(i-3))
if y(i)==0
m=m+m0;
g=g-m;
else
m=m+m0;
g=g+m;
end
else
if y(i)==0
g=g-m;
else
g=g+m;
end
end
end
end
%------------------------------ 解码 --------------------------------------------
gg=zeros(1,80000);
g=0;
for j=1:80000
gg(j)=g;
if j<3
if y(j)==0
g=g-m;
else
g=g+m;
end
else
if ((y(j)==y(j-1))&(y(j-1)==y(j-2)))%&(y(i-2)==y(i-3))
if y(j)==0
m=m+m0;
g=g-m;
else
m=m+m0;
g=g+m;
end
else
if y(j)==0
m=m;
g=g-m;
else
m=m;
g=g+m;
end
end
end
end
tt=0:1/80000:79999/80000;
subplot(3,1,2)
plot(tt,gg)
axis([0 600/80000 -1 1])
%x=hanning(80000);
%b=fir1(303,0.075);
[b,a]=butter(8,0.2);
gg2=filter(b,a,gg);
subplot(3,1,3)
plot(tt,gg2)
axis([0 600/80000 -1.5 1.5])
%----------------------------------------------------------
b_f1=20*log10(abs(fft(f1(1:1024),1024))+eps);
b_gg=20*log10(abs(fft(gg(1:1024),1024))+eps);
b_gg2=20*log10(abs(fft(gg2(1:1024),1024))+eps);
f=(0:511)*80000/1024;
figure
subplot(3,1,1)
plot(f,b_f1(1:512))
subplot(3,1,2)
plot(f,b_gg(1:512))
subplot(3,1,3)
plot(f,b_gg2(1:512))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -