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

📄 bpsk_li2.m

📁 BPSK系统结构的Matlab程序
💻 M
字号:
clear all
Rb=2400;  %码元速率
fc=4800;  %载波频率
fs=4*fc;  %采样频率
T=5;     %持续时间
s=randsrc(1,Rb*T,[1,-1]);  %信源
%差分变换
%ds=s;
%ds(1)=1;
%for i=2:length(s)
%    if  s(i)=s(i-1)
%       ds(i)=1; 
%   else ds(i)=-1;
%  end
%end
%*************载波调制**********************************
for k=1:length(s)
  st((k-1)*fs/Rb+1:k*fs/Rb)=s(k)*ones(1,fs/Rb);
end
t=[pi/2:pi/2:4*pi*length(s)];
cos=cos(t);
s_out=st.*cos;
%频域信号
%w=-pi:(2*pi/(length(st)-1)):pi;
%sf=fftshift(abs(fft(s_out)));
%figure(1);
%subplot(2,1,1);stem(s);ylim([-1.5,1.5]);
%title('信源信号');
%subplot(2,1,2);plot(s_out);ylim([-1.5,1.5]);
%title('BPSK调制信号');
%figure(2);
%plot(w/pi,sf);title('BPSK信号的频谱');

%*************加噪**************************************
for jj=1:41
snr=10-jj;
sadd=AWGN(s_out,snr);
%****************过带通滤波器*****************************
f=[0.3 0.4 0.7 0.8];
m=[0 1 0];
dev=[0.01 0.01 0.01];
[N,fo,mo,w]=remezord(f,m,dev);
%预测出达到要求的最小的阶数N,归一化频带边界fo,幅度矢量m,加权矢量w
b=remez(N,fo,mo,w);  %滤波器序列
sk=conv(sadd,b);
sg=sk(20:20+length(s_out)-1);
%******************解调*************************
sgg=sg.*cos;
%**********低通滤波器*************************
f=[0.4 0.5];
m=[1 0];
dev=[0.01 0.01];
[N,fo,mo,w]=remezord(f,m,dev);
%预测出达到要求的最小的阶数N,归一化频带边界fo,幅度矢量m,加权矢量w
b=remez(N,fo,mo,w);  %滤波器序列
s_sg=conv(sgg,b);
s_sgt=s_sg(20:20+length(s_out)-1);
%figure(3);
%subplot(2,1,1);stem(s);title('发端源信号')
%subplot(2,1,2);plot(s_sgt);title('用于判断的判决信号');
%判决
for i=1:length(s)
    if s_sgt(i*8-1)>0
        s_get(i)=1;
    else s_get(i)=-1;
    end
end
%***************计算误码******************
sum=0;
for i=1:length(s_get)
    if s_get(i)==s(i)
        sum=sum;
    else
        sum=sum+1;
    end
end
Pe(jj)=sum/length(s);
SNR(jj)=snr;
disp(jj);
end
figure(4);plot(SNR,Pe);title('BPSK误码率与信噪比的关系');
grid on;





⌨️ 快捷键说明

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