дефект в коде WSJT-X, индекс массива ccfblue выходит за пределы
Цитата:
Сообщение от
UA3DJY
Тоже увидел при работе с приемником, вчера наблюдал только на файлах симулятора. Индекс массива ccfblue выходит за декларированные для него пределы (-11:540). Это происходит только на функции предискажений спектра примененной для третьего прохода Preamp, очень похоже на ошибочный доступ к чужой области памяти в софте WSJT-X.
Пока не активируйте три прохода Preamp - работайте только на двух.
Я вчера по этой теме открыл запрос на разработчиков, Bill G4WJS взял его в свою очередь.
Bill G4WJS глянул код и уже нашел причину, это мой дефект, огромное спасибо ему за помощь.
Проблема возникла из-за того, что я, используя в исходнике symspec65.f90 общую переменную preamp, не декларировал ее тип в этом исходнике как integer.
В результате неправильно инициализируется массив ss, попадает в чужую область памяти, и индекс массива ccfblue выходит за пределы допустимых значений.
Следущим постом дам линк на исправленный исходный код.
Можно исправить в ранее опубликованном исходном коде добавив в исходник symspec65.f90 одну строку integer preamp над строкой logical first:
.
.
+ integer preamp
logical first
.
.
вероятность декодирования с Preamp
дефект у себя устранил и теперь можно продолжать тесты:
Сравнение эффективности работы Preamp на звуковых файлах симулятора с SNR -26дБ,
указана вероятность декодирования сигналов с SNR -26дБ
при Random erasure patterns=8:
r6462mod3 - 0.7 %
r6462mod4 Preamp включен, один проход - 5.3 %
r6462mod4 Preamp включен, два прохода - 6.5 %
r6462mod4 Preamp включен, три прохода - 7.5 %
при Random erasure patterns=6:
r6462mod3 - 0.6 %
r6462mod4 Preamp включен, один проход - 1.7 %
r6462mod4 Preamp включен, два прохода - 2.2 %
r6462mod4 Preamp включен, три прохода - 2.8 %
Вадим, RK4LWA: мы в суете как то забыли про проверку на -24дБ файлах, попробуете, может Preamp на этом SNR что то ухудшил?
Еще могу создать -26 дБ файлы с разной степенью пересечения спектров. Это отдельная тема, пока не знаю - но может активация вычитания спектра после прохода в Preamp увеличит количество декодированных сигналов без ущерба для варианта с непересекающимся спектром?
По последней теме это в основном проверка того что активация вычитания спектра в Preamp не ухудшает вероятность декодирования -26дБ файлов где нет пересечения спектра.
Preamp и значение Random erasure patterns
Вопрос не горит но может быть очень актуален с точки зрения удобства использования Preamp:
чтобы постоянно не менять в Advanced значение Random c 6 на 8 для включенного Preamp и наоборот, могу попробовать сделать чтобы при включении Preamp всегда использовался Random=8 независимо от установок в Advanced, подумайте над этим.
Если кто возражает - скажите пожалуйста, и по какой причине.