资源简介
利用matlab和神经网络进行信号调制识别的程序,程序很完整,能够进行信号选择并且输出识别率。
代码片段和文件信息
clear all;
close all;
echo off;
fc=20000; %载波频率
fs=40000; %采样速率
k=2;
code_size=15*round(k*fs/fc); %信息码元长度
t0=5.5; %信号长度
Ns=256; %采样点个数
fd=200; %符号速率
ts=1/fs; %采样周期
M=64 %码元个数
ti=1/fd; %码元间隔
N=ti/ts
t=[0:ts:t0];
select=menu(‘调制方式‘‘2ASK‘‘2FSK‘‘2PSK‘‘4ASK‘‘4FSK‘‘4PSK‘);
switch select
case 1 % 2ASK signal
x=randint(1M);
m=sin(2*pi*fc*t);
y=ones(1M*N);
for i=1:M
for j=1:N
y((i-1)*N+j)=x(i)*m(j);
end
end
T=zeros(650);
T(11:50)=1;
case 2 %2FSK signal
x=randint(1M);
m1=sin(2*pi*fc*t);
m2=sin(2*pi*2*fc*t);
y=zeros(1M*N);
for i=1:M
if x(i)==1;
for j=1:N;
y((i-1)*N+j)=x(i)*m1(j);
end
elseif x(i)==0;
for j=1:N;
y((i-1)*N+j)=(1-x(i))*m2(j);
end
end
end
T=zeros(650);
T(21:50)=1;
case 3 %2PSK signal
x=randint(1M);
m1=sin(2*pi*fc*t);
m2=sin(2*pi*fc*t+pi);
y=zeros(1M*N);
for i=1:M
if x(i)==1;
for j=1:N;
y((i-1)*N+j)=x(i)*m1(j);
end
elseif x(i)==0;
for j=1:N;
y((i-1)*N+j)=(1-x(i))*m2(j);
end
end
end
T=zeros(650);
T(31:50)=1;
case 4 % 4ASK signal
x=randint(1M4);
m=sin(2*pi*fc*t);
y=ones(1M*N);
for i=1:M
if x(i)==0;
for j=1:N
y((i-1)*N+j)=x(i)*m(j);
end
elseif x(i)==1;
for j=1:N
y((i-1)*N+j)=x(i)*m(j);
end
elseif x(i)==2;
for j=1:N
y((i-1)*N+j)=x(i)*m(j);
end
elseif x(i)==3;
for j=1:N
y((i-1)*N+j)=x(i)*m(j);
end
end
end
T=zeros(650);
T(41:50)=1;
case 5 % 4FSK signal
x=randint(1M4);
m1=sin(2*pi*fc*t);
m2=sin(2*pi*2*fc*t);
m3=sin(2*pi*3*fc*t);
m4=sin(2*pi*4*fc*t);
y=zeros(1M*N);
for i=1:M
if x(i)==0;
for j=1:N
y((i-1)*N+j)=(1-x(i))*m1(j);
end
elseif x(i)==1;
for j=1:N
y((i-1)*N+j)=x(i)*m2(j);
end
elseif x(i)==2;
for j=1:N
y((i-1)*N+j)=(x(i)-1)*m3(j);
end
elseif x(i)==3;
for j=1:N
y((i-1)*N+j)=(x(i)-2)*m4(j);
end
end
end
plot(y)
T=zeros(650);
T(51:50)=1;
case 6 %4PSK signal
x=randint(1M4);
m1=sin(2*pi*fc*t);
m2=sin(2*pi*fc*t+pi/2);
m3=sin(2*pi*fc*t+pi);
m4=sin(2*pi*fc*t+3*pi/2);
y=zeros(1M*N);
for i=1:M
if x(i)==0;
for j=1:N
y((i-1)*N+j)=(1-x(i))*m1(j);
end
elseif x(i)==1;
for j=1:N
y((i-1)*N+j)=x(i)*m2(j);
end
elseif x(i)==2;
for j=1:N
y((i-1)*N+j)=(x(i)-1)*m3(j);
end
elseif x(i)==3;
for j=1:N
y((i-1)*N+j)=(x(i)-2)*m4(j);
end
end
end
T=zeros(650);
T(61:50)=1;
end
SNR=5;
- 上一篇:异步电机vf控制matlab仿真模型
- 下一篇:MPSK信号调制识别程序
相关资源
- MPSK信号调制识别程序
- 异步电机vf控制matlab仿真模型
- 异步电机带电阻压降补偿的vf控制ma
- 永磁同步电机矢量控制matlab仿真模型
- 永磁同步电机无位置控制matlab仿真模
- 霍夫变换圆检测标准MATLAB
- 指纹预处理图matlab实现
- 在matlab中连续区间 交集 和 并集
- 基于matlab实现gold码
- 作业车间调度matlab源码及解析
- 邮政编码识别
- 基于Matlab的导线网坐标计算
- 基于MATLAB工具的遗传算法求解有约束
- 电力系统牛拉法潮流计算MATLAB程序
- 基于块匹配的视频序列的运动补偿
- 曲波变换重构
- bp神经网络预测下一年的数据
- 免疫算法matlab-物流中心选址的应用
- 烟花算法进行函数优化通用matlab代码
- 基于MATLAB的鸢尾花数据集分类
- MATLAB串口通信软件
- 非对称限幅正交频分复用matlab实现
- 智能车matlab仿真代码更新版
- 光伏阵列matlab仿真
- 超效率dea,BCCCCR三个模型matlab代码
- 磁链观测器模型
- FastICA2.5
- 图像傅里叶变换和幅度、相位谱重组
- 基于MATLAB 的三项桥式全控整流电路仿
- MUSIC算法AOA估计
评论
共有 条评论