Исследование цифровой модуляции в системах радиосвязи
95 Используйте upfirdn функцию на принятом сигнале, чтобы уменьшить количество отсчетов (downsample) и отфильтровать сигнал. Понижающая дискретизация используется с тем же коэффициентом передискретизации, который применяется для повышающей дискретизации передаваемого сигнала. После этого, используется тот же фильтр RRC, который применялся к передаваемому сигналу. Каждая операция фильтрации задерживает сигнал на половину длины фильтра в символах, filtlen/ 2. Таким образом, общая задержка от передачи и приема фильтрации равна длине фильтра, filtlen. Для расчета BER передаваемый и принимаемый сигналы должны быть одинакового размера, и мы должны учитывать эту задержку между передаваемым и полученным сигналом. Необходимо удалитьпервые filtlen символы в прореженном сигнале, чтобы учесть совокупную задержку операций фильтрации передачи и приема. Также необходимо удалить последние filtlen символы в прореженном сигнале, чтобы число выборок на выходе демодулятора соответствовало количеству выборок на входе модулятора, для корректного сравнения битов. rxFiltSignal = upfirdn (rxSignal, rrcFilter, 1, sps); % Downsample-инг и фильтрация rxFiltSignal = rxFiltSignal (filtlen + 1: end - filtlen); % Коррекция задержки Используйте qamdemod функцию для демодуляции полученного отфильтрованного сигнала. dataSymbolsOut = qamdemod (rxFiltSignal, M); Преобразуйте восстановленные целочисленные символы в двоичные данные с помощью de2bi функции. dataOutMatrix = de2bi (dataSymbolsOut, k); dataOut = dataOutMatrix (:); % Возврата данных в виде вектора-столбца
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy