From 8611898ad1cb89314843ae6af88d7aa014275553 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Sat, 25 Jul 2026 11:40:17 +0300 Subject: [PATCH] =?UTF-8?q?fix(tx):=20WFM/FMRAW=20bp0=20=3D=20=D0=B0=D1=83?= =?UTF-8?q?=D0=B4=D0=B8=D0=BE-=D0=BF=D0=BE=D0=BB=D0=BE=D1=81=D0=B0=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=D0=B0,=20=D0=BD=D0=B5=20SSB-?= =?UTF-8?q?=D1=84=D0=BE=D0=BB=D0=B1=D1=8D=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TXSignedEdges для WFM падал в else→сырую магнитуду (200,3100) и душил вещательное аудио до телефонной полосы ещё ДО ЧМ-модулятора (у того свой AF 20–15000). Добавлены ветки: WFM→(20,15000)=RX AF WFM, FMRAW→(20,7000)= RX AF raw. Теперь TX-bp0 совпадает с RX-АУДИО-фильтром (истинная симметрия), а не с РЧ-шириной канала FILT_WFM_BW/FILT_RAW_BW (это селективность RX, другая величина). Развязка TX от RX для SSB/AM/CW не тронута. Co-Authored-By: Claude Opus 4.8 --- WDSPEngine.pas | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/WDSPEngine.pas b/WDSPEngine.pas index 679eb93..0711106 100644 --- a/WDSPEngine.pas +++ b/WDSPEngine.pas @@ -1207,6 +1207,17 @@ begin Half := FTXFMDeviation + FTXFMHighCut; Lo := -Half; Hi := Half; end; + MODE_WFM: + // Широкий ЧМ: bp0 — это АУДИО-полосовик перед модулятором, а не РЧ-полоса + // канала (FILT_WFM_BW=120..200 кГц — селективность RX, другая величина). + // Открываем его в аудио-полосу вещательного FM = RX AF-фильтр WFM + // (ApplyRXWFMToChan). Без этого else-ветка душила бы аудио до (200,3100). + begin Lo := WFM_AF_LOW; Hi := WFM_AF_HIGH; end; + MODE_FMRAW: + // Плоский baseband для внешних декодеров (совпадает с RX AF в ApplyRXRawToChan + // и с явным SetTXABandpassFreqs в ApplyTXModeSettings). РЧ-ширина FILT_RAW_BW + // (6..25 кГц) — селективность RX, к аудио-полосовику отношения не имеет. + begin Lo := 20.0; Hi := 7000.0; end; else begin Lo := L; Hi := H; end; // прочее — как есть end;