Matlab Script that I can add a Gaussian Noise to a Discrete Wavelet Transform processed fault signal
Show older comments
Please does any one has a matlab script where I can add a Gausssian Noise to a Discrete Wavelete Transform processed fault signal. This will mimic a lightning disturbance and switching disturbance during fault connditions and normal steady state. Forf the protective relay to distinguish between this lightning disturbance and fault conditions
Accepted Answer
More Answers (1)
John Amoo-Otoo
on 21 Sep 2022
0 votes
5 Comments
William Rose
on 22 Sep 2022
I downloaded the m file and data file which you posted. I see that the m file is a function, not a script. It is not runnable on its own. Can you provide a script that calls this funciton, to help me understand it? Thank you.
Question 1. Why do you want to add Gaussian noise to the signal? I am asking because you asked "where will the Gaussian Noise fit", and the answer depends on what your goal is. If you want to test the ability of an algorithm to distinguish lightning versus some other fault, when the signal is noisy, then add the noise to the signals before you process them. If you have a downstream algorithm (after the DWT) which you want to evaluate, then maybe you woudl add noise after the DWT. Therefore please explain in more detail whay you want to add noise to a signal.
Quesiton 2a, 2b. The DWT function which you posted (which appears to have been written by a third party) says
% The signals in x are divided into multiple windows of size
% "winsize" and the windows are spaced "wininc" apart.
You must specify values for winsize and wininc when calling the function. Q.2a. What values do you plan to use for winsize and for wininc? Q.2b. What do you plan to do with the output from this function?
-------------
I examined the data in the file you sent, by doing the following:
clear
data=load('John_FaultData112km0ohm');
t1=table2array(data.DataPP112km0hmsFaultData(:,1));
x1=table2array(data.DataPP112km0hmsFaultData(:,2));
t2=table2array(data.SteadyStateNoneFaultState(1:end-1,1));
x2=table2array(data.SteadyStateNoneFaultState(1:end-1,2));
%Skip the last row of t2, x2, due to NaNs in that row
figure;
subplot(121); plot(t1,x1,'-r.');
xlabel('Time'); ylabel('Amplitude'); title('Transient 1'); grid on
subplot(122); plot(t2,x2,'-r.');
xlabel('Time'); ylabel('Amplitude'); title('Transient 2'); grid on
The data file includes two recordings. Record 1 is 0.7 seconds long. Record 2 is 30 seconds long. Each record shows a single transient event. Transient 1 occurs 0.2 seconds into the record. Transient 2 occurs at the start of record 2. Transient 1 recovers about 90% of the way to the pre-transient value. Transient 2 never recovers - it is a step change.
The transients differ in amplitude by a factor of 10^5. Therefore a simple threshold detector would easily distinguish the two. The non-return-to-baseline of transient 2 is another distinguishing feaure.
John Amoo-Otoo
on 24 Sep 2022
John Amoo-Otoo
on 24 Sep 2022
John Amoo-Otoo
on 24 Sep 2022
Edited: John Amoo-Otoo
on 24 Sep 2022
Categories
Find more on Wavelet Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!