QPSK调制与解调(Matlab仿真)1.一般在仿真的时候,大家都喜欢直接做等效基带仿真(类似于星座点的仿真)。但实际要传,还是要传频带的波形信号。2.为了模拟真实的环境,先把基带信号经过一个自定义的信道,然后再做脉冲成型,上变频,加一点噪声AWGN进去。3.为了模拟同步,应该用专用的同步算法。但是这里的重点不在同步。所以用了很简单粗暴的办法。假装直接同步上了。4.为了造出不同步的结果,可以这样写x_未同步=[x(300:end);x;x];相当于循环发送,循环接收。这是仿真。Main%%%单载波QPSK接收端%2017年5月17日18:02:56clear;closeall;clcrand_seed=0;rand('seed',rand_seed);randn('seed',rand_seed);%%%Setupparametersandsignals.M=4;%Alphabetsizeformodulationbaud_rate=100;%Baudratef_carrier1=75;%CarrierfrequencyNsym=10000;%Numberofsymbolsmsg=randi([0M-1],Nsym,1);%RandommessagehMod=comm.RectangularQAMModulator(M);modmsg=step(hMod,msg);%ModulateusingQAM.%映射后的基带信号trainlen=1000;%Lengthoftrainingsequencerolloff=.3;%滚降因子span=20;%截断长度sps=10;%SamplespersymbolrrcFilter=rcosdesign(rolloff,span,sps,'sqrt');%根升余弦滚降滤波器,‘sqrt’均方根升余弦;‘normal’升余弦fs=baud_rate*sps;%时间采样率,时间采样间隔为1/fs秒Tsymbol=1/baud_rate;%2.脉冲成型%txSig=upfirdn(modmsg,rrcFilter,sps);%发送端的基带复波形信号%chan=[1;.001];chan=[.986;.845;.237;.123+.31i];%Channelcoefficients%chan=[10.450.3+0.2i];%Channelcoefficientsfiltmsg=filter(chan,1,modmsg);%Introducechanneldistortion.(已经经过信道的畸变的基带复信号,星座点)txSig=upfirdn(filtmsg,rrcFilter,sps);%发送端的基带复波形信号txSig=awgn(txSig,20,'measured');%AddAWGNt=(0:1/fs:((length(txSig)-1)/fs)).';T=t(end)+1/fs;df=1/T;freq=-fs/2:df:fs/2-df;cos1=cos(2*pi*f_carrier1*t);sin1=sin(2*pi*f_carrier1*t);x_upconv=real(txSig).*cos1+imag(txSig).*sin1;%%===接收端x_training_wave=x_upconv;x_training_msg=msg;rxSig=[x_upconv(300:end);x_upconv];%1.同步x_resampled=resample(rxSig,1,1);x_sync=sync_two_signals(x_resampled,x_training_wave,0);figure(2);plot(freq,20*log10(abs(fftshift(fft(x_sync))/max(abs(fftshift(fft(x_sync)))))));ylim([-100,10])xlim([0,freq(end)])gridon;xlabel('频率(...