ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
16 апреля
749962 Топик полностью
Nikolay_Po (15.04.2017 16:09, просмотров: 412) ответил fk0 на Не догоняю, какая тут неопределенность, если фаз так и эдак больше чем на 360 градусов не меняется. Т.е. полученное значение будь оно -pi или +pi -- это одно и то же. На второй картинке вижу, что медленно плывет. Т.е. есть какой-то детектор не
Ну вот, глянул, а у меня, оказывается до линий задержки с перемножителями всё готово было. Вот код функции демодулятора: /* Process raw signal and returns DBPSK demodulation result at Signal[2] */ void DBPSKdemod(int16_t Signal[32]) { static int16_t Idly[IQsamplesPerBit] = {0}; // Delay memory static int16_t Qdly[IQsamplesPerBit] = {0}; // static int Idx = 0; //Delay index int32_t ProductI, ProductQ; //Intermediate delayed and current component //signal products LPFandConvertIQ(Signal); //Low pass filtering, decimation and quadrature //conversion BitIQintegrator(Signal); //Integrating filter ProductI = (int32_t) Signal[0] * Idly[Idx]; //Compute current and //delayed I component product Idly[Idx] = Signal[0]; //Replace oldest I value with newest one ProductQ = (int32_t) Signal[1] * Qdly[Idx]; //Compute current and //delayed Q component product Qdly[Idx] = Signal[1]; //Replace oldest Q value with newest one Signal[2] = (ProductI + ProductQ) / PSKscale; //Return demodulator output if (++Idx >= IQsamplesPerBit) { //Loop delay index Idx = 0; } return; } Вот картинка с квадратурными компонентами до интегрирующего фильтра и выходом детектора (снизу).
image