gusucode.com > MVDR算法仿真源码程序 > MVDR算法仿真源码程序/code/Illustrate.m
clear all %% This program calls the main program "coherence_MVDR", %% which computes the coherence function with the MVDR method %example on how the coherence function works with the MVDR method %see papers for more explanations n = 1024; %number of samples nT = [0:n-1]'; %time axis Nf = 5; %number of frequencies of high coherence f = zeros(Nf,1); f(1) = 0.05; f(2) = 0.06; f(3) = 0.07; f(4) = 0.08; f(5) = 0.09; % fw = 2*pi*f; x1 = randn(n,1); %first signal x2 = randn(n,1); %second signal for i = 1:Nf x1 = x1 + cos(fw(i)*nT); x2 = x2 + cos(fw(i)*nT + 2*pi*rand(1,1)); end %coherence with MATLAB WL = 100; %window length [cx1x2,w] = cohere(x1,x2,WL); % figure(1); % subplot(2,1,1) plot(w/2,cx1x2) %legend(''); grid on; ylabel('MSC'); title('(a)') axis([0 1/2 0 1]); %Coherence with the MVDR method K = 200; %to increase resolution L = 100; %window length [MSC]=MVDR_new(x1,x2,L,K); % K2 = K/2; MSCf = MSC(1:K2); wwf = [0:1/K2:1-1/K2]'; % subplot(2,1,2) plot(wwf/2,MSCf) grid on; ylabel('MSC'); xlabel('Frequency'); title('(b)') axis([0 1/2 0 1]);