Forum Discussion
Altera_Forum
Honored Contributor
15 years agoSignal 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? thanks25 Replies
- Altera_Forum
Honored Contributor
--- Quote Start --- I would recommend getting a copy of Understanding Digital Signal Processing, 3rd Ed, R. G Lyons. Also read this document. There are plenty of references at the end of it as well. http://www.ovro.caltech.edu/~dwh/correlator/pdf/esc-320paper_hawkins.pdf (http://www.ovro.caltech.edu/%7edwh/correlator/pdf/esc-320paper_hawkins.pdf) In these slides, you will see power spectra calculated from radio galaxies http://www.ovro.caltech.edu/~dwh/correlator/pdf/esc-320slides_hawkins.pdf (http://www.ovro.caltech.edu/%7edwh/correlator/pdf/esc-320slides_hawkins.pdf) Cheers, Dave --- Quote End --- Hi Dave, Thanks so much for these reference. I will study it. Thanks for help me - Altera_Forum
Honored Contributor
--- Quote Start --- 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 --- Quote End --- I would recommend getting a copy of Understanding Digital Signal Processing, 3rd Ed, R. G Lyons. Also read this document. There are plenty of references at the end of it as well. http://www.ovro.caltech.edu/~dwh/correlator/pdf/esc-320paper_hawkins.pdf (http://www.ovro.caltech.edu/%7edwh/correlator/pdf/esc-320paper_hawkins.pdf) In these slides, you will see power spectra calculated from radio galaxies http://www.ovro.caltech.edu/~dwh/correlator/pdf/esc-320slides_hawkins.pdf (http://www.ovro.caltech.edu/%7edwh/correlator/pdf/esc-320slides_hawkins.pdf) Cheers, Dave - Altera_Forum
Honored Contributor
--- Quote Start --- Altera has many pre-made cores (vhdl or veriolog/AHDL or encrypted). They need licence or are part of quartus license. fft module is commonly available. So you don't need to write fft module; just use that module. Most people do it that way. There is no need to re-write such modules. See altera literature on fft core and how to instantiate it. --- Quote End --- Thanks KAz - Altera_Forum
Honored Contributor
--- Quote Start --- I did not understand Kaz, Can you write again? thanks --- Quote End --- Altera has many pre-made cores (vhdl or veriolog/AHDL or encrypted). They need licence or are part of quartus license. fft module is commonly available. So you don't need to write fft module; just use that module. Most people do it that way. There is no need to re-write such modules. See altera literature on fft core and how to instantiate it. - Altera_Forum
Honored Contributor
--- Quote Start --- 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? --- Quote End --- 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 - Altera_Forum
Honored Contributor
--- Quote Start --- FFT is no problem if you got fft core. Just plug it in choosing your bitwidth and fft resolution. --- Quote End --- I did not understand Kaz, Can you write again? thanks - Altera_Forum
Honored Contributor
--- 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
Honored Contributor
FFT is no problem if you got fft core. Just plug it in choosing your bitwidth and fft resolution.
- Altera_Forum
Honored Contributor
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 - Altera_Forum
Honored Contributor
--- 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