MATLAB QPSK传输系统 通信原理QPSK信号调制与解调 simulink搭建的报告和源文件 模块包括QPSK的调制和解调星座图功率谱密度包括最后的误码率 应有尽有 实验报告描写非常详细包含系统原理系统模型参数结论 还包含代码在里面书写正规无需增添按照要求删减即可 以下是报告的一些图% 生成随机二进制序列 data randi([0 1], 1, 1000); % 串并转换 I data(1:2:end); Q data(2:2:end); % 符号映射 symbols (1/sqrt(2)) * ((2*I-1) 1j*(2*Q-1));这里有个骚操作——用(2*I-1)把0/1变成±1比用if判断快多了。归一化系数1/√2保证符号能量为1这点新手容易忘。接下来载波调制可以这么玩fc 2e6; % 载波频率2MHz t (0:length(symbols)-1)/fs; mod_signal real(symbols .* exp(1j*2*pi*fc*t));注意这里用了复数乘法代替传统的正交调制器代码量直接砍半。解调端搞相干解调更带劲% 本地振荡器 local_osc exp(-1j*2*pi*fc*t); demod mod_signal .* local_osc; % 低通滤波 [b,a] butter(6, 0.1); filtered filtfilt(b,a,demod);滤波用filtfilt实现零相位滤波比普通filter函数更稳。星座图绘制别只会用scatterplot试试自己画scatter(real(filtered), imag(filtered), filled); axis([-2 2 -2 2]); grid on; title(解调后星座图);这时候要是看到星座点像开花似的散开八成是载波同步没做好。误码率计算别死磕公式直接暴力对比errors sum(decoded_bits ~ original_bits); ber errors / numel(original_bits);不过真要做性能分析还是得跑个Eb/N0循环。Simulink模型里藏着几个魔鬼细节——比如Raised Cosine滤波器的滚降系数别设太大0.35左右刚刚好相位恢复环路的带宽设置直接影响收敛速度新手设0.01比较保险。MATLAB QPSK传输系统 通信原理QPSK信号调制与解调 simulink搭建的报告和源文件 模块包括QPSK的调制和解调星座图功率谱密度包括最后的误码率 应有尽有 实验报告描写非常详细包含系统原理系统模型参数结论 还包含代码在里面书写正规无需增添按照要求删减即可 以下是报告的一些图功率谱分析别被默认频谱欺骗记得调分辨率带宽pwelch(mod_signal, 512, 256, 512, fs, centered);看到主瓣旁边的小凸起别慌那是不可避免的带外辐射。最后说个血泪教训仿真时长不够时误码率可能稳不住至少跑个1e5个符号才能看个大概。QPSK这玩意儿就像骑自行车原理简单但要骑得稳还得靠多摔几次跟头。