Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- FPGAs and Programmable Solutions
- Programmable Devices
- Signal Processing

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-23-2011
12:00 PM

822 Views

Signal Processing

Hi guys,

First of all I would like to thanks everybody for the tips. But now I have another problem. I am building a receiver and I will use FPGA to process the signal. My receiver has a front -end (antenna) a LNA, filter, and a A/D converter. After the A/D converter I need to process that signal in a FPGA and show the signal spectrum in a PC computer. I don't know what I can do after A/D converter. I am lost, because I don't know how the FPGA can process the signal. Does anybody can help me? thanks
25 Replies

Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-23-2011
12:56 PM

5 Views

The simplest thing to do is to do fft on the signal from ADC.

To avoid complex software work for pc interfacing you can capture fft output in signaltap or memory editor and then use a tool e.g. matlab to display result. You can also do fft on PC if signal slow enough. In this case you only need to capture ADC data directly in signaltap or memory editor. You will need to enter your frequency axis based on sampling rate of ADC.
Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-24-2011
04:10 AM

5 Views

Are you building a 'receiver' or 'spectrum analyzer'? A receiver implies you have some sort of signal you are expecting to receive, whereas a spectrum analyzer is used to determine the power vs frequency in the signal being received.

You can check that your ADC works by capturing a block of samples, and then transferring those samples to a PC for analysis. However, you will not get very good signal-to-noise, since you will have such a low processing rate. You can perform the operations directly on the FPGA. There are two forms of spectrum analysis commonly implemented that achieve maximum SNR; auto-correlation via lag correlation and a polyphase filterbank (basically a filter followed by an FFT). If SNR is not an issue, then you can use an NCO to demodulate your signal, a low-pass filter, and a power detector (multiplier), and sweep the NCO across the input bandwidth. What bandwidth are you trying to sample? What FPGA are you planning on using? What types of signals are you hoping to receive? How many bits are your ADCs. Cheers, Dave
Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-24-2011
02:00 PM

5 Views

Hi Dave, thanks for all.

My problem is: I have a frequency range 100 KHz to 3 GHz and I have to detect all signals between that frequency range, for example (AM, FM, GSM, Bluetooh...etc). I need to choice a ADC and implement the signal processing in FPGA. I don't know which ADC I can use. The maximum bandwith that I have to try to sample is 20 MHz, But I don't know how many bits my ADC must have.
Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-24-2011
02:29 PM

5 Views

How can you sample a 3GHz signal with 20Mhz ADC?

There's something wrong in your specifications. If you want to the 3GHz signal you have to sample at more than 6 GHz. For the numebr of bits, well, if money is not a problem the highest the better. You can always neglect the LSBs later.
Highlighted
##

My especification is correct, But I will do a downconverter frequency before ADC, because I don't get to sample 3 GHz.

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-24-2011
03:34 PM

5 Views

Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-24-2011
05:29 PM

5 Views

nplttr: take a look into bandpass sampling :)

Highlighted
##

--- Quote Start --- Hi Dave, thanks for all. My problem is: I have a frequency range 100 KHz to 3 GHz and I have to detect all signals between that frequency range, for example (AM, FM, GSM, Bluetooh...etc). I need to choice a ADC and implement the signal processing in FPGA. I don't know which ADC I can use. The maximum bandwith that I have to try to sample is 20 MHz, But I don't know how many bits my ADC must have. --- Quote End --- You still have not specified what you want to do with the signals. By 'detect' do you mean demodulate, or just 'detect' power? The number of bits required from your ADC will depend on what type of signal processing you want to perform. However, a 16-bit 100MHz ADC will likely do anything you want. There are Altera HSMC cards with that feature (Terasic), and some of the Altera DSP kits have 100MHz ADCs. Are you planning on buying a commercial demodulator? Building a demodulator that takes 3GHz down to DC is a non-trivial task. You will likely need different types of analog front-ends, and switch between them, eg. op-amp based designs from DC to ~100MHz, and RF amplifiers above that. Of course, you could sample the signal directly, but you would need an ADC with an analog input bandwidth of over 3GHz. National Semiconductor and e2v have GHz clock rate parts, eg. http://www.e2v.com/products-and-services/hi-rel-semiconductor-solutions/broadband-data-converters/da... You might be able to find a manufacturer with one of these ADCs on an Altera board, eg. Bittware http://www.bittware.com/products/hardware/prod_desc.cfm?prodshrtname=3fad-s43x Depends whether you're looking to build or buy really. Cheers, Dave

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-26-2011
04:29 AM

