关于BPSK的调制解调——matlab实现

附一段实现代码,刚接触通信可以从最简单的bpsk入门熟悉调制解调过程。

%BPSK收发系统

clc;clear;close all;

%%可调参数
interpolation_rate =256;         %内插系数
data_length =2048;              %测试数据长度
w_carrier = 0.25;               %载波数字频率
SNR = 20;                       %信噪比
Sample_position = 0;            %最佳采样点

%%发送端
data_send = randi([0,1],data_length,1);  %0/1序列
data_bio = 1-2*data_send;                %对极序列(1映射为-1,0映射为1)
%data_bio = 2*data_send-1;               %对极序列(1映射为1,0映射为-1)
data_upsample = upsample(data_bio,interpolation_rate);  %内插

% hrc=rcosfir(1,[-3,3],interpolation_rate,1,'sqrt')
hrc = rcosdesign(0.5,6, interpolation_rate, 'normal');%根升余弦滤波器
% hrc2 = ones(1,interpolation_rate);                    %方形滤波器

baseband = conv(data_upsample,hrc)';                  %成型
% baseband = conv(data_upsample,hrc2)';                   %成型

carrier = cos(2*pi*w_carrier*[1:length(baseband)]);   %载波
send_bpsk = baseband.*carrier;                        %BPSK调制

figure;
plot(abs(fft(send_bpsk)));


%%信道
% recv = awgn(send_bpsk,SNR,'measured');                %加性高斯白
% 
% %%接收
% recv_carrier = carrier.*recv;                         %乘以本地载波
% recv_bio = conv(hrc,recv_carrier);                    %匹配滤波器
% % recv_bio = conv(hrc2,recv_carrier);                    %匹配滤波器
% 
% recv_data = downsample(recv_bio,interpolation_rate,Sample_position);
% 
% scatterplot(recv_data(interpolation_rate*2:end-interpolation_rate*2))
% figure;pwelch(send_bpsk);

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值