双极性根升余弦信号qpsk_【MATLAB】【通信原理】QPSK的调制与解调

参考网站:https://www.ilovematlab.cn/thread-97735-1-1.html

其实几乎完全照搬了该网站上面的方法,只是代码、画图方式稍微有点不同。

实验代码:

clear all;

fc = 5e6; % 码率为5MHz

%% QPSK接收器

data = 5000; %原码个数是1000个

random_data = randn(1,data)>0; %5000个随机的原码

%% 定义I和Q两个支路

I = zeros(1,data);

Q = zeros(1,data);

%% 把单极性码转换成双极性码

for  i=1:data

if mod(i,2) == 1 && random_data(i) == 1

I(i) = 1;I(i+1) = 1;

elseif  mod(i,2) == 1 && random_data(i) == 0

I(i) = -1;I(i+1) = -1;

elseif mod(i,2) == 0 && random_data(i) == 1

Q(i-1) = 1;Q(i) = 1;

elseif  mod(i,2) == 0 && random_data(i) == 0

Q(i-1) = -1;Q(i) = -1;

end

end

%% 成形。成形的意思就是实现由消息到波形的转换。

% 以便发射,脉冲成形应该是在基带调制之后。

fs = 25e6;% 采样率:25MHz。

zero = fs/fc;% zero为过采样率。它等于(采样率fs/码速率)。

% I和Q成型之后的支路。

Izero = zeros(1,zero*data);Qzero = zeros(1,zero*data);

for i = 1:zero*data

if mod(i,zero) == 1

Izero(i) = I(fix((i-1)/zero)+1);

Qzero(i) = Q(fix((i-1)/zero)+1);

else

Izero(i) = 0;

Qzero(i) = 0;

end

end

%% 低通滤波器

% 平方根升余弦滤波器

% psf=rcosfir(rf,n_t,rate,fs,'sqrt')

% rate:过采样率,rf:滚降因子,n_t:滤波器阶数,fs:采样率

% 用在调制或发送之前,用在解调或接受之后,用来降低过采样符号流带宽并不引发ISI(码间串扰)

NT = 50;

N = 2*zero*NT; % PSF大小为500

rf = 0.1;

psf = rcosfir(rf,NT,zero,fs,'sqrt');

Ipulse = conv(Izero,psf);

Qpulse = conv(Qzero,psf);

% 调制之后的I、Q支路

Imod = zeros(1,zero*data + N);

Qmod = zeros(1,zero*data + N);

for i = 1:zero*data + N

t(i) = (i-1)/fs; %这里因为假设载频与码速率大小相等,所以用载频fc乘以过采样率=采样率。

Imod(i) = Ipulse(i)*sqrt(2)*cos(2*pi*fc*t(i));

Qmod(i) = Qpulse(i)*sqrt(2)*sin(2*pi*fc*t(i));

end

mod_sum = Imod + Qmod;

%% QPSK接收器

%% 解调

Idem = zeros(1,zero*data + N);

Qdem = zeros(1,zero*data + N);

for i=1:zero*data+N

Idem(i) = mod_sum(i) * sqrt(2) * cos(2*pi*fc*t(i));

Qdem(i) = mod_sum(i) * -sqrt(2) * sin(2*pi*fc*t(i));

end

%% 匹配滤波

mtf = rcosfir(rf,NT,zero,fs,'sqrt');

Imat = conv(Idem,mtf);

Qmat = conv(Qdem,mtf);

%% 数据的选择

