For loop iterations random noise

조회 수: 5 (최근 30일)
Christopher
Christopher 2013년 3월 25일
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

채택된 답변

Matt Tearle
Matt Tearle 2013년 3월 25일
편집: Matt Tearle 2013년 3월 25일
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
Christopher
Christopher 2013년 3월 25일
Thanks for the input Matt, much appreciated!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Mathematics에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by