⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 imtowav2.m

📁 Matlab中一种图像变声音的简单演示程序源代码。
💻 M
字号:
function [f,st] = imtowav2(name)
 FL = 500; FH = 5000; FS = 20000; T = 1.05; 
G = imread(name);
G = im2double(G);
[N,M]=size(G);
ir = int16(0); ia = int16(9301); im = int16(233280); ic = int16(4929);
%int i,j,b,d = D;
b = 1; d = 1;
k = 0; ns = int32(FS*T); m = int32(ns/N);
dt = 1.0/FS; scale = 0.5/(N^(1/2));
for i=1:N
    w(i) = 2*pi*FL *(FH / FL)^(i/(N-1));
end    
for i=1:N
    phi0(i) = 2*pi*rem(ir*ia+ic,im)/(1.0*im);
end    
wl(ns+36);  wl(16);
wi(1); wi(1); wl(0+FS); wl(0+FS); wi(1); wi(8); wl(ns);
tau1 = 0.5 / w(N); tau2 = 0.25 * tau1*tau1; y=0;z = 0.0;    
while (k < ns) 
      s = 0; t = k * dt; j = int16(k / m); 
      if (j>N-1) 
          j=N-1;
      end    
      for i=1:N  
          s = s + G(i,j+1) * sin(w(i) * t + double(phi0(i)));
      end  
     
      if (k < int16(ns/(5*N))) 
          s = (2.0*double(rem(ir*ia+ic,im))/double(1.0*im)-1.0) / scale; 
      end    
       
      yp = y; y = tau1/dt + tau2/(dt*dt);
      y  = (s + y * yp + tau2/dt * z) / (1.0 + y); z = (y - yp) / dt;
      y = y*0.5/N^(1/2);
      if (y > 1) 
         y=1;
      end    
      if (y < -1) 
          y=-1;
      end 
      ss(k+1)=s;
      arti2(k+1)=y;
      k = k + 1;
end
f=arti2'; 
st=ss';
sound(arti2,20000,8);
%x=(1:ns);
%plot(x,ss);
%plot(x,arti2);





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -