FFT 방법을 사용하여 일련의 입출력 데이터의 시스템 전달 함수를 찾으려고합니다. 내가 따르는 알고리즘은 다음과 같습니다 :matlab에서 매트릭스의 보드 선도를 찾는 방법은 무엇입니까?
- 입력 데이터 및 출력 데이터를 matlab에로드하십시오.
- 입력 데이터와 출력 데이터를 FFT합니다.
- 출력 FFT를 입력 FFT로 나누고 크기를 취합니다. 예제의 입력은 단위 임펄스이므로 입력 FFT는 1.0입니다.
- 결과를 보드 '플롯으로 플롯합니다.
- 결과 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를 생성 할 수 없다. –