没有合适的资源?快使用搜索试试~ 我知道了~
首页常见数字调制识别文档含代码.docx
资源详情
资源评论
资源推荐

实现 6 种(2ASK、4ASK、2FSK、4FSK、2PSK、4PSK)调制信号自动调制识别。
一、仿真分析
运行程序后,可以选择训练并测试六种数字调制的识别情况,首先选择测试 2ASK。
点击 2ASK 后,经过 matlab 短暂的运行后,得出结果:
继续点 2ASK 信号,我们可以看到 2ASK 的识别率为 96%:
另外,本次实验采用的是三层神经网络训练,训练结果如下:

我们点开 performance 查看训练过程表现:
上图可以看出,直到第九次迭代的均方差表现最好,为 0.00096837,接近目标值。
查看 Training state,可以看到下图的训练状态:

上面各图是 2ASK 的训练效果和细节表现,4ASK、2FSK、4FSK、2PSK、4PSK 信号的
训练效果及细节表现都不同于 2ASK,由于篇幅,不在此一一截图介绍。更多细节可
以参考附录的完整 matlab 程序。

二、数字通信调制信号 matlab 实现原理
2.1 二进制振幅键控(2ASK)
振幅键控,就是根据基带信号改变载波的幅度。最简单的实现方式是载波的频率不变,
使用二进制信号“0”和“1”控制。2ASK 信号可以表示成一个单极性矩形脉冲序列与一个
正弦波相乘,其时域表达式为:
其中 matlab 代码实现 2ASK 为:
% 2ASK signal
x=randint(1,M); %M 为 64,x 为随机生成的 1*64 的随机矩阵(矩阵元素由 0 和
1 组成)
m=sin(2*pi*fc*t); %载波信号
y=ones(1,M*N); %M=64,N=200,y 为 1*12800 的全 1 矩阵
for i=1:M
for j=1:N
y((i-1)*N+j)=x(i)*m(j); %随机生成的 2ASK 信号
end
end
原理:使用 randint()函数生成 1*M 的随机矩阵(此矩阵由 0 和 1 两种元素组成);此
时矩阵 x=randint()可充当单极性矩形脉冲序列,最后两层嵌套循环生成 2ASK 信号:
y((i-1)*N+j)=x(i)*m(j);
2.2 二进制频移键控(2FSK)
频移键控,就是根据基带信号改变载波的频率。二进制频移键控,是指调制信号
“0”和“1”分别对应载波的连个频率 和 。此时 2FSK 信号可以看成调整幅度为 0 和 1
的两个 2ASK 信号的叠加,其时域表达式为:
式子中 g(t)为单个矩阵脉冲,脉宽为

其中 取值如下:
是 的反码,若 =1,则 =0;若 =0,则 =1,于是:
其中 matlab 代码实现 2FSK 为:
%2FSK signal
x=randint(1,M);
m1=sin(2*pi*fc*t); %载频信号 1
m2=sin(2*pi*2*fc*t); %载频信号 2
y=zeros(1,M*N);
for i=1:M
if x(i)==1;
for j=1:N;
y((i-1)*N+j)=x(i)*m1(j); %码元信息为 1 时,为 m1 频率波形
end
elseif x(i)==0;
for j=1:N;
y((i-1)*N+j)=(1-x(i))*m2(j); %码元信息为 0 时,为 m2 频率波形
end
end
end
原理:使用 randint()函数生成 1*M 的随机矩阵(此矩阵由 0 和 1 两种元素组成);此
时矩阵 x=randint()可充当单极性矩形脉冲序列,然后两层嵌套 for 循环加 if 判断 x[i]生
成两类 2ASK 信号,最后叠加成 2FSK 信号:x[i]=1 时,y((i-1)*N+j)=x(i)*m1(j); x[i]=0 时,
y((i-1)*N+j)=(1-x(i))*m2(j)。
2.3 二进制相移键控(2PSK)
二进制相移键控(2PSK)是载波的相位随着二进制数字基带信号而变化,而振幅
和频率保持不变。2PSK 信号的时域表达式为:
式子中 是相移常数,式子中是基带序列为“0”和“1”控制。
%2PSK signal,
剩余20页未读,继续阅读
















yi520
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0