%设置
%指定参数
M=2;调制顺序(BPSK)
nData = 1000;%位数
Fc = 100;%载频,赫兹
%假定参数
Fb=100;%位(波特率),bps
Fs = 8 *俱乐部;%采样频率,Hz
Ts = 1 / f;%采样时间,秒
Td = nData / Fb;%时间持续时间,秒
spb = Fs / Fb;%每位采样
fSpan = 4;%符号中的过滤范围
%显示基带BPSK和调制载波的频谱
specAn1 = dsp。简介(“SampleRate”Fs,“方法”,“过滤器银行”,“AveragingMethod”,“指数型”,“标题”,“脉冲型基带BPSK”);
specAn2 = dsp。简介(“SampleRate”Fs,“方法”,“过滤器银行”,“AveragingMethod”,“指数型”,“标题”,“BPSK调制载波”);
%发射机
%生成随机数据位
数据= randi([0 M-1],nData,1);
%调整并绘制数据
% pskmod()有效地将单极位转换为双极位,并执行BPSK
%调制
modData=real(pskmod(data,M));
%脉冲形状和上采样以匹配载波采样率。脉冲整形是
%用于减少符号间干扰和减少信号的频谱宽度
%调制信号。
txFilter = comm.RaisedCosineTransmitFilter (“FilterSpanInSymbols”fSpan,“OutputSamplesPerSymbol”spb);
txfilterOut=txFilter(modData);
specAn1 (txfilterOut);
%与载波相乘调制的脉冲形信号
正弦波(“频率”足球俱乐部,“SampleRate”Fs,“复合输出”,错,“样本性能框架”、Td / Ts);
载体= sin ();
txSignal = txfilterOut .*载波;
specAn2 ((txSignal));
%接收
%接收信号与载波相乘
rxSignal=txSignal.*conj(承运人);
%低通匹配滤波器,用于脉冲整形
rxFilter=comm.RaisedCosineReceiveFilter(“FilterSpanInSymbols”fSpan,“InputSamplesPerSymbol”,spb,“DecimationFactor”spb);
rxFilterOut=rxFilter(rxSignal);
%解调
%对于BPSK, pskdemod()等价于符号函数
dataOut = pskdemod (rxFilterOut, M);
%每个tx和rx滤波器引入fSpan/2符号的延迟,例如
% fSpan符号的总延迟(= bits for BPSK)。延迟接收位
% fDelay用于与传输位进行精确比较。
fDelay=fSpan;
[numErr, ber] = biterr(data(1:nData-fDelay),dataOut(fDelay+1:nData))