acvarif 0 10 марта, 2016 Опубликовано 10 марта, 2016 · Жалоба Создан ЛЧМ сигнал через функцию chirp clc; clear all; f_begin = 71000; % начальная частота 71 кГц f_end = 79000; % конечная частота 79 кГц f_dt = 19000; % частота дискретизации 19000 Гц tch_begin = 0; % начальное время 0 tch_end = 13e-3; % конечное время 13 мсек tch_dt = 1/f_dt; % время дискретизации tch = tch_begin:tch_dt:tch_end; % время моделирования 13 мсек y = chirp(tch,f_begin,tch_end,f_end); % частота меняется от 71кГц (при t=0) до 79кГц (при t=13мсек) fprintf(' %d\n', y); % значения y figure plot(tch*1000, y), grid; xlabel('Время (в сек)'); title('ЛЧМ сигнал'); zoom xon; Сигнал дискретизирован частотой 19 кГц Подскажите пожалуйста как в каждый шаг дискретизации определить и вывести значение y в цифровом виде? Если y > 0 выводится 1, если y < 0 выводится 0. В конечном итоге нужно последовательность единичек и ноликов превратить в Hex вид. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 10 марта, 2016 Опубликовано 10 марта, 2016 · Жалоба dec2hex( bi2de( reshape( y > 0, [], hex_size_in_bits ))) Создан ЛЧМ сигнал через функцию chirp Подскажите пожалуйста как в каждый шаг дискретизации определить и вывести значение y в цифровом виде? Если y > 0 выводится 1, если y < 0 выводится 0. В конечном итоге нужно последовательность единичек и ноликов превратить в Hex вид. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 10 марта, 2016 Опубликовано 10 марта, 2016 · Жалоба dec2hex( bi2de( reshape( y > 0, [], hex_size_in_bits ))) Спасибо. Смысл понятен. Преобразуем строку двоичных цифр в неотрицательное десятичное число. Затем число преобразуется в hex формат. Немного непонятно создание строки двоичных цифр reshape( y > 0, [], hex_size_in_bits ) Компилятор ругается типа Undefined function or variable 'hex_size_in_bits'. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 10 марта, 2016 Опубликовано 10 марта, 2016 · Жалоба Плохой компилятор. Никуда не годный. Нужно определить, сколько бит у вас будет содержаться в одном выводимом hex-значении. И прочитать help для функции reshape Компилятор ругается типа Undefined function or variable 'hex_size_in_bits'. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 10 марта, 2016 Опубликовано 10 марта, 2016 (изменено) · Жалоба Плохой компилятор. Никуда не годный. Нужно определить, сколько бит у вас будет содержаться в одном выводимом hex-значении. И прочитать help функции reshape Понял. 4 бита y_hex = dec2hex( bi2de( reshape( y > 0, [], 4 ))) Все работает. Еще один нюанс. С какого конца идут старшие биты? Судя по тому как работает bi2de получается что функция работает начиная с младших бит. Тоесть bi2de([0 0 0 0 0 1]); это в десятичном виде 20, а bi2de([1 0 0 0 0]) это 1; Изменено 10 марта, 2016 пользователем Acvarif Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 10 марта, 2016 Опубликовано 10 марта, 2016 · Жалоба doc bi2de Еще один нюанс. С какого конца идут старшие биты? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 10 марта, 2016 Опубликовано 10 марта, 2016 (изменено) · Жалоба doc bi2de Спасибо. Все получилось. Если не сложно, подскажите пожалуйста еще один момент. Попытка вывести данные в HEX виде y_hex = dec2hex(bi2de([0 0 0 0 0 1])); formatSpec = ' %x'; fprintf(formatSpec, y_hex); дает строку типа 32 30, тоесть в hex виде 20 (dec 32) Функция dec2hex какраз и сохраняет данные в строку str = dec2hex(d) converts the decimal integer d to its hexadecimal representation stored in a MATLAB® string. d must be a nonnegative integer Как можно эту строку преобразовать в int? Вместо 32 30 - вывести 20. Изменено 10 марта, 2016 пользователем Acvarif Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 10 марта, 2016 Опубликовано 10 марта, 2016 · Жалоба Тогда dec2hex не нужна Или выводите строкой, указав формат %s Успехов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 10 марта, 2016 Опубликовано 10 марта, 2016 · Жалоба Тогда dec2hex не нужна Или выводите строкой, указав формат %s Спасибо. Работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dudeky 0 23 апреля, 2019 Опубликовано 23 апреля, 2019 · Жалоба В 10.03.2016 в 16:32, acvarif сказал: Спасибо. Работает. не могли бы вы показать вашу программу, у меня как я понимаю похожее задание Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться