如何生成BPSK信号

323次(最近30天)
  1. 生成1000个随机二进制数据位。
  2. 将数据位中的单极性转换为双极性。
  3. 用二进制相移键控(BPSK)调制双极位。
  4. 将基带BPSK与载波fc=100 Hz相乘。
  5. 调制后的BPSK信号将通过一个无噪声信道传输。在接收端通过将接收信号与载波相乘并将其通过低通滤波器(LPF)来解调接收信号。
  6. 使用匹配滤波和sgn函数解码BPSK信号。

接受的答案

MathWorks支金宝app持团队
编辑:MathWorks支金宝app持团队 2021年7月13日
%设置
%指定参数
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))

标签

还没有进入标签。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始打猎吧!