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.

what is feature extraction from signal?

Status
Not open for further replies.

anumkhan

Newbie level 4
Joined
Sep 16, 2011
Messages
5
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,333
Hi all,

I am just confuse about what is the meaning of features extraction from any (current and vibration) signal? And what methods are available?

Which technique is good for that FFT, STFT or wavelet?
Thanks in adv.
Regards,
Anum
:cool:
 

"a" signal typically has the following "features":

Amplitude, frequency, spectrum. This is common for electrical, acoustic, hydraulic, etc. signals.

The simplest signal in a conductor can be 50 or 60 Hz AC current or voltage. It can be sinusoidal, and it can often have other than harmonic components.
Oscilloscopes can be very useful to observe electrical signals. If the signal shape is not a pure sinusoid, then modern oscilloscopes have FFT function, so you can observe signal spectrum over a certain bandwidth.
There are many other mathematical operations with signal functions, useful in certain applications.
 

Thnaks for the answer.... but still confusion is there. whats methods are available?
Labview will be good tools or matlab?
what do mean Oscilloscopes in physical or use in software?

Regards,
Anum
 

Dear Anum:

1. I do not know what your signal is. Usually, by sensors, other than electrical signals are converted into electrical signals.
2. The best instrument to observe and analyze signals is an oscilloscope. Depending upon signal type, repetitive or single-run, fine-structure, etc., there is a variety of oscilloscopes available today. You can see voltages over time patterns. If you need to know signal spectrum, modern oscilloscopes offer FFT or spectrum analysis.
3. Find Agilent white papers on signal analysis with more information. Take a college course on mathematical analysis of signals. If you have access to software you mention, you can try it, too.
 

thanks for you reply, Here I am facing a problem with sample code, how to run this code.?????
When I tried to run this code following error is generating.
"??? Undefined function or method 'STFT' for input arguments of type 'char'."

And Secondly, I have some electric current data of healthy machine so how I can Analyse it through STFT technique??????
Really worry, hoping for help.

Thanks.

=====================================================================================
function y = STFT(x, sampling_rate, window, window_length, step_dist, padding)
%
% y = STFT(x, sampling_rate, window, window_length, step_dist, padding)
%
% STFT produces a TF image of "x".
% The output is also stored in "y".
%
% For "window", use one of the following inputs:
% rectangular = 1
% Hamming = 2
% Hanning = 3
% Blackman-Tukey = 4
%
% The time scale is associated with the center of the window,
% if the window is of odd length. Otherwise, the window_length/2
% is used. "Step_dist" determines the stepping distance between the number
% of samples, and is arranged to maintain the proper time index
% provided by "sampling_rate" in seconds. "Padding" is the
% total length of the windowed signal before the fft, which is
% accomplished by zero padding.
%
% Developed by Timothy D. Dorney
% Rice University
% April, 1999
% tdorney@ieee.org
%
% Coded using MATLAB 5.X.X.
%
% REVISION HISTORY
%
% VERSION 1.0.0 APR. 21, 1999 TIM DORNEY
%

if (nargin ~= 6)
disp('STFT requires 6 input arguments!')
return;
end
if ((window < 1) | (window > 4))
window = 1;
disp('The argument "window" must be between 1-4, inclusively. Window set to 1!');
end
if ((step_dist < 1) | (round(step_dist) ~= step_dist))
step_dist = 1;
disp('The argument "step_dist" must be an integer greater than 0. Step_dist set to 1!');
end
if (sampling_rate <= 0)
disp('The argument "sampling_rate" must be greater than 0.');
break;
end
if (padding < window_length)
padding = window_length;
disp('The argument "padding" must be non-negative. Padding set to "window_length"!');
end

if (window == 1)
WIN = ones(1,window_length);
elseif (window == 2)
WIN = hamming(window_length)';
elseif (window == 3)
WIN = hanning(window_length)';
elseif (window == 4)
WIN = blackman(window_length)';
end

[m,n] = size(x);
if (m ~= 1)
X = x';
else
X = x;
end
[m,n] = size(X);
if (m ~= 1)
disp('X must be a vector, not a matrix!');
break;
end

LENX = length(X);
IMGX = ceil(LENX/step_dist);
if (padding/2 == round(padding/2))
IMGY = (padding/2) + 1;
else
IMGY = ceil(padding/2);
end

y = zeros(IMGX,IMGY);

if (window_length/2 == round(window_length/2))
CENTER = window_length/2;
x_pad_st = window_length - CENTER - 1;
x_pad_fi = window_length - CENTER;
else
CENTER = (window_length+1)/2;
x_pad_st = window_length - CENTER;
x_pad_fi = window_length - CENTER;
end

X = [zeros(1,x_pad_st) X zeros(1,x_pad_fi)];

iter = 0;
for kk = 1:step_dist:LENX
iter = iter + 1;
XX = X(kk:(kk + window_length - 1));
YY = XX .* WIN;
ZZ = abs(fft(YY, padding));
y(iter,:) = ZZ(1:IMGY);
end

freq = (1/sampling_rate)/2;
imagesc([0:(step_dist*sampling_rate):(sampling_rate*(LENX-1))], ...
[0:(freq/(IMGY-1)):freq],y');
xlabel('Time (seconds)');
ylabel('Frequency (Hz)');
axis('xy')


=====================================================================
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top