| Filter Design Toolbox | ![]() |
Calculate and return the predicted mean-squared error for selected adaptive filters
Syntax
[mmse,emse] = msepred(ha,x,d) [mmse,emse,meanw,mse,tracek] = msepred(ha,x,d) [mmse,emse,meanw,mse,tracek] = msepred(ha,x,d,m)
Description
[mmse,emse] = msepred(ha,x,d)
predicts the steady-state values at convergence of the minimum mean-squared error (mmse) and the excess mean-squared error (emse) given the input and desired response signal sequences in x and d and the property values in the adaptfilt object ha.
[mmse,emse,meanw,mse,tracek] = msepred(ha,x,d)
calculates three sequences corresponding to the analytical behavior of the LMS adaptive filter defined by ha:
meanw--contains the sequence of coefficient vector means. The columns of matrix meanw contain predictions of the mean values of the LMS adaptive filter coefficients at each time instant. The dimensions of meanw are (size(x,1))-by-(ha.length).
mse--contains the sequence of mean-square errors. This column vector contains predictions of the mean-square error of the LMS adaptive filter at each time instant. The length of mse is equal to size(x,1).
tracek--contains the sequence of total coefficient error powers. This column vector contains predictions of the total coefficient error power of the LMS adaptive filter at each time instant. The length of tracek is equal to size(x,1).
[mmse,emse,meanw,mse,tracek] = msepred(ha,x,d,m)
specifies an optional input argument m that is the decimation factor for computing meanw, mse, and tracek. When m > 1, msepred saves every mth predicted value of each of these sequences. When you omit the optional argument m, it defaults to one.
Examples
Analyze and simulate a 32-coefficient adaptive filter using 25 trials of 2000 iterations each.
x = zeros(2000,25); d = x; % Initialize variables ha = fir1(31,0.5); % FIR system to be identified x = filter(sqrt(0.75),[1 -0.5],sign(randn(size(x)))); n = 0.1*randn(size(x)); % observation noise signal d = filter(ha,1,x)+n; % desired signal l = 32; % Filter length mu = 0.008; % LMS step size. m = 5; % Decimation factor for analysis % and simulation results ha = adaptfilt.lms(l,mu); [mmse,emse,meanW,mse,traceK] = msepred(ha,x,d,m); [simmse,meanWsim,Wsim,traceKsim] = msesim(ha,x,d,m); nn = m:m:size(x,1); subplot(2,1,1); plot(nn,meanWsim(:,12),'b',nn,meanW(:,12),'r',nn,... meanWsim(:,13:15),'b',nn,meanW(:,13:15),'r'); title('Average Coefficient Trajectories for W(12), W(13),... W(14) and W(15)'); legend('Simulation','Theory'); xlabel('time index'); ylabel('coefficient value'); subplot(2,2,3); semilogy(nn,simmse,[0 size(x,1)],[(emse+mmse) (emse+mmse)],nn,mse,[0 size(x,1)],[mmse mmse]); title('Mean-Square Error Performance'); axis([0 size(x,1) 0.001 10]); legend('MSE (Sim.)','Final MSE','MSE','Min. MSE'); xlabel('Time Index'); ylabel('Squared Error Value'); subplot(2,2,4); semilogy(nn,traceKsim,nn,traceK,'r'); title('Sum-of-Squared Coefficient Errors'); axis([0 size(x,1) 0.0001 1]); legend('Simulation','Theory'); xlabel('Time Index'); ylabel('Squared Error Value');
See Also
| min | msesim | ![]() |
Learn more about the latest releases of MathWorks products: |
| © 1994-2010 The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |