#python #groovy
#python #groovy
Вопрос:
У меня есть функция модуляции, написанная в основном, в groovy
которой определенно BPSK
.
Ниже groovy
приведена функция.
private final int HDRSIZE = 5
private final int SAMPLES_PER_SYMBOL = 150
private final float NFREQ = 1/15
private float[] bytes2signal(byte[] buf) {
float[] signal = new float[buf.length * 8 * SAMPLES_PER_SYMBOL * 2] // 8 bits/byte, 2 floats/sample
int p = 0
for (int i = 0; i < buf.length; i ) {
for (int j = 0; j < 8; j ) {
int bit = (buf[i] >> j) amp; 0x01
float f = bit == 1 ? -NFREQ : NFREQ
for (int k = 0; k < SAMPLES_PER_SYMBOL; k ) {
signal[p ] = (float)Math.cos(2 * Math.PI * f * k)
signal[p ] = (float)Math.sin(2 * Math.PI * f * k)
}
}
}
return signal
}
Buf
в коде находятся динамические данные. Поэтому я использовал для преобразования это в python
using arlpy
.
Вот пример кода. Если я рассматриваю вариант ниже, как я могу динамически обрабатывать свои данные?
PS Я знаю, что есть способ запуска python
в groovy
оболочке, но, к сожалению, вам нужно напечатать все в python
функции, и это возвращает значения, groovy
которые вы можете использовать. Мне это не нравится, с чем я имею дело complex signals
. Есть ли обходной или более эффективный способ сделать это?
import arlpy
import arlpy.plot as aplt
bpsk = arlpy.comms.psk()
d1 = arlpy.comms.random_data(100)
x = arlpy.comms.modulate(d1, bpsk)
aplt.plot(x)
Вывод
Но теперь я чувствую, что что-то упускаю, и это неправильно с groovy
точки зрения логики.
Комментарии:
1. Ваш код выдает разные результаты (если да, то какие)? Выдает ли ваш код какие-либо ошибки (если да, добавьте его)?
2. Мой код не выдает никаких ошибок, я просто немного обеспокоен логикой. Я не очень хорошо знаком с groovy (больше со стороны python). Просто подтверждение моего входа в систему на python в принципе правильно, и я не создаю что-то отличное от приведенного выше кода.
3. В stackexchange есть подраздел для проверки кода. ТО же самое относится и к проблемам программирования. Если это работает, этого достаточно для SO.