1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 通信原理实践(五)——2PSK 与2DPSK 通信系统

通信原理实践(五)——2PSK 与2DPSK 通信系统

时间:2021-11-03 04:25:54

相关推荐

通信原理实践(五)——2PSK 与2DPSK 通信系统

一、一些Matlab函数

二、2PSK调制解调,性能分析

1、2PSK调制

(1)图示

(2)Matlab代码

function [ s_t ,bb_t,bits] = psk2_module( nSym ,Rb,fs,fc,Ac )%UNTITLED7 此处显示有关此函数的摘要% 此处显示详细说明%nSym = 300; % 信息长度%Rb = 200;% 信息速率%fs = 48e3; % 采样率%fc = 4e3;% 载波频率%Ac = 1; % 载波幅度%s_t % 已调波形%bb_t% 码型时域波形%bb % 码型%%%产生信号% 随机产生二进制信息 bits = randint(nSym,1); % 产生不归零码bb = 2 * bits - 1; %%%产生码型% 每个符号包含的样点数 sample_bit = fs / Rb;% 时间t = (0:sample_bit*nSym-1)'/fs; % 产生不归零码的时域波形bb_t = reshape(repmat(bb', sample_bit, 1), sample_bit*nSym, 1); %%%调制% 产生载波信号 c_t = Ac*cos(2*pi*fc*t);% 调制s_t = bb_t .* c_t; end

2、2PSK解调

(1)图示

(2)Matlab代码

function [ bits,bb_t] = psk2_remodule( Rb,fs,fc,s_t)%UNTITLED11 此处显示有关此函数的摘要% 此处显示详细说明% Rb = 200; % 信息速率 % fs = 48e3;% 采样率 % fc = 4e3; % 载波频率% s_t % 调制波形% bit_s % 抽样判决之后% bb_t % 抽样判决之前r_t = s_t; % 每个符号包含的样点数 sample_bit = fs/Rb; % 时间 t = (0:length(r_t)-1)'/fs; % 产生同频同相载波信号 c_t = cos(2*pi*fc*t);% FIR群延迟,也是阶数一半 group_delay = 50; b = fir1(group_delay*2, Rb/(fs/2)); % 主瓣占带宽Rb,这里可以放宽 bb_t = filter(b,1, r_t .* c_t); % 混频并滤波 % 抽样点下标 idx_decision = round(1+group_delay+sample_bit/2):sample_bit:length(r_t); % 取得抽样点 val_decision = bb_t(idx_decision); % 判决bits = zeros(length(val_decision),1); bits(val_decision > 0) = 1; end

3、一个demo

clc,clear;nSym = 1000; % 信息长度Rb = 1e3;% 信息速率fs = 48e3;% 采样率fc = 5e3;% 载波频率Ac = 1; % 载波幅度%%[s_t ,bb_t,bb] = psk2_module( nSym ,Rb,fs,fc,Ac );t = (0 : length(s_t) - 1) / fs' ;%%%绘制已调波形figure();plot(t,s_t);title('2PSK时域波形');xlabel('time(t)');ylabel('y');%绘制功率谱powerF_draw(s_t,fs);%%%发送端码型变换后的波形figure();subplot(2,1,1);plot(t,bb_t);axis([min(t),max(t),-1.2,1.2]);title('发送端码型波形');xlabel('time(t)');ylabel('y');%接收端抽样判决前的波形subplot(2,1,2);[bits,rbb_t] = psk2_remodule(Rb,fs,fc,s_t);plot(t,rbb_t);title('接收端码型波形');xlabel('time(t)');ylabel('y');%%%眼图eyediagram(rbb_t,4*fs/Rb); %取四个Bittitle('无信道噪声');%小噪声s_pow = sum(s_t.^2) / length(s_t);n_pow = 0.01 * s_pow;n_t = bandlimit_noise(length(s_t),fs,fc,2*Rb,n_pow);[bits_low_noise,rbb_t_low_noise] = psk2_remodule(Rb,fs,fc,s_t + n_t);eyediagram(rbb_t_low_noise,4*fs/Rb);title('小信道噪声');%大噪声n_pow = 0.5 * s_pow;n_t = bandlimit_noise(length(s_t),fs,fc,2*Rb,n_pow);[bits_high_noise,rbb_t_high_noise] = psk2_remodule(Rb,fs,fc,s_t + n_t);eyediagram(rbb_t_high_noise,4*fs/Rb);title('大信道噪声');%%%2PSK通信系统评估snr_i = (-3:1:8)'; % SNR输入(dB)%计算噪声功率n_pow = s_pow ./ (10.^(snr_i ./ 10));%初始化储存number = zeros(1,length(snr_i));ratio = zeros(1,length(snr_i));%计算SNRfor i=1:length(snr_i)n_t = bandlimit_noise(length(s_t),fs,fc,2*Rb,n_pow(i));[bits,rbb_t] = psk2_remodule(Rb,fs,fc,s_t + n_t);[number(i),ratio(i)] = symerr(bits,bb(1:nSym-1));end%绘图figure();plot(snr_i,ratio*100);title('误码率曲线');xlabel('snr_i(dB)');ylabel('误码率(%)');

三、2DPSK调制解调

1、2DPSK调制