5 Views

Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-28-2011
10:52 AM

5 Views

Hi Dave,

Thanks for your tip. You asked me what I will do with the signal, detect and demodulate or just detect the power. In my case I want just detect the power, not demodulate. thanks for all
Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-28-2011
11:27 AM

5 Views

If the ADC output represents a bandlimited signal, calculating the variance will give the total signal power. It's a rather simple algorithm.

The overall problem is however missing many specification details. The questions you are asking can't be answered without a full specification, Furthermore, the way you are asking suggests that you are far from understanding the problem complexity.
Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-28-2011
12:14 PM

5 Views

Hi people,

I have all details, but which details you want to know. thanks
Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-28-2011
12:17 PM

5 Views

I think Filipe gave enough info. He wants to sample some specific signals for spectrum display. The signal will be downconverted to baseband before ADC by someone.

If this is student project then it is unfair to ask for any full spec. All what is needed is a general purpose ADC that can cover speed well above twice highest frequency expected then do fft inside fpga then display the fft output vectors(Re/Im) on pc.
Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-28-2011
12:36 PM

5 Views

Thank you Kaz,

That is my problem. I will do a downconverter frequency before ADC . thank you so much
Highlighted
##

--- Quote Start --- I think Filipe gave enough info. .. If this is student project then it is unfair to ask for any full spec. --- Quote End --- I don't agree. He has been asking e.g. for the required ADC resolution. The question can rarely be anwered from the given information. I would also guess, that a spectral analysis of the input signal is intended, unfortunately it hasn't been said clearly. Just copying the project title would most likely clarify a lot. At the present state, the appropriate general suggestion is: Start with a digital signal processing text book, e.g. Stearns/Hush.

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-28-2011
04:15 PM

5 Views

Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-28-2011
05:07 PM

5 Views

Hi FvM,

But which information do you want to help me. thanks
Highlighted
##

Let us simply assume, that the down conversion has been achieved somehow, also including sufficient filtering to remove aliasing components. So which information do you want to extract from the digitized signal available at the ADC output?

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-28-2011
10:30 PM

5 Views

Highlighted
##

--- Quote Start --- Hi Dave, Thanks for your tip. You asked me what I will do with the signal, detect and demodulate or just detect the power. In my case I want just detect the power, not demodulate. thanks for all --- Quote End --- The next question is what type of resolution do you want from your spectrum? Lets say you do use a 100MHz ADC to sample the signal, and you use digital demodulation and decimation to select a 10MHz band. What type of resolution would you like, eg. 1MHz, 100kHz? You can convert a sequence of time samples into a power spectrum by either lag correlation, or by using the discrete Fourier transform to implement the correlation operation. You can implement a lag correlator using delays (registers) and multipliers or logic elements configured to act as multipliers. Depending on the signals you are looking at, it may be possible to use low bit width multiplications (which do not require actual multipliers). If however you plan on correlating tones or signals with a lot of RFI, if you sample too coarsely, you will generate harmonics. If your signals are noise-like, then coarse quantization just makes the signals noisier (lower efficiency), but this may be acceptable if you have time available to integrate (average) and recover a SNR that is acceptable. You can implement a discrete correlation using an FFT. The discrete correlation of an N-point sequence has 2N-1 points. If you want to reproduce this correlation identically using an FFT, you have to pad an N-point sample sequence to at least 2N-1 points, then Fourier transform, and then take the magnitude squared. Many applications can get by with just taking the FFT of an N-point sequence and then taking the magnitude squared of that sequence. In your case, it would be sufficient to use an FFT core, and take the magnitude squared of the output and sum a sequence of outputs to improve the signal-to-noise. Once you read the data out, you can divide by the integration time to normalize it. You will likely need to scale the data into an appropriate power scale. An N-point FFT will give N/2+1 unique frequency channels, frequency channels 0 to N/2. An (N/2+1) lag autocorrelation, for lags 0 to N/2, can reproduce this same spectrum. If you want 100kHz resolution for a sampling frequency of 20MHz (10MHz bandwidth sampled), then you want at least 100 channels. Because you are time-limiting your spectra to N-lags, your spectrum will be convolved with the sinc-response of this effective rect function. To improve resolution, you can take the lag response, or the inverse Fourier transform of the averaged spectra, and apply a window function, eg. Hamming window, then Fourier transform to spectra. This window will reduce the sidelobes in the spectra, but it will make the frequency channels wider. So if you want 100kHz resolution in the spectra, you'll need more channels, eg. 200-channels. If you would like some references on digital signal processing, just ask. Cheers, Dave

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

