bpsk 通信调制系统matlab仿真函数

function [y,signal] = bpsk_function(data_length,fs,fc,EbN0,interpolation_rate,Sample_position)
%qpsk 调制系统
%y误码率
%signal 发送信号

%data_length 数据长度
%fs  数据频率
%fc  载波频率
%interpolation_rate 内插系数
%Sample_position 采样点
w_carrier = fc/fs;
SNR = EbN0 +10*log10(4/interpolation_rate); 
data_send = randi([0,1],data_length,1);  %0/1序列
data_bio = 1-2*data_send;                %对极序列


%观察基带信号
figure(1)
subplot(4,1,1)
stem(data_bio(1:64),'filled');%绘制01序列图
title('初始生成BPSK序列')
data_upsample = upsample(data_bio,interpolation_rate);  %内插
alpha = 0.35;
span = 6;
hrc= rcosdesign(alpha,span,interpolation_rate,'sqrt');   %根升余弦滤波器
hrc2= ones(1,interpolation_rate);                    %方形滤波器

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

subplot(4,1,2)
plot(baseband(1:64*4));
title('余弦脉冲成型后的')


% baseband = conv(data_upsample,hrc2)';                   %成型
% k=length(baseband);
% k1=k-96;
% signal=zeros(1,k1);
% for i=1:k1
%     signal(i)=baseband(i);
% end
carrier = cos(2*pi*w_carrier*[0:length(baseband)-1]);   %载波
send_bpsk = baseband.*carrier;                        %BPSK调制
subplot(4,1,4)
plot(send_bpsk(1:64*4));
title('上变频后的信号')

recv = awgn(send_bpsk,SNR,'measured');                %加性高斯白

%接收
recv_carrier = carrier.*recv;                         %乘以本地载波
recv_bio = conv(recv_carrier,hrc);                    %匹配滤波器
figure(2);
subplot(2,1,1)
plot(recv_carrier(1:64*4));
title('下变频后的信号')
subplot(2,1,2)
plot(recv_bio(1:64*4));
title('匹配滤波后的信号')



recv_bio = recv_bio(length(hrc):end-length(hrc)+1);%补偿延时
recv_data = downsample(recv_bio,interpolation_rate,Sample_position); %下采样
plot(recv_bio(1:32*4));
hold on

    demod_data = zeros(data_length,1);
    for i= 1:length(recv_data)%判决
        if recv_data(i)>0
            demod_data(i) = 0;
        else
            demod_data(i) = 1;
        end
    end

error_num  = sum(demod_data~=data_send);
BER =  error_num/data_length;
y=BER;
signal = send_bpsk;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值