www.gusucode.com > signal 案例源码程序 matlab代码 > signal/ThirdOrderInterceptPointFromPowerSpectralDensityExample.m

    %% Third-Order Intercept Point from Power Spectral Density
% Create a two-tone sinusoid with frequencies 5 kHz and 6 kHz, sampled at
% 48 kHz. Make the signal nonlinear by evaluating a polynomial. Add noise.
% Set the random number generator to the default settings for reproducible
% results.

% Copyright 2015 The MathWorks, Inc.


%%

rng default
fi1 = 5e3;
fi2 = 6e3;
Fs = 48e3;
N = 1000;
x = sin(2*pi*fi1/Fs*(1:N))+sin(2*pi*fi2/Fs*(1:N));
y = polyval([0.5e-3 1e-7 0.1 3e-3],x)+1e-5*randn(1,N);

%%
% Evaluate the periodogram of the signal using a Kaiser window. Compute the
% TOI using the power spectral density. Plot the result.

w = kaiser(numel(y),38);

[Sxx, F] = periodogram(y,w,N,Fs,'psd');
[myTOI,Pfund,Ffund,Pim3,Fim3] = toi(Sxx,F,'psd')

toi(Sxx,F,'psd');