2016-03-29 3 views
1

インパクトハンマーを使用して励起され、加速度計が取り付けられているテストサンプルの固有周波数を見つけるために、次のコードを作成しました。しかし、私はinterp_accelerance_dB_firstで立ち往生した。この補間はNaN値のセットを作成し、私はその理由を知らない。私はそれが奇妙なので、interp_acceleranceは正常に働いたと思う。私は誰かが私を助けることを願っていますx,y,oがありますが、一般的にinterp1何を知らなくても確かに言うのは難しいMatlabは自然周波数を見つけ、interp1関数はNaN値を作成します

N = 125000; 
fs = 1/(x(2)-x(1)); 
ts = 1/fs; 
f = -fs/2:fs/(N-1):fs/2; 

% Set x-axis of graph 
x_max = (N-1)*ts; 
x_axis=0:ts:x_max; 

% find the first natural frequency between these boundaries 
First_lower_boundary = 15; 
First_upper_boundary = 30; 


Input = abs(fft(y)); %FFT input force 
Output = abs(fft(o)); %FFT output acceleration 

Accelerance = Output./Input; 

bin_vals = [0 : N-1]; 
fax_Hz = bin_vals*fs/N; 
N_2 = ceil(N/2); 

% Interpolate accelerance function in order to be able to average all accelerance functions 
Interp_accelerance = interp1(fax_Hz(1:N_2),Accelerance(1:N_2),x_axis); 


% --- Find damping ratio of first natural frequency 

% Determine the x-axis (from the boundries at the beginning of this script) 
x_axis_first_peak = First_lower_boundary:ts:First_upper_boundary; 

% Accelerance function with a logarithmic scale [dB] 
Accelerance_dB_first = 20*log10(Accelerance(First_lower_boundary:First_upper_boundary)); 


% Interpolate the accelerance function [dB] 
Interp_accelerance_dB_first = interp1(fax_Hz(First_lower_boundary:First_upper_boundary),Accelerance_dB_first,x_axis_first_peak); 
+0

'x'と' y'の値は何ですか? – gariepy

答えて

0

あなたはデータのがx軸の範囲の外側を補間しようとすると、NaNを返します。コードの末尾に次の行を追加します。

[min(fax_Hz(First_lower_boundary:First_upper_boundary)),max(fax_Hz(First_lower_boundary:First_upper_boundary))] 
[min(x_axis_first_peak),max(x_axis_first_peak)] 

2番目のセグメントが最初のセグメントの内側にない場合は、問題が見つかりました。

ちなみに、interp_acceleranceは入力パラメータの正確な性質によって同じエラーが発生する可能性があります。

+0

あなたは正しいです、2番目のセグメントは 'interp_accelerance'だけでなく最初のセグメントの遠くまで落ちません。 x、y、oパラメータは、オシロスコープから直接抽出され、1x125000倍の性質を持ちます。 – Laura

+0

私はmatlabについてほとんど知識がなく、コードをコピーしていくつか変更しましたが、残念ながらうまくいきません。私はこの問題を解決するために何ができるのか知っていますか?いずれにせよ、あなたのコメントをありがとう、それは非常に有用です! – Laura

+0

あなたのコメントに追加したコードは 'minとmax fax_Hz'をそれぞれ0.7と1.45、' minとmax x_axis_first_peak'を15と30にしました。私はオシロスコープによって生成された信号が弱すぎると推測していますか? – Laura

関連する問題