Взгляните на эту книгу: «Программно-определяемая радиосвязь с использованием MATLAB Simulink и RTL-SDR». В этой статье в основном говорится о настройке и тестировании среды.
Адрес загрузки: https://ww2.mathworks.cn/campaigns/offers/download-rtl-sdr-ebook.html.
Очевидно, используются Matlab и RTL-SDR. Аккаунт на Taobao можно купить за более чем 30 юаней для Matlab.
Попробуйте купить импортные RTL-SDR. Я пробовал два разных отечественных RTL-SDR. Их можно использовать в другом ПО, но Матлаб их не распознает. В итоге я неохотно купил дорогую импортную. Нет, она легко распозналась.
После загрузки Matlab найдите RTL SDR в дополнительных функциях и установите его, затем нажмите «Управление».
Если драйвер не установлен, вам будет предложено использовать Zadig для установки драйвера. Затем проверьте соединение, если устройство можно найти.
Или напрямую введите команду: sdrinfo в командной строке, чтобы проверить, можно ли ее распознать.
В то же время в Simulink должен быть модуль RTL SDR. Выберите Simulink и создайте его случайно.
Вы можете увидеть это в браузере библиотеки. Это приемник RTL-SDR. Это параметризованный интерфейс, который может отправлять значения выборки RTL-SDR в Simulink в реальном времени.
Добавьте rtlsdr_book_library из вложения в путь
Затем посмотрите в браузере библиотеки Simulink, чтобы узнать, есть ли книжная библиотека RTL-SDR. Если нет, обновите ее.
После открытия прикрепленного файла intro\rtlsdr_rx_startup_simulink.slxc измените центральную частоту на 433,92 МГц, и вы сможете принимать сигнал 433,92 МГц.
Нажмите «Выполнить» выше, чтобы запустить его. Найдите пульт дистанционного управления 443 RF и нажмите на него, чтобы увидеть изменение на диаграмме спектра.
Затем взгляните на rtlsdr_rx_startup_matlab.m. Это код Matlab, который сначала устанавливает набор параметров RTL-SDR.
rtlsdr_id = '0'; % RTL-SDR ID
rtlsdr_tunerfreq = 433.92e6; % RTL-SDR tuner frequency in Hz
rtlsdr_gain = 25; % RTL-SDR tuner gain in dB
rtlsdr_fs = 2.4e6; % RTL-SDR sampling rate in Hz
rtlsdr_frmlen = 4096; % RTL-SDR output data frame size
rtlsdr_datatype = 'single'; % RTL-SDR output data type
rtlsdr_ppm = 0; % RTL-SDR tuner parts per million correction
sim_time = 60; % simulation time in seconds
Затем были созданы некоторые объекты
% rtl-sdr object Используйте RTL-SDRобъект, установите параметры, как написано ранее.
obj_rtlsdr = comm.SDRRTLReceiver(...
rtlsdr_id,...
'CenterFrequency', rtlsdr_tunerfreq,...
'EnableTunerAGC', false,...
'TunerGain', rtlsdr_gain,...
'SampleRate', rtlsdr_fs, ...
'SamplesPerFrame', rtlsdr_frmlen,...
'OutputDataType', rtlsdr_datatype ,...
'FrequencyCorrection', rtlsdr_ppm );
% spectrum analyzer objects Были использованы два анализа спектра: один в формате БПФ, другой в каскадном формате.
obj_specfft = dsp.SpectrumAnalyzer(...
'Name', 'Spectrum Analyzer FFT',...
'Title', 'Spectrum Analyzer FFT',...
'SpectrumType', 'Power density',...
'FrequencySpan', 'Full',...
'SampleRate', rtlsdr_fs);
obj_specwaterfall = dsp.SpectrumAnalyzer(...
'Name', 'Spectrum Analyzer Waterfall',...
'Title', 'Spectrum Analyzer Waterfall',...
'SpectrumType', 'Spectrogram',...
'FrequencySpan', 'Full',...
'SampleRate', rtlsdr_fs);
Объем данных в одном кадре делится на частоту дискретизации для управления временем выполнения моделирования.
rtlsdr_frmtime = rtlsdr_frmlen/rtlsdr_fs;
Посредством моделирования мониторинг осуществляется с соответствующей частотой, а достигаемый эффект соответствует Simulink.
% check if RTL-SDR is active Сначала проверьте, можно ли использовать устройство RTL-SDR.
if isempty(sdrinfo(obj_rtlsdr.RadioAddress))
error(['RTL-SDR failure. Please check connection to ',...
'MATLAB using the "sdrinfo" command.']);
end
% reset run_time to 0 (secs) время инициализации
run_time = 0;
% run while run_time is less than sim_time Пока текущее время не превышает установленное, оно будет продолжать работать.
while run_time < sim_time
% fetch a frame from the rtlsdr RTL-SDR получает кадр данных о прибытии и сохраняет его в существующем rtlsdr_data.
rtlsdr_data = step(obj_rtlsdr);
% update spectrum analyzer windows with new data
% Воля rtlsdr_data 更新приезжать obj_specfft и obj_specwaterfall
step(obj_specfft, rtlsdr_data);
step(obj_specwaterfall, rtlsdr_data);
% update run_time after processing another frame время работы
run_time = run_time + rtlsdr_frmtime;
end
Тюнер R820T, используемый RTL-SDR, может принимать диапазон от 25 МГц до 1,75 ГГц. Переключите рабочий каталог на: Spectrum и откройте файл Explore_the_spectrum.slx. С помощью этого примера вы можете наблюдать диаграммы спектра различных сигналов.
Центральную частоту можно настроить через графический интерфейс. Текущая центральная частота RTL-SDR составляет 99 МГц, а частота дискретизации установлена на 2,8 МГц. Таким образом, диапазон выборки RTL-SDR составляет от 99-1,4 до 99+. 1.4, также Даже от 97,6 МГц до 100,4 МГц будет захватываться RTL-SDR.
После настройки центральной частоты нажмите «Начать моделирование», чтобы начать анализ радиочастотных сигналов. Мы проанализируем эти сигналы позже. Предпосылка анализа заключается в том, что эти сигналы необходимо настроить на центральную частоту. Например, есть два очевидных сигнала. в настоящее время отображается около ±1, поэтому, установив центральную частоту ±1, одну из частот сигнала можно установить в качестве центральной частоты.
Конечно, нужна некоторая доработка
Другим параметром является усиление. Короче говоря, усиление — это коэффициент усиления. Следует отметить, что увеличение усиления может привести к увеличению шума по мере увеличения требуемого сигнала.
В книге на этом примере представлены характеристики спектра некоторых распространенных сигналов (сигналы FM-радио, сигналы сотовых телефонов 2G, 3G, 4G, сигналы беспроводных датчиков 433 МГц, сигналы цифрового телевидения). Однако, поскольку руководство написано из-за границы, существует пробел. в диапазонах частот, некоторые из которых не имеют соответствующих частот в Китае.
Я поискал в Интернете отечественные частоты и заметил, что некоторые формы сигналов очень похожи на описанные в книге, но не знаю, так ли это, посмотрю на них позже, когда буду анализировать сигналы.