资源简介
东西真的很不错 毕业设计专用。。。。。。。。。。。。。
代码片段和文件信息
function []=qdpsk()
t0=0.004999;
% 0.004999 50个码元 0.049999 500个码元 0.099999 1000个码元
% 码元宽度 0.0001s, 每个码元100个采样点
%输入至少为10个码元以上
ts=0.000001;
fc=50000; %载波频率
snr=20; %信噪比,以dB来表示
snr_lin =10^(snr/10); %dB转换
fs=1/ts;
df=0.3; %频率分辨率
t=(0:ts:t0);
N=length(t)/100; %计算输入二进制数字序列的长度
%载波信号生成
c0=cos(2*pi*fc.*t); % 0
c1=cos(2*pi*fc.*t+pi/2); % pi/2
c2=cos(2*pi*fc.*t+pi); % pi
c3=cos(2*pi*fc.*t+3/2*pi); % 3/2pi
%生成消息信号(二进制数字序列)
m2=zeros(1N); %初始化变量
%m2(1)、m2(2)不赋值,清零处理
%数字序列从m2(3)开始计算
for i=3:N
m2(i)=fix(2*rand(1));
end
%将二进制数字序列转换为时域信号
m2_time=zeros(1N*100); %初始化变量
for k=1:N
for i=(100*k-99):(100*k)
m2_time(i)=m2(k);
end
end
%绘制二进制数字基带序列(不归零码型)
%plot(tm2_time)
%axis([0 0.001 -0.5 1.5])
%码变换
%将绝对码转换为相对码m2_d
%第一组相对码设定为 00
m2_d=zeros(1N);
for i=3:2:(N-1)
if m2(i)==0&&m2(i+1)==0
if m2_d(i-2)==0&&m2_d(i-1)==0
m2_d(i)=0;m2_d(i+1)=0;
elseif m2_d(i-2)==1&&m2_d(i-1)==0
m2_d(i)=1;m2_d(i+1)=0;
elseif m2_d(i-2)==1&&m2_d(i-1)==1
m2_d(i)=1;m2_d(i+1)=1;
else
m2_d(i)=0;m2_d(i+1)=1;
end
elseif m2(i)==1&&m2(i+1)==0
if m2_d(i-2)==0&&m2_d(i-1)==0
m2_d(i)=1;m2_d(i+1)=0;
elseif m2_d(i-2)==1&&m2_d(i-1)==0
m2_d(i)=1;m2_d(i+1)=1;
elseif m2_d(i-2)==1&&m2_d(i-1)==1
m2_d(i)=0;m2_d(i+1)=1;
else
m2_d(i)=0;m2_d(i+1)=0;
end
elseif m2(i)==1&&m2(i+1)==1
if m2_d(i-2)==0&&m2_d(i-1)==0
m2_d(i)=1;m2_d(i+1)=1;
elseif m2_d(i-2)==1&&m2_d(i-1)==0
m2_d(i)=0;m2_d(i+1)=1;
elseif m2_d(i-2)==1&&m2_d(i-1)==1
m2_d(i)=0;m2_d(i+1)=0;
else
m2_d(i)=1;m2_d(i+1)=0;
end
else
if m2_d(i-2)==0&&m2_d(i-1)==0
m2_d(i)=0;m2_d(i+1)=1;
elseif m2_d(i-2)==1&&m2_d(i-1)==0
m2_d(i)=0;m2_d(i+1)=0;
elseif m2_d(i-2)==1&&m2_d(i-1)==1
m2_d(i)=1;m2_d(i+1)=0;
else
m2_d(i)=1;m2_d(i+1)=1;
end
end
end
%载波调制:相位选择法
% 00---0 10---90 11---180 01---270
%QDPSK调制
qdpsk=zeros(1N*100); %初始化
for k=1:(N/2)
for i=(100*k-99):(100*k)
if m2_d(2*k-1)==0&&m2_d(2*k)==0
qdpsk(i)=c0(i);
elseif m2_d(2*k-1)==1&&m2_d(2*k)==0
qdpsk(i)=c1(i);
elseif m2_d(2*k-1)==1&&m2_d(2*k)==1
qdpsk(i)=c2(i);
else
qdpsk(i)=c3(i);
end
end
end
%计算信号功率和噪声功率
signal_power=spower(qdpsk(1:length(t))); %计算已调信号功率
noise_power=signal_power/snr_lin;
noise_std=sqrt(noise_power); %计算噪声的标准方差
noise=noise_std*randn(1length(t)); %生成噪声
%将噪声叠加至QDPSK已调信号
qdpsk_n=qdpsk+noise;
%本地载波生成
c_l1=cos(2*pi*fc.*t);
c_l2=sin(2*pi*fc.*t);
%相乘器
%分为2个支路,分别标记为1和2
qdpsk_dem11=qdpsk_n.*c_l1;
qdpsk_dem12=qdpsk_n.*c_l2;
%将2两个支路的信号转换到
相关资源
- 毕业设计 基于MATLAB的vsb调制解调源代
- 音乐合成之MATLAB实现
- OFDM信道估计MATLAB代码
- UWB matlab仿真
- 泰勒图MATLAB程序
- 基于最小错误率的Bayes分类器的MATLA
- 船舶运动控制MATLAB工具箱
- matlab调用百度地图API函数
- 关于平面应力问题有限元法——三角
- QAM星座图matlab仿真
- optisystem和matlab协同仿真
- 无中线星形联接三相交流调压器仿真
- 6s大气纠正范例 和Matlab计算源码
- 经典matlab图像
- 多径衰落仿真器matlab代码
-
matlab机构运动仿真simuli
nk--四连杆机 - 四叉树分割 matlab实现算法
- 东南大学 matlab 图像边缘检测算法 代
- matlab RS编码
- 计算rice.png米粒个数以及大小的matla
- 基于Access数据库的matlab学生成绩管理
- Matlab机器学习WKNN,加权K近邻,含有数
- Matlab读取ENVI标准格式代码
- MATLAB潮流计算程序
- Matlab编程.doc
- Matlab2017a破解文件
- 基于GPS_IMU组合定位的kalman滤波
- susan算法matlab
- 深度学习matlab代码
- 共振峰提取 Matlab程序
评论
共有 条评论