利用Matlab生成QPSK信号,经过RRC滤波器脉冲成型,并转化诚信好源可以播放的波形文件
rolloff = 0.25; % Rolloff factor
cutoffFreq = 1/(2*Tsym); % Cutoff frequency (half Nyquist bandwidth)
%cutoffFreq为信号带宽的一半,也就是符号速率的一半,符号速率决定信号带宽
orderFilt = nSymFilt*nsamp; % Filter order (number of taps - 1)
% Filter responses and structures
sqrtrcCoeff = firrcos(orderFilt, cutoffFreq, rolloff, 1/Tsamp, 'rolloff', 'sqrt');
%%up sampling
trans_I=upsample(real(modulate),nsamp); %先要对原始调制的IQ数据进行过采样倍数的内插 trans_Q=upsample(imag(modulate),nsamp);
%%filter data
trans_I = filter(sqrtrcCoeff,1,trans_I);
trans_Q = filter(sqrtrcCoeff,1,trans_Q);
trans=trans_I+j*trans_Q;
% *************************************************************************
%需要I和Q值以及采样速率,由用户自己提供
% *************************************************************************
status = 1;
InstrTargetPath = 'C:\'; % MS Windows based, e.g. SMU, SMJ, SMATE, AFQ
StartARB = 0; % start in path A
KeepLocalFile = 1; % waveform local saved
LocalFileName = 'case.wv'; % The local and remote file name
InstrObject= 0;%不传给仪表
Fsample=1/Tsamp;%如果没有Clock变量可以直接在这里赋值
IQInfo.I_data = trans_I;
IQInfo.Q_data = trans_Q;
http://doc.docsou.comment = 'my signal'; % optional comment
IQInfo.copyright = 'Rohde&Schwarz'; % optional copyright
IQInfo.clock = Fsample; % sample rate
IQInfo.no_scaling = 0;
% scale level,如果IQ原始数据不在+1和-1之间需要这样,0表示要scaling,1表示不需要scaling IQInfo.path = InstrTargetPath; % location on instrument
IQInfo.filename = LocalFileName; % local and remote file name
IQInfo.markerlist.one = [[0 1];[1 0]]; % marker signal 1