⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bpsk.m

📁 BPSK系统结构的Matlab程序
💻 M
字号:
%BPSK调制解调系统****************
clear all
m=20;
a=randsrc(1,m,[-1,1]);%随机产生2psk的信号比特1或-1                                     
%原始信号抽样
len=length(a);
aa=1;
Rs=1600;
nn=10;
fs=nn*Rs;
Ts=1/Rs;
al=0.375;
M=55; 
 %生成升余弦滤波器
htl=zeros(1,M);
for k=1:M;
    t=(k-28)/fs;
    W=pi*t/Ts;
    if  t==0
        htl(k)=1;
    elseif (al*W/pi==1/2)|(al*W/pi==-1/2)
        htl(k)=0;
    else
        htl(k)=(sin(W)/W)*(cos(al*W)/(1-(4*al^2*W^2)/(pi^2)));
    end    
end
risecos=htl; 
sig_len=len*nn;
signal=zeros(1,sig_len);
for i=1:len
    signal((i-1)*nn+nn/2+1)=a(i);
end
%波形生成
sig_conv=conv(signal,risecos);
sig_part=sig_conv(28:28+sig_len);
%BPSK调制
fc=56000;
W=2*pi*fc/fs;
signal_out=zeros(1,sig_len);

for i=1:sig_len;
   signal_out(1,i)=sig_part(i)*cos(W*i);
end
disp(a);
figure(1);
subplot(2,1,1);
plot(sig_part);xlim([0 200]);
title('波形成形后的信号');                           % 波形成形后的信号
hold on;
plot(signal,'red');xlim([0 200]);                   %  调制信号
title('2psk调制信号');
subplot(2,1,2);plot(signal_out);xlim([0,200]);      %   输出高频信号
title('经高频调制信号');

% 加入噪声后
% 产生噪声
signaladd=AWGN(signal_out,0);                       %加入信噪比为5db的噪声
figure(2);
plot(signal_out);xlim([0,200]);
title('发端的高频信号');
plot(signaladd,'red');xlim([0,200]);
title('加入0dB噪声后接收端接收到的信号');

%BPSK解调
signal_demod=zeros(1,sig_len);
for i=1:sig_len
    signal_demod(i)=signaladd(i)*cos(W*i);
end

%通过低通滤波器
N=150;
F=[0,0.2,0.2,1];
A=[1,1,0,0];
LF_Coefficient=firls(N,F,A);
LF_signal_demod=conv(LF_Coefficient,signal_demod);
LF_signal_demod=LF_signal_demod(75+1:sig_len+75);

%输出抽样判决
a_out=zeros(1,sig_len/nn);
for i=1:sig_len/nn
   a_out(i)=LF_signal_demod((i-1)*nn+nn/2+1);
end
figure(3);
subplot(2,1,1);plot(sig_part);xlim([0 200]); 
hold on;
plot(signal,'red');xlim([0 200]);                  %  调制信号
title('发端BPSK调制信号');
subplot(2,1,2);plot(LF_signal_demod); xlim([0 200]);
hold on;
plot(signal,'green');xlim([0 200]);
title('接收端解调出的BPSK信号');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -