test1.m

来自「matlab仿真通过的降噪程序」· M 代码 · 共 37 行

M
37
字号
clear all;
[y1,fs,bits]=wavread('f:\voise\3.wav');
y=y1/max(abs(y1));%归一化
wavwrite(y,8000,8,'f:\wav\3.wav');
figure(1);
plot(y);

win=hamming(256);
for j1 = 1:length(y1),
 signal(j1) = y(j1);
end;

frame=256;
head=0;
for k = 1 : length(signal)/frame,
        for m = 1 : frame,
          abc1(m) = signal(head+m);
          abc1=abc1.*win';
        end;
        
        head = head +frame;
        frame_temp(k,1:frame) = abs(fft(abc1));% FFT OF THE SIGNAL + NOISE FRAME BY FRAME

        frame_angle(k,1:frame) = angle(fft(abc1));
        
     frame_temp(k,1)=-frame_temp(k,1).*(exp(-i*frame_angle(k,1)));   
    frame_temp(k,2:frame)=frame_temp(k,2:frame).*(exp(-i*frame_angle(k,2:frame)));
    %frame_temp(k,(frame/2+1):frame)=frame_temp(k,(frame/2+1):frame).*(exp(-i*frame_angle(k,(frame/2+1):frame)));   
        frame2(k,1:frame)=ifft(frame_temp(k,1:frame));
        
     signal(1,(((k-1)*frame)+1):(k*frame)) = frame2(k,1:frame)./win'; 
     
 end
 figure(2);
 plot(1:length(signal),signal);
       wavwrite(signal,8000,8,'f:\wav\test1.wav');
        

⌨️ 快捷键说明

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