Доработка. Поменял частоты и добавленение FIR-фильтр, его штатно генерирует и грузит ad9361_set_bb_rate()

This commit is contained in:
Maxim
2026-07-10 15:26:14 +03:00
parent d5edaf140e
commit 9eab1f32c4
6 changed files with 112 additions and 58 deletions

View File

@@ -1,8 +1,8 @@
/**
* transmitter.c — OFDM-передатчик с RS(255,223) FEC для PlutoSDR
*
* ОПТИМАЛЬНАЯ КОМАНДА ЗАПУСКА:
* cat test.bin | ./transmitter -f 1265000000 -r 3840000 -b 2000000 -g -20 -a 0.3 -p 0 -c rs8
* ОПТИМАЛЬНАЯ КОМАНДА ЗАПУСКА (кабель + аттенюатор):
* cat test.bin | ./transmitter -f 915000000 -r 1920000 -b 1500000 -g -40 -a 0.2 -p 0 -c rs8 -u local:
*/
#include "common.h"
@@ -68,7 +68,11 @@ int main(int argc, char *argv[]) {
if (pluto_init(uri, &ctx, &phy, &tx, 1) != 0) return 1;
// Настройка радиотракта
pluto_configure(phy, freq, rate, bw, gain, 1);
if (pluto_configure(phy, freq, rate, bw, gain, 1) != 0) {
LOG_ERROR("Настройка радиотракта не удалась");
iio_context_destroy(ctx);
return 1;
}
// Включение каналов передатчика
iio_channel_enable(iio_device_find_channel(tx, "voltage0", true));
@@ -89,6 +93,9 @@ int main(int argc, char *argv[]) {
ofdmflexframegenprops_init_default(&fgp);
fgp.check = LIQUID_CRC_32;
ofdmflexframegen fg = ofdmflexframegen_create(OFDM_M, OFDM_CP, OFDM_TAPER, NULL, &fgp);
// Наш заголовок 12 Б; по умолчанию liquid шлёт 8 — байты 8..11 (nblocks,
// last_block_bytes) без этого в эфир не уходят. RX выставляет то же.
ofdmflexframegen_set_header_len(fg, HDR_SIZE);
// Счётчики статистики
uint64_t frames = 0, bytes_tx = 0;