qpsk matlab仿真,QPSK 调制与解调(Matlab仿真)

本文详细介绍了QPSK调制解调的Matlab仿真过程,包括基带信号生成、脉冲成型、信道模拟、同步、下变频、匹配滤波、均衡以及误码率计算等步骤。通过实例展示了如何实现QPSK通信系统的全链路仿真,并给出了误符号率和误比特率的计算结果。
摘要由CSDN通过智能技术生成

从零开始学可见光通信,从开始到绝望…………………………

几点说明。

1. 一般在仿真的时候,大家都喜欢直接做等效基带仿真(类似于星座点的仿真)。

但实际要传,还是要传频带的波形信号。

2. 为了模拟真实的环境,先把基带信号经过一个自定义的信道,然后再做脉冲成型,上变频,加一点噪声AWGN进去。

3. 为了模拟同步,应该用专用的同步算法。但是这里的重点不在同步。所以用了很简单粗暴的办法。假装直接同步上了。

4. 为了造出不同步的结果,可以这样写 x_未同步 = [x(300:end); x; x]; 相当于循环发送,循环接收。

这是仿真。

Main

%%

% 单载波QPSK 接收端

% 2017年5月17日18:02:56

clear;

close all;

clc

rand_seed = 0;

rand('seed',rand_seed);

randn('seed',rand_seed);

%%

% Set up parameters and signals.

M = 4; % Alphabet size for modulation

baud_rate = 100; % Baud rate

f_carrier1 = 75; % Carrier frequency

Nsym = 10000; % Number of symbols

msg = randi([0 M-1],Nsym,1); % Random message

hMod = comm.RectangularQAMModulator(M);

modmsg = step(hMod,msg); % Modulate using QAM. % 映射后的基带信号

trainlen = 1000; % Length of training sequence

rolloff = .3; % 滚降因子

span = 20 ; % 截断长度

sps = 10;  % Samples per symbol

rrcFilter=rcosdesign(rolloff,span,sps,'sqrt'); %根升余弦滚降滤波器,‘sqrt’均方根升余弦;‘normal’升余弦

fs = baud_rate*sps; % 时间采样率,时间采样间隔为 1/fs 秒

Tsymbol=1/baud_rate;

% 2. 脉冲成型

% txSig = upfirdn(modmsg, rrcFilter, sps);  % 发送端的基带复波形信号

% chan = [1; .001];

chan = [.986; .845; .237; .123+.31i]; % Channel coefficients

% chan = [1 0.45 0.3+0.2i]; % Channel coefficients

filtmsg = filter(chan,1,modmsg); % Introduce channel distortion.(已经经过信道的畸变的基带复信号,星座点)

txSig = upfirdn(filtmsg, rrcFilter, sps);  % 发送端的基带复波形信号

txSig = awgn(txSig,20,'measured'); % Add AWGN

t = (0:1/fs:((length(txSig)-1)/fs)).';

T = t(end)+1/fs;

df = 1/T;

freq = -fs/2:df:fs/2-df;

cos1 = cos(2*pi*f_carrier1 * t);

sin1 = sin(2*pi*f_carrier1 * t);

x_upconv 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值