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.

FPGA based Spectrum analyser

Status
Not open for further replies.

h_rafii

Junior Member level 3
Joined
Jul 22, 2014
Messages
31
Helped
0
Reputation
0
Reaction score
0
Trophy points
6
Activity points
242
Hi;

I'm doing a project for spectrum analyzer; i did analog parts ( now i have 0-100 Mhz analog signal ready for sampling).
I wanna show the spectrum in a LCD( i had wrote the code for that in last).

My Question is that :
am i have to convert it to Digital and then take an fft from it and then send the data to LCD???????


if yes! am i need 2 ADC for real and imaginary part ???

and

if my ADC have the resulation of 10 bit then what size of FFT should i use?


any one have any idea to help???

thanks
 

1) Convert your analog signal to digital
2) Perform the FFT. The real and imaginary parts come from the FFT, not from ADCs!
3) The resolution of the ADC has ABSOLUTELY NOTHING to do with the FFT size.
 

The FFT size you want depends on the required frequency resolution, not the amplitude resolution.

I don't think the real and imaginary parts are interesting if you want to do a spectrum analyzer. You only want the magnitude, which can be calculated from the real and imaginary values. Such a real-valued FFT can be computed more efficiently by pairing the real-valued inputs to complex values, doing a complex FFT with half the length, and then doing some simple post-processing.

So, instead of doing a 1024 point (or whatever) FFT with real input values, you can do a 512 point complex-input FFT plus some post processing. You will then get the 1024-point magnitude output.
 

- - - Updated - - -

1) Convert your analog signal to digital
2) Perform the FFT. The real and imaginary parts come from the FFT, not from ADCs!
3) The resolution of the ADC has ABSOLUTELY NOTHING to do with the FFT size.

so from what you said;
for example to a 10khz insulation from a 10 MHZ bandwidth i have to filter the analog signal with a band pass 10 MHz and then digitalize it with a ADC then but the data in a 1024 FFT; and each of the output of 1024 have the steps of 10khz magnitude?
i mean pin1 of 1024 investigates the energy in 0-1okhz and pin 2 of 1024 investigates the energy of 10khz-20khz and so om?? is thistrue?
 

The frequency resolution is defined by:

Freq. Resolution = Fs/N

Fs=sample rate, N=# points.

So what this tells you is that for a 1024 point FFT with 10MHz sample rate (not bandwidth) you will get 1024 values, and those values represent the amplitude at SPECIFIC frequencies spaced 10MHz/1024 apart. It's not completely accurate to say it represents the amplitude over a range.
 

The frequency resolution is defined by:

Freq. Resolution = Fs/N

Fs=sample rate, N=# points.

So what this tells you is that for a 1024 point FFT with 10MHz sample rate (not bandwidth) you will get 1024 values, and those values represent the amplitude at SPECIFIC frequencies spaced 10MHz/1024 apart. It's not completely accurate to say it represents the amplitude over a range.


sorry but is not this true that for example if we sample a signal with 20 ms/s so we will have half band of the sampling frequency (10 mhz) ?

secound point: why we can't say it accurately ? so if we not then why almost of spectrum analyzers use this way?
 

You are sort of right (and sort of wrong). If you sample at 10MHz, you're useful bandwidth is 5MHz (but the bins are still 10MHz/1024 apart).

I said nothing about bandwidth; your question was about resolution. But it's true that the upper 512 results in your FFT are just mirror images of the lower 512.

High-end spectrum analyzers use swept filters NOT FFTs.
 

You are sort of right (and sort of wrong). If you sample at 10MHz, you're useful bandwidth is 5MHz (but the bins are still 10MHz/1024 apart).

I said nothing about bandwidth; your question was about resolution. But it's true that the upper 512 results in your FFT are just mirror images of the lower 512.

High-end spectrum analyzers use swept filters NOT FFTs.


thank you very much Dear Barry;

i have learning very much from you and your points by searching.

so the final Ques is whats your recommends to make this spectrum analyzer happened.

thanks again dear friend.
 

thank you very much Dear Barry;

i have learning very much from you and your points by searching.

so the final Ques is whats your recommends to make this spectrum analyzer happened.

thanks again dear friend.


and also a Quis : in ISE coregen FFT generator have 2 input as real and imaginary !!! if i sample the signal with a ADC then how can i apply the sampled data into FFT???
 

The FFT approach might work very well for your application. It depends on your requirements.

As far as the coregen FFT IP goes, you can use it for real data only by setting the imaginary input to zero.
 
If you are only concerned with the power distribution across the signal spectrum you may also want to consider implementation using Fast Hartley Transform or discrete cosine transform method. This works with real value input and generates real value output - no imaginary data manipulations to handle. But again, it is dependent on your requirements.
 
Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top