For loop iterations random noise

2 visualizaciones (últimos 30 días)
Christopher
Christopher el 25 de Mzo. de 2013
Hi everyone,
My problem has to do with for loops and random noise. What i am ultimately trying to do is add noise to a signal so i can find the phasors (but that's beyond the point) When i add noise in an equation i feel like the same noise coefficient is being used for the 100 iterations of the equation. Is there a way when i run a for loop that i get a different random coefficient? This is my code so far
%Synchrophasors Homework #4
%Chris Coronel
%Problem #1
clear all;
close all;
j = sqrt(-1); %imaginary variable
N =24; %Number of samples per cycle
f1 = 60; %Nomincal frequency
f2 = 60.5; %Off nominal frequency
del_w = 2*pi*(f2-f1); %Difference between off and nominal frequency
w_prime = 2*pi; % The rate of change of the frequency
del_T = 1/(N*f1); %Sampling interval at nominal frequency
phi_0 = 0.1; %Assumed initial position of phase angle
n = 0:95;
Phi_1 = (phi_0 + del_w*n*del_T + (1/2)*w_prime*(n*del_T).^2)';%Equation to sample at
%%%%%This produces the exact same phase angles as Table 4.1 w/o noise%%%%
Phi_2 = (phi_0 + del_w*n*del_T + (1/2)*w_prime*(n*del_T).^2 + normrnd(0,.01))'; %Equation to sample at
%%%%%This produces the sample of phase angles with noise distribution%%%%%
%%%%Create the Coefficient Matrix%%%%%%
for m=0:95; %Number of samples per cycle interval
B1 = 1.^m;
B2 = m*del_T;
B3 =(m*del_T).^2;
format short
B(m+1,:) = [B1 B2 B3]; %Coefficient Matrix starting at m = 0
end
B_T = B'; % Transpose of Coefficient Matrix
%%%%Solve recursively for the phase angle%%%%%%
for p =1:(96-N);
A1 = inv(B_T(:,p:N-1+p)*B(p:N-1+p,:))*B_T(:,p:N-1+p)*Phi_1(p:N-1+p,:);
A2 = inv(B_T(:,p:N-1+p)*B(p:N-1+p,:))*B_T(:,p:N-1+p)*Phi_2(p:N-1+p,:);
A_no_Guassian(p,:) = A1
A_Guassian(p,:) = A2
end
delta_f1 = mean(A_no_Guassian(:,2)/(2*pi)); %difference of off and nominal freq mean no noise
f_prime1 = mean(A_no_Guassian(:,3)/pi); % mean of rate of change of frequency no noise
delta_f2 = mean(A_Guassian(:,2)/(2*pi))%difference of off and nominal freq mean with noise
f_prime2 = mean(A_Guassian(:,3)/pi) % mean of rate of change of frequency with noise
You will notice that the delta_f2 matches the delta _f1 which is not suppose to be the case. The delta+f2 should have some error since we added white guassian noise. Can someone help please, it'll be much appreciated !
Warm regards Chris Coronel

Respuesta aceptada

Matt Tearle
Matt Tearle el 25 de Mzo. de 2013
Editada: Matt Tearle el 25 de Mzo. de 2013
Phi_2 is Phi_1 plus a single random value. Without delving into the details of the ensuing math, I'm going to guess that's what's causing the problem. Try
Phi_2 = Phi_1 + normrnd(0,.01,size(Phi_1));
instead.
Also, pay attention to the Code Analyzer messages... Bad things are happening in that loop :)
  1 comentario
Christopher
Christopher el 25 de Mzo. de 2013
Thanks for the input Matt, much appreciated!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by