LINUX.ORG.RU

DSP: из широкого спектра выфильтровать несколько узкополосных сигналов.

 


0

4

Короче, есть SDR-приёмник, из которого на 160 мегабитах валится оцифрованная полоса 0…5мгц (в виде I/Q, но это не важно). В этой полосе есть несколько под-полосочек шириной скажем 6000 Гц каждая, каждую из которых хочется выдернуть и опустить по частотам в 0…6000 гц каждую и попутно пересемплировать скажем с частотой 6000*2 Гц, рассматривая и демодулируя уже потом отдельно их.

Давно не работал со всяким DSP, баттервортами, свертками и импульсными характеристиками.

Посоветуйте с какой стороны подойти к задаче, чтобы получить минимальную нагрузку на проц?

А можно так? Берём FFT от всех 5 мгц. Далее FFT-бины (корзины) соответствующие нужным нам полоскам тупо выдираем и, рассматривая эти бины как «стоящие от нуля герц», делаем над выдранными обратное FFT и готово. Тупо? Чё поумнее есть?



Последнее исправление: trisobakov (всего исправлений: 2)

… делаем над выдранными обратное FFT и готово.

складываем и сравниваем с исходным сигналом и понимаем, что где-то много чего потеряли.

soomrack ★★★★★
()

А можно так?

Можно. Но нужно на исходный сигнал накладывать окно (чтобы уменьшить растекание спектра и минимизировать краевые эффекты при обратном преобразовании), и не просто выдергивать нужные бины, а тоже через наложение окна, чтобы не было звона.

И, конечно, нужно делать с перекрытием.

Puzan ★★★★★
()
Последнее исправление: Puzan (всего исправлений: 1)