
上:通常のconvolution(窓掛け無し)

上:窓掛けして、遅延分を、ずらし、再度逆窓掛けしたもの
   これなら、よさそうですね。
    プログラムは、こう、なりました。 
   赤色が、修正した所です。
    t=linspace(0,2*pi,48000);
    x_sample=2400;
    sample=48000;
    taps=2000;
    M=x_sample + taps -1;
    ham=hamming(x_sample);
    ham=ham';            % 転置
    %================================================================================
    x=sin(1000*t)+sin(6000*t); % 1KHz & 6KHz sin wave
    x1=x(1:x_sample);                 
% x_sample pointに限定
   
h=fir1(taps-1,0.2);            
% fir LowPass filter coef taps=2000 cutoff=4.8KHz
   
h=h';                     
% 転置
    h1=[h zeros(1,x_sample-1)];
    H=fft(h1,sample);          % filter係数をFFTしたもの
    %----次にXを計算する------------------------------------------------------------
    x1 = x1.*ham;           % window
    x2=[x1 zeros(1,taps-1)];    % x をゼロ詰め
    X=fft(x2,sample);
    u = H.*X;
    Y = ifft(u);
    Y = real(Y(1000:1000+x_sample-1));
    
   
Y = Y./ham;            %
inv window        
    plot(Y);
    hold;
    x3=filter(h1,1,x);       % 通常のconvolution
    %x3=x3(1000:3399);
    plot(x3);
    hold;
   入力した、1KHzと6KHzの内、6KHzは、バサッと、切れていますね。
   
 さて、実際は、どうなります事やら...これから試す準備です。
   それから、ホ−ムページ作成に、フリーのNVUというものを、使い始めました。
    まだ、慣れてなくて、見苦しいかも.... m(__)m
H.19.1.11 ( 20070111 )