Isel = zeros(1,zero*

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: QPSK调制解调是一种常用的数字调制解调技术,可以将数字信号转换为模拟信号进行传输,并在接收端将模拟信号恢复为数字信号Matlab是一种常用的数学计算软件,可以用于实现QPSK调制解调QPSK调制过程中,原始数字信号被分成两个对称的子信号(实部和虚部),每个子信号由一系列比特表示。在调制过程中,将每个子信号映射到四个可能的相位(0°,90°,180°,270°)上。根据比特流的组合,选择对应相位。例如,00映射为0°,01映射为90°,10映射为180°,11映射为270°。通过将这些相位编码为正弦和余弦函数形式,得到QPSK调制后的模拟信号。 在Matlab中实现QPSK调制可以使用modulate函数,该函数可以将数字信号调制为模拟信号。首先,将原始数字信号转换为二进制信号,然后使用reshape函数将二进制信号重塑成对应的复数格式,其中实部和虚部分别表示QPSK的两个子信号。接下来,使用modulate函数进行QPSK调制,将子信号映射到对应的相位上,并生成调制后的模拟信号QPSK解调是对调制信号进行相反的操作。在接收端,使用demodulate函数将调制信号解调成二进制信号。根据解调后二进制信号的不同组合,可以确定对应的相位值。将二进制信号重新转换为原始数字信号,即可完成QPSK解调。 在Matlab中实现QPSK解调,可以使用demodulate函数。首先,将接收到的模拟信号经过解调函数解调成二进制信号。然后,将二进制信号重新整形为原始数字信号。 总之,QPSK调制解调原理Matlab中实现相对简单,可以利用modulate和demodulate函数完成信号调制解调过程。通过QPSK调制解调,可以实现数字信号的传输和恢复,广泛应用于通信领域。 ### 回答2: QPSK(Quadrature Phase Shift Keying)是一种常见的数字通信调制技术,它可以在同一个时刻传输两个比特的信息。QPSK调制解调原理是将输入的数字比特流分成两个信号流,分别为I(实部)和Q(虚部),然后分别调制成两路正弦波信号,最后将这两路信号叠加在一起发送到信道中。 在Matlab中,可以使用以下步骤实现QPSK调制解调。 1. 调制: a. 使用调制器对象创建I路和Q路的调制信号。例如,可以使用comm.QPSKModulator对象创建调制调制输入的比特流为I和Q信号。 b. 将I和Q信号相加。可以使用Matlab的加法操作实现。得到的信号调制后的信号。 2. 解调: a. 接收到调制后的信号。 b. 对接收到的信号进行相干解调,得到I和Q信号。可以使用comm.QPSKDemodulator对象进行解调操作。 c. 进行解调后的I和Q信号进行比特判决,将其映射回比特流。 Matlab提供了丰富的数字通信工具箱,其中包含了用于QPSK调制解调的函数和对象。利用这些函数和对象,我们可以很方便地实现QPSK调制解调,从而实现数字通信中的信号传输和接收。 需要注意的是,QPSK调制解调过程中需要考虑信道的影响。在实际通信中,信号可能会受到噪声和其他干扰的影响,所以在解调过程中需要进行一些信号处理和纠错操作,以确保准确解调得到原始的比特流。 总之,利用Matlab中的QPSK调制解调技术可以方便地实现数字通信中的信号传输和接收,同时也可以对信号进行处理和纠错,提高通信的可靠性和性能。 ### 回答3: QPSK调制解调原理是一种常用的数字调制解调方式,它采用四个相互正交的载波,分别代表不同的位组合。在调制过程中,每两个比特一组共同决定载波的相位,分别为0°,90°,180°和270°,并将其与原始信号相乘,得到调制信号。 在Matlab中,可以通过以下步骤实现QPSK调制解调: 1. 获得待调制信号序列: 首先,将需要发送的数字信息转化为二进制序列。然后,将该二进制序列分组,每两个比特一组。 2. 映射为复数信号: 将每组二进制码映射为对应的复数,例如00映射为1+1i,01映射为1-1i,10映射为-1+1i,11映射为-1-1i。 3. 进行QPSK调制: 将复数信号与相应的载波进行乘法运算,得到调制信号。 4. 添加噪声: 在调制信号上添加噪声,模拟信道传输过程。 5. 进行QPSK解调: 对接收到的信号进行相干解调,即对接收信号与相应载波进行乘法运算。 6. 进行符号解映射: 利用判决器,将解调后的复数信号映射回二进制序列。 7. 还原为数字信息: 将解调后的二进制序列转化为十进制,即可获得原始的数字信息。 通过以上步骤,我们可以实现对QPSK调制解调的模拟,并通过Matlab的相关函数,如modulate和demodulate函数,实现QPSK调制解调的过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值