系统参数配置:
%% 系统参数
load('ASK_Bandpass.mat');%带通滤波器系数
load('ASK_Lowpass.mat');%低通滤波器系数
InputDataLength = 10;%输入随机二进制数据长度
Fc = 10e6;%载波频率
Fs = 32*Fc;%采样频率
Num = 10;%码速率Fc/Num
产生二进制序列:
%% 产生二进制随机数序列
InputRandomData = randi([0 1],InputDataLength,1);
卷积编码后的二进制序列:
Con_Data = convenc(InputRandomData,trellis);
2ASK调制:
%% 2ASK调制
AirModSignal = ShapeInputData.*CarrierSignal;
给调制信号添加噪声:
AirSignal = awgn(AirModSignal,SNR(k),'measured');
带通滤波:
BandPassData = filter(ASK_Bandpass,1,AirSignal);%带通滤波
全波整形:
FullWaveData = abs(BandPassData);
低通滤波:
ShapeWaveData = filter(ASK_Lowpass,1,FullWaveData);%低通滤波器系数
包络二值化:
%% 整形
for i = 1:length(ShapeWaveData)%将包络数据量化成二进制数据
if(ShapeWaveData(i) >= mean(ShapeWaveData))%调制门限
BinaryWaveData(i,1) = 1;
else
BinaryWaveData(i,1) = 0;
end
end
误码率:
Matlab代码:ASK_Convolution_01.m