Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Selectiing reference signal if only one input signal(with noise) for the LMS

Status
Not open for further replies.

patan.gova

Full Member level 3
Full Member level 3
Joined
Dec 19, 2011
Messages
172
Helped
4
Reputation
8
Reaction score
0
Trophy points
1,296
Visit site
Activity points
2,776
Hello,

I am confused with selecting the reference signal for the LMS algorithm as it needs two inputs i.e, one the input signal and other reference signal.But I only have a detected pulse signal as input itself containing noise. So,what should I select as my reference signal for such an input signal. Can anyone explain me of how to handle the reference signal for LMS adaptive filtering.As I am planning to apply this LMS for removing motion artifacts in pulse signals.

The below is the code for function :Least mean square having inputs x(reference),d(input),mu_step:filter step size,M:filter length

Code:
function [w,y,e,W] = LMS(x,d,mu_step,M)
N = length(x); % number of data samples
 y = zeros(N,1); % initialize filter output vector
 w = zeros(M,1); % initialize filter coefficient vector
e = zeros(N,1); % initialize error vector
W = zeros(M,N); % filter coefficient matrix for coeff. history
for n = 1:N
  if n <= M % assume zero-samples for delayed data that isn't available
      k = n:-1:1;
      x1 = [x(k); zeros(M-numel(k),1)];
  else
      x1 = x(n:-1:n-M+1); % M samples of x in reverse order
  end
  y(n) = w'*x1; % filter output
  e(n) = d(n) - y(n); % error
  w = w + mu_step*e(n)'*x1; % update filter coefficients
  W(:,n) = w; % store current filter coefficients in matrix
end

The needed motion artifacts pulse signal is shown below with every 500 values represent a pulse signal where each 500 values represent 1 sec pulse signal sampled at 500hz at the microcontroller side.

Pulse signal with motion artifacts.JPG
 
Last edited:

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top