03-01-2011
06:00 AM

5 Views

Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

03-01-2011
11:05 AM

5 Views

Hi FvM,

I have a frequency range of 100 KHz to 3 GHz, I want to show a signal between that frequency range. But, I can do it only in the frequency domain, so I do a FFT after ADC and I show that spectrum in a PC computer. My problem is only do the FFT because to show it in a PC computer is not me do it. Am I correct? thanks
Highlighted
##

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

03-01-2011
11:10 AM

5 Views

FFT is no problem if you got fft core. Just plug it in choosing your bitwidth and fft resolution.

Highlighted
##

--- Quote Start --- The next question is what type of resolution do you want from your spectrum? Lets say you do use a 100MHz ADC to sample the signal, and you use digital demodulation and decimation to select a 10MHz band. What type of resolution would you like, eg. 1MHz, 100kHz? You can convert a sequence of time samples into a power spectrum by either lag correlation, or by using the discrete Fourier transform to implement the correlation operation. You can implement a lag correlator using delays (registers) and multipliers or logic elements configured to act as multipliers. Depending on the signals you are looking at, it may be possible to use low bit width multiplications (which do not require actual multipliers). If however you plan on correlating tones or signals with a lot of RFI, if you sample too coarsely, you will generate harmonics. If your signals are noise-like, then coarse quantization just makes the signals noisier (lower efficiency), but this may be acceptable if you have time available to integrate (average) and recover a SNR that is acceptable. You can implement a discrete correlation using an FFT. The discrete correlation of an N-point sequence has 2N-1 points. If you want to reproduce this correlation identically using an FFT, you have to pad an N-point sample sequence to at least 2N-1 points, then Fourier transform, and then take the magnitude squared. Many applications can get by with just taking the FFT of an N-point sequence and then taking the magnitude squared of that sequence. In your case, it would be sufficient to use an FFT core, and take the magnitude squared of the output and sum a sequence of outputs to improve the signal-to-noise. Once you read the data out, you can divide by the integration time to normalize it. You will likely need to scale the data into an appropriate power scale. An N-point FFT will give N/2+1 unique frequency channels, frequency channels 0 to N/2. An (N/2+1) lag autocorrelation, for lags 0 to N/2, can reproduce this same spectrum. If you want 100kHz resolution for a sampling frequency of 20MHz (10MHz bandwidth sampled), then you want at least 100 channels. Because you are time-limiting your spectra to N-lags, your spectrum will be convolved with the sinc-response of this effective rect function. To improve resolution, you can take the lag response, or the inverse Fourier transform of the averaged spectra, and apply a window function, eg. Hamming window, then Fourier transform to spectra. This window will reduce the sidelobes in the spectra, but it will make the frequency channels wider. So if you want 100kHz resolution in the spectra, you'll need more channels, eg. 200-channels. If you would like some references on digital signal processing, just ask. Cheers, Dave --- Quote End --- Hello Dave, Thanks for all, I would like a reference on digital signal processing, because I didn't understand very well what you said. thanks

Altera_Forum

Valued Contributor III

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

03-01-2011
11:16 AM

5 Views

For more complete information about compiler optimizations, see our Optimization Notice.