Dzień dobry. Proszę o wyrozumiałość i naprowadzenie, abym mógł zrozumieć poniższy temat.
Bawię się donglem RTL-SDR. Zbieram z niego dane IQ i chciałbym je przetransformować na widmo częstotliwości przy pomocy transformacji Fouriera, ale nie do końca wiem jak. A konkretniej, to nie wiem dlaczego tak a nie inaczej
Dane w moim przypadku zbieram z samplowaniem 2048000/s. Każdy sampel to 2 bajty: IQ
I teraz żeby uzyskać widmo częstotliwości powinienem wziąć porcję tych danych i rozbić FFT na poszczególne częstotliwości.
Wiem, że samplowanie wpływa na szerokość widma, tylko dlaczego?
I tutaj pytania, które jak myślę mnie trochę naprowadzą/wybiją z błędu:
1. Jak wyliczyć i z czego wynika szerokość widma częstotliwości w kontekście szybkości samplowania?
2. Jak wyliczyć porcje danych, której potrzebuje żeby wyrysować 'jedno widmo'?
3. Jak wyliczyć ilość 'widm na sekundę'?
Może gdzieś tutaj całkowicie się mylę i źle kombinuje, ale ktoś będzie w stanie mi to wyjaśnić? Jeśli tak to bardzo dziękuję!
Chciałbym między innymi szukać częstotliwości z największą amplitudą.
Poniżej linkiem jest algorytm szukania najsilniejszego sygnału: Kod źródłowy
4. Dlaczego dla bufora wejściowego 2048B zastosowano tablicę na FFT o rozmiarze 1000 elementów zamiast 1024?
5. Z czego bierze się ten podział w wyniku FFT?
for(i=0; i < FFT_SIZE; i++)
{
if (i < FFT_SIZE / 2) // ??? dlaczego wraz ze wzrostem f elementy są ułożone 500-999 i dalej 0-499?
{
pt.r = fft_out[FFT_SIZE/2+i].r / FFT_SIZE;
pt.i = fft_out[FFT_SIZE/2+i].i / FFT_SIZE;
} else {
pt.r = fft_out[i-FFT_SIZE/2].r / FFT_SIZE;
pt.i = fft_out[i-FFT_SIZE/2].i / FFT_SIZE;
}
/* ... */
Bawię się donglem RTL-SDR. Zbieram z niego dane IQ i chciałbym je przetransformować na widmo częstotliwości przy pomocy transformacji Fouriera, ale nie do końca wiem jak. A konkretniej, to nie wiem dlaczego tak a nie inaczej
Dane w moim przypadku zbieram z samplowaniem 2048000/s. Każdy sampel to 2 bajty: IQ
I teraz żeby uzyskać widmo częstotliwości powinienem wziąć porcję tych danych i rozbić FFT na poszczególne częstotliwości.
Wiem, że samplowanie wpływa na szerokość widma, tylko dlaczego?
I tutaj pytania, które jak myślę mnie trochę naprowadzą/wybiją z błędu:
1. Jak wyliczyć i z czego wynika szerokość widma częstotliwości w kontekście szybkości samplowania?
2. Jak wyliczyć porcje danych, której potrzebuje żeby wyrysować 'jedno widmo'?
3. Jak wyliczyć ilość 'widm na sekundę'?
Może gdzieś tutaj całkowicie się mylę i źle kombinuje, ale ktoś będzie w stanie mi to wyjaśnić? Jeśli tak to bardzo dziękuję!
Chciałbym między innymi szukać częstotliwości z największą amplitudą.
Poniżej linkiem jest algorytm szukania najsilniejszego sygnału: Kod źródłowy
4. Dlaczego dla bufora wejściowego 2048B zastosowano tablicę na FFT o rozmiarze 1000 elementów zamiast 1024?
5. Z czego bierze się ten podział w wyniku FFT?
for(i=0; i < FFT_SIZE; i++)
{
if (i < FFT_SIZE / 2) // ??? dlaczego wraz ze wzrostem f elementy są ułożone 500-999 i dalej 0-499?
{
pt.r = fft_out[FFT_SIZE/2+i].r / FFT_SIZE;
pt.i = fft_out[FFT_SIZE/2+i].i / FFT_SIZE;
} else {
pt.r = fft_out[i-FFT_SIZE/2].r / FFT_SIZE;
pt.i = fft_out[i-FFT_SIZE/2].i / FFT_SIZE;
}
/* ... */