さて、信号処理を行っています。幅 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つは同じではありません.
私が明らかに間違っているアイデアや何かはありますか?