Что делают блоки pack_to_unpacked в GNU RADIO?
Может ли кто-нибудь дать мне пример (например, input->output) того, что делает этот блок? Объяснение также приветствуется.
1 ответ
Из официальной документации (которая, если ваша сборка GNU Radio не повреждена, вы также можете получить доступ на вкладке документации свойств вашего блока в GRC):
Преобразуйте поток упакованных байтов или шорт в поток неупакованных байтов или шорт.
вход: поток неподписанного символа; вывод: поток неподписанного символа
Это обратное к gr::blocks::unpacked_to_packed_XX.
Биты во входном потоке байтов или шорт сгруппированы в порции битов bits_per_chunk, и каждый результирующий фрагмент записывается с выравниванием по правому краю в выходной поток байтов или шортов. Все b или 16 битов каждого входного байта или короткого обрабатываются. Правильно будет сделано, если bits_per_chunk не является степенью двойки.
Комбинация gr:: blocks:: pack_to_unpacked_XX_, за которой следует gr_chunks_to_symbols_Xf или gr_chunks_to_symbols_Xc, обрабатывает общий случай отображения из потока байтов или шортов в произвольные символы с плавающей запятой или сложные символы.
Итак, вы получаете байт, состоящий из 8 бит, и вы производите байты, каждый из которых имеет bits_per_chunk
биты устанавливаются в соответствии с входом. Пример (пусть bits_per_chunk=1
MSB сначала):
in 0b11110000
out 0b00000001 0b00000001 0b00000001 0b00000001 0b00000000 0b00000000 0b00000000 0b00000000