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

📄 bpskmdm.m

📁 dpsk信号的调制解调matlab代码实现的一个例子
💻 M
字号:

clear;
close all;

Fb=1;%码元速率
Tb=1/Fb;

I_shaping=16;%码元成型滤波时的上采样倍数
Fs_shaping=I_shaping*Fb;%码元成型滤波时的采样率
Ts_shaping=1/Fs_shaping;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%平方根升余弦滤波器冲击响应h_rrc
alpha=0.5;
h_rrc=rcosine(Fb,Fs_shaping,'fir/sqrt',alpha,4);%取8个Tb长度
h_rrc=h_rrc(I_shaping/2+1:end-I_shaping/2);%截取中间7个Tb
h_rrc=h_rrc/sum(h_rrc);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%待发送码元
transmit_data=[0,0,1,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,0,1,0,1,0,1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,1,0,0,1,0,1,1,1,1,1,0,0,0,0,1,1,1,0,0,1,0,1,1];
N=length(transmit_data);%数据长度

%转换成双极性码(double polar)
for i=1:N;
    if transmit_data(i)==0;
       transmit_data(i)=-1;
    end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
data_I=transmit_data;%I路码元
data_Q=zeros(1,N);   %Q路码元

%上采样I_shaping倍
data_I_upsampled=upsample(data_I,I_shaping);
data_Q_upsampled=upsample(data_Q,I_shaping);

%产生I、Q两路基带信号
%经过根升余弦滤波器
Baseband_I=convn(data_I_upsampled,h_rrc);
Baseband_I=Baseband_I/max(Baseband_I);
Baseband_Q=convn(data_Q_upsampled,h_rrc);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%图
figure;
subplot(211);
plot(Baseband_I);
title('I路基带信号');
subplot(212);
plot(Baseband_Q);
title('Q路基带信号');

%载波调制

Fc=1*Fb;%载波频率

Q=16;%一个周期余弦波的采样点个数
Fs_modulate=Q*Fc;%调制时的采样率
Ts_modulate=1/Fs_modulate;

I_modulate=Fs_modulate/Fs_shaping;%调制时的上采样倍数

%将I、Q两路基带信号上采样至调制载波的采样率
Baseband_I_upsampled=upsample(Baseband_I,I_modulate);
Baseband_Q_upsampled=upsample(Baseband_Q,I_modulate);

%内插滤波器
Baseband_I_upsampled_low=Baseband_I_upsampled;
Baseband_Q_upsampled_low=Baseband_Q_upsampled;

% h_low=fir1(50,0.01,'low');%低通滤波器
% Baseband_I_upsampled_low=convn(Baseband_I_upsampled,h_low,'same');
% Baseband_Q_upsampled_low=convn(Baseband_Q_upsampled,h_low,'same');
% 
% %图
% figure;
% subplot(211);
% plot(Baseband_I_upsampled_low);
% title('I路内插滤波后');
% subplot(212);
% plot(Baseband_Q_upsampled_low);
% title('Q路内插滤波后');

%正交调制
n=0:length(Baseband_I_upsampled_low)-1;
u=Baseband_I_upsampled_low.*cos(2*pi*Fc*n*Ts_modulate);
v=Baseband_Q_upsampled_low.*sin(2*pi*Fc*n*Ts_modulate);
S=u-v;%正交调制,此处为减

%图
figure;
plot(S);
title('已调信号');

%接收端

h_low=fir1(19,0.01,'low');%低通滤波器

%正交下变频
n=0:length(S)-1;
product_I=S.*cos(2*pi*Fc*n*Ts_modulate);
product_Q=S.*(-sin(2*pi*Fc*n*Ts_modulate));

%低通
X_I=convn(product_I,h_low,'same');
X_Q=convn(product_Q,h_low,'same');

figure;
subplot(211);
plot(X_I);
subplot(212);
plot(X_Q);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%解调算法


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

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