簡體   English   中英

如何在MATLAB中計算高斯曲線的調制傳遞函數?

[英]How to calculate modulation transfer function of a gaussian curve in MATLAB?

我正在嘗試使用 MATLAB 找到高斯擬合曲線的調制傳遞函數。 高斯曲線如下: 高斯曲線

x 軸是距離(從-15mm to 15mm ),y 軸是計數(幅度)。 我使用以下代碼找到高斯曲線的傅立葉變換

  FFT_y = fft(y); %take fourier transform
  FF_mag = abs(FFT_y )/(length(FFT_y )); %find magnitude
  FF_mag = (FF_mag-min(FF_mag))./(max(FF_mag)-min(FF_mag)); %normalize magnitude

我使用以下代碼裁剪了FF_mag

FF_mag_nw = FF_mag(1:(length(FF_y)/32));
plot(FF_mag_nw);

我在上面的代碼中使用了 32 來獲取圖形的主要部分,我得到了 MTF 圖,如下所示: 機動特遣隊

我對X軸感到困惑。 X 軸的lines per mm范圍是多少? 誰能幫我提供一個計算 MTF 圖的 X 軸的想法?

提前致謝! 摩奴

matlab手冊對計算非常具體。 例如,看看這個

dx = 0.1
x = -15:dx:15;      
Fs = 1/dx;          % Sampling frequency
L = length(x);      % Signal length
sigma = 5;
amp   = 437500;
y     = amp/sqrt(2*pi*sigma^2) * exp(-x^2/(2*sigma^2));

n = 2^nextpow2(L);
Y = fft(y,n);
f = Fs*(0:(n/2))/n;
P = abs(Y/n);
plot(f,P(1:n/2+1)) 
title('Gaussian Pulse in Frequency Domain')
xlabel('Frequency f [in units of 1/dx]')
ylabel('|P(f)|')

你為真實空間高斯使用了多少點。 如果這個數字是 N,要在 (1/mm) 中轉換 fft x 軸,你應該除以 N。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM