clc
clear;
close all;
N=8;
bitstream=[1 -1 -1 1 1 1 -1 1];
figure(1)
subplot(111)
stem(bitstream);
title('输入的二进制序列');
xlabel('码元间距')
ylabel('码元')
fc=10; %载波频率
fs=1800; %采样频率
T=0.2; %每符号持续时间
N_samples=T*fs; %每符号内的采样点数
t=0:T/N_samples:(T-T/N_samples);
%串并转换
figure(2)
in1=zeros(1,N/2);
in2=zeros(1,N/2);
for i=1:N/2
in1(i)=bitstream(2*(i-1)+1);
in2(i)=bitstream(2*(i-1)+2);
end
subplot(211)
stem(in1);
title('I支路分量')
xlabel('码元间距')
ylabel('码元')
subplot(212)
stem(in2);
title('Q支路分量')
xlabel('码元间距')
ylabel('码元')
carrier1=cos(2*pi*fc*t);
carrier2=sin(2*pi*fc*t);
n=length(bitstream)/2;
x1=zeros(1,length(carrier1)*n);
y1=zeros(1,length(carrier1)*n);
for i=1:length(in1)
x1((N_samples*(i-1)+1):(N_samples*(i-1)+N_samples))=in1(i)*carrier1;
end
%载波调制
figure(3)
t1=0:T/N_samples:((length(x1)/N_samples)*T-T/N_samples);
subplot(211)
plot(t1,x1)
axis([0 0.4 -3 3 ]);
title('I支路分量加载波信号')
xlabel('时间/s')
ylabel('幅值')
grid on;
for i=1:length(in2)
y1((N_samples*(i-1)+1):(N_samples*(i-1)+N_samples))=in2(i)*carrier2;
end
subplot(212)
plot(t1,y1)
axis([0 0.4 -3 3 ]);
title('Q支路分量加载波信号')
xlabel('时间/s')
ylabel('幅值')
grid on;
figure(4)
z1=x1+y1;
subplot(111)
plot(t1,z1)
axis([0 0.4 -3 3 ]);
title('QPSK调制信号')
xlabel('时间/s')
ylabel('幅值')
grid on;
k = 2; % 每个符号的比特数
EbNo = 5; % 解调门限In dB
nsamp = 1; % 采样率
snr = EbNo + 10*log10(k) - 10*log10(nsamp);
z2 = awgn(z1,snr,'measured');
figure(5)
for i=1:length(z2)/N_samples
x2((N_samples*(i-1)+1):(N_samples*(i-1)+N_samples))=carrier1;
end
x3=z2.*x2;
subplot(211)
plot(t1,x3)
axis([0 0.4 -3 3 ]);
title('I支路分量相干解调信号')
xlabel('时间/s')
ylabel('幅值')
grid on;
for i=1:length(z2)/N_samples
y2((N_samples*(i-1)+1):(N_samples*(i-1)+N_samples))=carrier2;
end
y3=z2.*y2;
subplot(212)
plot(t1,y3)
axis([0 0.4 -3 3 ]);
title('Q支路分量相干解调信号')
xlabel('时间/s')
ylabel('幅值')
grid on;
%加噪信号通过滤波器
[b,a]=butter(3,0.1);
x3=filter(b,a,x3);
[b,a]=butter(2,0.1);
y3=filter(b,a,y3);
figure(6)
subplot(211)
plot(t1,x3);
axis([0 0.2 -3 3 ]);
title('I支路分量相干解调信号通过滤波器')
xlabel('时间/s')
ylabel('幅值')
grid on;
subplot(212)
plot(t1,y3);
axis([0 0.2 -3 3 ]);
title('Q支路分量相干解调通过滤波器')
xlabel('时间/s')
ylabel('幅值')
grid on;
out1=zeros(1,length(x3)/(2*N_samples));
for i=0:(N/2-1)
if(x3(N_samples*i+N_samples/2)>0)
out1(i+1)=1;
else
out1(i+1)=-1;
end
end
out2=zeros(1,length(y3)/(2*N_samples));
for j=0:(N/2-1)
if(((y3(N_samples/4+N_samples*j)+y3((N_samples*3)/4+N_samples*j))/2)>0)
out2(j+1)=1;
else
out2(j+1)=-1;
end
end
out=zeros(1,length(bitstream));
for k=1:length(bitstream)/2
out(2*(k-1)+1)=out1(k);
out(2*(k-1)+2)=out2(k);
end
figure(7)
subplot(211)
stem(out);
title('QPSK输出信号')
ylabel('幅值')
axis([0 8 -1 1]);
spectrum=(real(fft(z1,10*length(z1)))).^2;
S_spectrum=spectrum(1:length(spectrum)/2);
subplot(212)
F=0:fs/(2*length(S_spectrum)):fs/2-fs/(2*length(S_spectrum));
plot(F,10*log10(S_spectrum))
axis([0 50 0 60]);
title('QPSK信号功率谱密度')
xlabel('频率/Hz')
ylabel('功率')
snr=0:0.5:10;
ber=1-(1-1/2*erfc(sqrt(0.4*snr))).^2;
figure(8)
semilogy(log(snr),ber,'-b*')
title('QPSK信号误码率分析')
xlabel('信噪比')
ylabel('误码率')
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1.版本:matlab2021a,包含仿真操作录像+word版本文档,操作录像使用windows media player播放。 2.领域:QPSK调制解调。 3.内容:基于matlab的QPSK调制解调过程仿真,仿真包括串并转换,电平转换,载波调制,相干解调,抽样判决等。介绍了QPSK的调制解调原理,接着提出了一种基于MATLAB的调制解调方案,包括串并转换、电平转换、载波调制、信号合成、相干解调、抽样判决,和并串转换一系列系统的设计,对QPSK的星座图和调制解调进行了仿真,并对系统性能进行了分析,进而证明QPSK调制技术的优越性。 4.注意事项:注意MATLAB左侧当前文件夹路径,必须是程序所在文件夹位置,具体可以参考视频录。
资源推荐
资源详情
资源评论
收起资源包目录
基于matlab的QPSK调制解调过程仿真,仿真包括串并转换,电平转换,载波调制,相干解调,抽样判决等.rar (3个子文件)
main.m 4KB
操作录像0042.avi 8.72MB
QPSK的调制解调paper.rar 360KB
共 3 条
- 1
fpga和matlab
- 粉丝: 17w+
- 资源: 2626
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页