03파형 수학 · 전달함수
전달함수 MATLAB 자료
파형 관계를 이해하기 위한 수학 과정의 1번째 주제에 포함된 강의입니다.
MATLAB® Welch 방법을 사용하여 여러 통계 추정기를 지원하는 연산자를 제공합니다. 여기에는 다음이 포함됩니다.
|
추정(…) |
H1과 H2를 추정합니다. |
||
|
페웰치(…) |
전력 스펙트럼 밀도를 추정합니다. |
||
|
cpsd(…) |
교차 전력 스펙트럼 밀도를 추정합니다. |
MATLAB의 예제 코드
clear % clear all variables
format long g; % set format of text output
N = 16; % length of input data sequence x
Fs = 1; % sample rate (used for scaling)
percent = 50; % percent overlap
Nfft = N * (1-percent/100);
x= [0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0]';
y= [0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0]';
% 0 3 7 11 13 15
%----------------------------------------------------------------------------
% smoothing window
%----------------------------------------------------------------------------
window = hanning(Nfft); % Hanning window
%----------------------------------------------------------------------------
% calculate estimates
%----------------------------------------------------------------------------
[H1, freq]=tfestimate(x,y,window,Noverlap,Nfft,Fs,'Estimator','H1');
[H2, freq]=tfestimate(x,y,window,Noverlap,Nfft,Fs,'Estimator','H2');
[Sxy,freq]=cpsd( x,y,window,Noverlap,Nfft,Fs); % estimate Sxy
[Sxx,freq]=pwelch( x, window,Noverlap,Nfft,Fs); % estimate Sxx
[Syy,freq]=pwelch( y,window,Noverlap,Nfft,Fs); % estimate Syy
% | | | | | | | | |_____ sample rate
% | | | | | | | |__________ estimate length
% | | | | | | |___________________ num. overlapping positions
% | | | | | |__________________________ window type
% | | | | |_____________________________ datasequence y
% | | | |_______________________________ data sequence x
% | | |_________________________________________ estimation operation
% | |_______________________________________________ x-axis sequence
% |___________________________________________________ estimate sequence Syx = conj(Sxy);
% estimate Syx H1b = Syx ./ Sxx;
% estimate alternate H1
H2b = Syy ./ Sxy;
% estimate alternate H2
%----------------------------------------------------------------------------
% estimate scaling parameter s
%----------------------------------------------------------------------------
% s = (norm(y)-(mean(y)*mean(y)))/(norm(x)-(mean(x)*mean(x)))
s = var(y)/var(x)
%----------------------------------------------------------------------------
% estimate Hs and Hv
%----------------------------------------------------------------------------
Hs = estimate_Hs(s,Sxx,Syy,Sxy);
% estimate Hs
Hv = estimate_Hv(Sxx,Syy,Sxy);
% estimate Hv
%----------------------------------------------------------------------------
% integrity checks
%----------------------------------------------------------------------------
if norm(H1b-H1)<1e-12
fprintf("H1 integrity check OK!
"); else
fprintf("H1 integrity check FAILED!!!");
end
if norm(H2b-H2)<1e-12
fprintf("H2 integrity check OK!
"); else
fprintf("H2 integrity check FAILED!!!");
end
function Hv = estimate_Hv(Sxx,Syy,Sxy) s=1; Hv = estimate_Hs(s,Sxx,Syy,Sxy); end function Hs = estimate_Hs(s,Sxx,Syy,Sxy) u1 = Syy;u2 = s * Sxx; u3 = (s * Sxx - Syy) .* (s * Sxx - Syy); u4 = abs(Sxy) .* abs(Sxy); v1 = 2.0 * Sxy; Hs = (u1 - u2 + sqrt(u3 + 4 * s * u4)) ./ v1; end
ASK AN ENGINEER
시험 조건을 실제 장비에 적용해 보세요.
시편 정보와 목표 조건을 보내주시면 시험 가능 여부를 검토합니다.
