我試圖找到使用FFT方法的一組輸入輸出數據的系統傳遞函數。我遵循的算法如下:如何在matlab中找到矩陣的波特圖?
- 將輸入數據和輸出數據加載到MATLAB中。
- FFT輸入數據和輸出數據。
- 將輸出FFT除以輸入FFT並取大小。由於我們例子的輸入是單位脈衝,輸入FFT是1.0。
- 繪製結果作爲博德的情節。
- 將產生的Bode'圖作爲頻率響應 - 它的確是 - 並使用頻率響應方法將傳遞函數擬合到計算的Bode'圖上。
我的代碼是:
load testdata.mat; // testdata is a 2 column matrix (1001x2 matrix)
input = fft(signal(:,1)); // FFT of input data (1001x1 complex matrix)
output = fft(signal(:,2)); // FFT of output data (1001x1 complex matrix)
fft_ratio = output/input; // (1001x1001 complex matrix)
fft_ratio_mag = abs(fft_ratio); // (1001x1001 matrix) except column 1, all other columns have '0' data
bode(fft_ratio_mag(:,1))
我得到以下錯誤:
Error using bode (line 84)
Not enough input arguments.
請指導我如何去在上面的算法步驟4和5。
fft_ratio作爲1001x1001矩陣;這聽起來正確嗎? –
如果這是mathworks bode函數,則它適用於系統對象,而不適用於矩陣。 http://www.mathworks.com/help/ident/ref/bode.html – engineerC
除第一列外,其他所有列都是0 + 0i。所以我猜想這並不重要。我已經看到了這個頁面http://www.mathworks.in/help/ident/ref/bode.html。但是,我無法生成sys。 –