-
大小: 5KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-06-06
- 语言: Matlab
- 标签:
资源简介
很全的数字调制信号matlab代码,包括2FSK,4FSK,2ASK,4ASK,8ASK,2PSK,4PSK。本人在matlab中都运行过了,没有一点问题。学习数字调制信号不可缺少的东西啊!
代码片段和文件信息
clear all; clc;
%ASK调制
code_end1=[1 0 0 1 1 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0];
% 调制参数
CodeFre = 6.4*10^4; %码速率 64kbps
Tc = 1/CodeFre; %码元宽度
CarrFre = 100*10^3; %载波频率 100KHz
SamFre = 3.2*10^5; %采样频率 320KHz
Ts = 1/SamFre; % 采样时间间隔
Temp = fix(SamFre/CodeFre); % 平均每个码元宽度内采样点个数
%Reminder= SamFre/CodeFre - fix(SamFre/CodeFre); % 得到小数,从而确定每个码元起始采样点的偏移量
%Offset = 1-Reminder; % 得到下一码元起始处时间偏移
num = length(code_end1); % 取码序列的长度
% ASK调制
switch code_end1(1)
case 0
a=0;
case 1
a=1;
end
t = Ts :Ts: Temp*Ts;
ASK_u1= a*cos(2*pi*CarrFre*t);
SamLen = length(ASK_u1);
NewOffset = Tc-Ts*Temp;
for n = 2:num;
% 判断载波相位变化
switch code_end1(n)
case 0
a=0;
case 1
a=1;
end
N=(NewOffset+Tc)/Ts;
Temp = fix(N);
t =Ts*(SamLen+1) :Ts: Ts*(Temp+SamLen); %时间长度
%m=1:Temp;
%c=[ccos(2*pi*CarrFre*t)];
S=a*cos(2*pi*CarrFre*t);
ASK_u1 =[ASK_u1S];
SamLen = length(ASK_u1);
%NewReminder =N-Temp;
NewOffset = n*Tc-Ts*SamLen;
% end
n
end
figure (1)
m=length(ASK_u1);
subplot(211)
plot(1:mASK_u1)
subplot(212)
FS=abs(fft(ASK_u1128));
f=(0:(128-1))‘*SamFre/128;
plot(f(1:64)FS(1:64))
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1627 2012-03-30 14:45 ASK2.m
文件 2139 2012-03-30 14:50 ASK4.m
文件 2342 2012-03-30 10:58 ASK8.m
文件 776 2012-03-30 14:55 FSK2.m
文件 1053 2012-03-30 15:49 FSK4.m
文件 580 2012-03-30 15:52 PSK2.m
文件 1527 2012-03-30 16:09 PSK4.m
----------- --------- ---------- ----- ----
10044 7
评论
共有 条评论