0

さて、信号処理を行っています。幅 83.66 ミクロンのスリットと応答関数の畳み込みである信号があります。フーリエ変換の畳み込み特性を使用して、応答を見つけたいと考えています。私が使用したコードは次のとおりです。

num=xlsread('Data.xlsx','B2:C13');
y=num(13:end);
x=num(1:12);
width = 83.66;
p = width*sqrt(1/(2*pi))*sinc((x)*(width/2));
slit = abs(fftshift(ifft(p)));

figure
subplot(5,1,1);plot(x,y);title('imported data')
subplot(5,1,2);plot(x,p);title('transformed slit')
subplot(5,1,3);plot(x,slit);title('slit')

u = abs(fftshift(ifft(y)));
l = u./p;
response = abs(fftshift(fft(l)));

subplot(5,1,4);plot(x,response);title('response')

%Data Check
check = conv(slit,response,'full');
z = linspace(min(x),max(x),length(check));
subplot(5,1,5);plot(z,check./2);title('check')

x= で

-344.0000 -275.2000 -206.4000 -137.6000 -68.8000 0

7列目から12列目

68.8000 137.6000 206.4000 275.2000 344.0000 412.8000

そしてy=

Columns 1 through 5

       13771       12478       19443       69392      143737

  Columns 6 through 10

      189278      184486      188466      185023      128133

  Columns 11 through 12

       51288       10854

だから私がやっていることは、信号を入力し、fft を実行することです。次に、sinc 関数 (スリットの FT) で除算し、そのすべてを ifft します。私が持っているスリットで私の応答を再畳み込みすると、2つは同じではありません.

私が明らかに間違っているアイデアや何かはありますか?

4

0 に答える 0