Code covered by the BSD License  

Highlights from
Fully Automatic Signal Spectrum Analyser

4.8

4.8 | 6 ratings Rate this file 34 Downloads (last 30 days) File Size: 2.57 KB File ID: #28688
image thumbnail

Fully Automatic Signal Spectrum Analyser

by

 

The program produces the frequency spectrum of any signal

| Watch this File

File Information
Description

This program operates as a signal spectrum analyzer and a distortion meter at the same time. It can accept any numerical data representing few cycles of a signal. The data do not need to be equally separated. At least ten data points per cycle are needed. Higher number of data points will of course produce better results. The main advantage of the program is its ability to automatically detect the fundamental frequency. Any part of the spectrum within the frequency band f1-f2 can be calculated and plotted. The input to the software are the time and signal voltage arrays t,v, the frequency band limits f1 and f2 and the accuracy parameter delta. The out puts of the program are the signal plot, the spectral analysis plot, the frequencies and relative amplitudes of the ten most prominent frequency contents. The software has been successfully used to analyze data obtained from oscilloscope screen pictures of many signals using another program written by the author called oscilloscope.
The program can be called through entering
[F,A]=spectrum_analysis(t,v,f1,f2,0.001)
N.B
ONE OTHER PROGRAM NEED TO BE PRESENT IN THE WORK DIRECTORY
It is “maxima” this is in the Zip file

MATLAB release MATLAB 6.5 (R13)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (7)
25 Dec 2014 Ali  
07 Nov 2013 Rami

Thank you for the code. Can you get total power of a signal from this?
Also, this may be too much to ask, but can you find:
(1) the frequency below which 50% of the total power is present and
(2) the frequency below which 95% of the total power is present?
Thank you in advance,
Sarah

13 Jun 2013 Gaoxiang

Thanks!
This code is very good!
Could you list some references of this spectrum analyzer code? I have an interest in the details of this method!

12 Mar 2013 Scott Richardson

Please disregard my comment above, I see my mistake, the code works fine. Thank you!

12 Mar 2013 Scott Richardson

Hi, I enter the following...

t=[0:0.0001:40];
v=sin(2*pi.*t)+cos(5*pi.*t)+sin(7*pi.*t)+sin(12*pi.*t)+cos(15*pi.*t)+sin(17*pi.*t)+sin(22*pi.*t)+cos(25*pi.*t)+sin(27*pi.*t)+sin(32*pi.*t);
[f,U]=Spectrum_Analyser(t,v,1,40,0.001);

...and I get frequencies of 1, 2.5, 3.5, 6, 7.5, 8.5, 11, 12.5, 13.5, 16.

But I was expecting 2, 5, 7, 12, 15, 17, 22, 25, 27, 32.

Why is that?

19 Nov 2011 Saud

I am new in MATLAB spectram analtsis. any body tell me how to run this code. when i try to run this code the following error is coming:

??? Input argument "t" is undefined.

Error in ==> Spectrum_Analyser at 28
[x,y]=maxima(t,v);

13 Oct 2010 Walid

thanks a lot, great work !

Contact us