function [ s_t ,bb_t,bits] = dpsk2_module( nSym ,Rb,fs,fc,Ac )%UNTITLED7 此处显示有关此函数的摘要% 此处显示详细说明%nSym = 300; % 信息长度%Rb = 200;% 信息速率%fs = 48e3; % 采样率%fc = 4e3;% 载波频率%Ac = 1; % 载波幅度%s_t % 已调波形%bb_t% 码型时域波形%bits% 码型%%%产生信号% 随机产生二进制信息 bits = randint(nSym,1);%产生差分码bits_d = zeros(nSym+1,1);for i=1:length(bits)bits_d(i+1) = mod(bits_d(i) + bits(i),2);end% 产生不归零码bb = 2 * bits_d - 1; %%%产生码型% 每个符号包含的样点数 sample_bit = fs / Rb;% 时间t = (0:sample_bit*(nSym+1)-1)'/fs; % 产生不归零码的时域波形bb_t = reshape(repmat(bb', sample_bit, 1), sample_bit* (nSym+1), 1); %%%调制% 产生载波信号 c_t = Ac*cos(2*pi*fc*t);% 调制s_t = bb_t .* c_t; end

2、2DPSK解调

function [ bits,bb_t] = dpsk2_remodule( Rb,fs,fc,s_t)%UNTITLED11 此处显示有关此函数的摘要% 此处显示详细说明% Rb = 200; % 信息速率 % fs = 48e3;% 采样率 % fc = 4e3; % 载波频率% s_t % 调制波形% bit_s % 抽样判决之后% bb_t % 抽样判决之前r_t = s_t; % 每个符号包含的样点数 sample_bit = fs/Rb; % 时间 t = (0:length(r_t)-1)'/fs; % 产生同频同相载波信号 c_t = cos(2*pi*fc*t);% FIR群延迟,也是阶数一半 group_delay = 50; b = fir1(group_delay*2, Rb/(fs/2)); % 主瓣占带宽Rb,这里可以放宽 bb_t = filter(b,1, r_t .* c_t); % 混频并滤波 % 抽样点下标 idx_decision = round(1+group_delay+sample_bit/2):sample_bit:length(r_t); % 取得抽样点 val_decision = bb_t(idx_decision); % 判决bits_d = zeros(length(val_decision),1); bits_d(val_decision > 0) = 1; bits = zeros(length(bits_d)-1,1);for i=1:length(bits)bits(i) = mod(bits_d(i) + bits_d(i+1),2);endend

3、一个demo

clc,clear;nSym = 1000; % 信息长度Rb = 1e3;% 信息速率fs = 48e3;% 采样率fc = 5e3;% 载波频率Ac = 1; % 载波幅度%% 产生2PSK信号[s_t,bb_t,bb] = psk2_module( nSym ,Rb,fs,fc,Ac );%% 产生2DPSK信号[s_d_t,bb_d_t,bb_d] = dpsk2_module( nSym ,Rb,fs,fc,Ac );%% 绘制发送端差分编码前后的波形figure()%发送端差分编码前离散序列subplot(2,1,1);stem(bb_d);axis([-5,nSym+5,-1.2,1.2]);title('发送端差分编码前离散序列');xlabel('time(t)');ylabel('y');%发送端差分不归零编码后离散序列subplot(2,1,2);stem(bb_d_t(1:fs/Rb:length(bb_d_t)));axis([-5,nSym+5,-1.2,1.2]);title('发送端差分不归零编码后离散序列');xlabel('time(t)');ylabel('y');[bits_d,rbb_d_t] = dpsk2_remodule(Rb,fs,fc,s_d_t);%% 2PSK通信系统评估s_pow = sum(s_t.^2) / length(s_t);snr_i = (-3:1:8)'; % SNR输入(dB)%计算噪声功率n_pow = s_pow ./ (10.^(snr_i ./ 10));%初始化储存number = zeros(1,length(snr_i));ratio = zeros(1,length(snr_i));%计算SNRfor i=1:length(snr_i)n_t = bandlimit_noise(length(s_t),fs,fc,2*Rb,n_pow(i));[bits,rbb_t] = psk2_remodule(Rb,fs,fc,s_t + n_t);[number(i),ratio(i)] = symerr(bits,bb(1:nSym-1));end%% 2DPSK通信系统评估s_d_pow = sum(s_d_t.^2) / length(s_d_t);snr_i = (-3:1:8)'; % SNR输入(dB)%计算噪声功率n_d_pow = s_d_pow ./ (10.^(snr_i ./ 10));%初始化储存number_d = zeros(1,length(snr_i));ratio_d = zeros(1,length(snr_i));%计算SNRfor i=1:length(snr_i)n_d_t = bandlimit_noise(length(s_d_t),fs,fc,2*Rb,n_d_pow(i));[bits_d,rbb_d_t] = dpsk2_remodule(Rb,fs,fc,s_d_t + n_d_t);[number_d(i),ratio_d(i)] = symerr(bits_d,bb_d(1:nSym-1));end%绘图figure()hold on;plot(snr_i,ratio*100,'b');plot(snr_i,ratio_d*100,'r');title('2PSK和2DPSK误码率曲线对比');xlabel('snr_i(dB)');ylabel('误码率(%)');legend('2PSK','2DPSK');

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。