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

    %% Median Frequency of Bandlimited Signals
% Generate a signal whose PSD resembles the frequency response of an
% 88th-order bandpass FIR filter with normalized cutoff frequencies
% $0.25\pi$ rad/sample and $0.45\pi$ rad/sample.

% Copyright 2015 The MathWorks, Inc.


%%

d = fir1(88,[0.25 0.45]);

%%
% Compute the median frequency of the signal between $0.3\pi$
% rad/sample and $0.6\pi$ rad/sample. Plot the PSD and annotate the
% median frequency and measurement interval.

medfreq(d,[],[0.3 0.6]*pi);

%%
% Output the median frequency and the band power of the measurement
% interval. Specifying a sample rate of $2\pi$ is equivalent to leaving the
% rate unset.

[mdf,power] = medfreq(d,2*pi,[0.3 0.6]*pi);

fprintf('Mean = %.3f*pi, power = %.1f%% of total \n', ...
    mdf/pi,power/bandpower(d)*100)

%%
% Add a second channel with normalized cutoff frequencies $0.5\pi$
% rad/sample and $0.8\pi$ rad/sample and an amplitude that is one-tenth
% that of the first channel.

d = [d;fir1(88,[0.5 0.8])/10]';

%%
% Compute the median frequency of the signal between $0.3\pi$ rad/sample
% and $0.9\pi$ rad/sample. Plot the PSD and annotate the median frequency
% of each channel and the measurement interval.

medfreq(d,[],[0.3 0.9]*pi);

%%
% Output the median frequency of each channel. Divide by $\pi$.

mdf = medfreq(d,[],[0.3 0.9]*pi)/pi