信号类型(通信)——仿真(一)

系列文章目录

信号类型(雷达+通信)——零



前言

本文承接前文,对常见的通信信号类型进行简单的仿真。


一、通信信号源仿真

1.1 振幅键控信号(ASK)

       振幅键控:编码信号对射频(载频)信号的幅度进行调制。以二进制振幅键控方式为例,表达式为:

e_{ASK}\left ( t \right )=A_{i}\cos 2\pi f_{c}t,i=0,1

代码:

%% 信号参数及生成对应调制信号

dA = 2;                   % 频率间隔
M = 2;                      % FSK阶次
A = dA*(0:M-1);
rate = 2e5;
T  = 0.0001;
fs = 12e6;
t = 0:1/fs:T;
[C,rt] = ask_producing(A,t,rate);      % 随机生成码片
f0 = 7.2445e9;
rt = rt.*exp(1j*2*pi*f0*t);

%% 下变频到基带信号
fm = 2e6;
fc = f0-fm;
rt = rt.*exp(-1j*2*pi*fc*t);

%% 波形

figure;
plot(t,C+1);
title('码元');
hold on;
axis off;
plot(t,real(rt));
title('调制信号时域波形');
legend('码元','波形');


function [C,rt] = ask_producing(A,t,rate)
%

% 产生对应长度码片
M = length(A);

C_Length = ceil((max(t)-min(t))*rate)+1;
C = int8(randn(M-1,C_Length)>0);
if M>2
    C = sum(C);
end
C = C+1;
n = floor((t-min(t))*rate+1);
C = C(n);

rt = zeros(1,length(t));
for i=1:M
    ri = (C==i);
    ri = A(i)*ri*exp(1j*pi/4);
    rt = rt+ri;
end

end

仿真结果

1.2 频移键控信号(FSK)

频移键控:编码信号对射频(载频)信号的频率进行调制。

e_{FSK}\left ( t \right )=A\cos 2\pi f_{i}t,i=0,1

 代码:

%% 信号参数及生成对应调制信号

df = 1e6;                   % 频率间隔
M = 2;                      % FSK阶次
f = df*(1:M);
rate = 2e5;
T  = 0.0001;
fs = 12e6;
t = 0:1/fs:T;
[C,rt] = fsk_producing(f,t,rate);      % 随机生成码片
f0 = 7.2445e9;
rt = rt.*exp(1j*2*pi*f0*t);

%% 下变频到基带信号
fc = f0;
rt = rt.*exp(-1j*2*pi*fc*t);

%% 波形

figure;
plot(t,C);
title('码元');
hold on;
axis off;
plot(t,real(rt));
title('调制信号时域波形');
legend('码元','波形');


function [C,rt] = fsk_producing(f,t,rate)
%
% 产生对应长度码片
M = length(f);

C_Length = ceil((max(t)-min(t))*rate)+1;
C = int8(randn(M-1,C_Length)>0);
if M>2
    C = sum(C);
end
C = C+1;
n = floor((t-min(t))*rate+1);
C = C(n);

rt = zeros(1,length(t));
for i=1:M
    ri = (C==i);
    ri = ri.*exp(1j*2*pi*f(i)*t)*exp(1j*pi/4);
    rt = rt+ri;
end
end

仿真结果:

1.3 相移键控信号(PSK)

相移键控:编码信号对射频(载频)信号的相位进行调制。

e_{PSK}\left ( t \right )=A\cos \left ( 2\pi f_{c}t+\varphi _{n} \right ),\varphi _{n} =0,\pi

式中\varphi _{n}表示第n个码元的绝对相位,发送码元为1时为\pi;发送码元为0时为0。

代码

%% 信号参数及生成对应调制信号
M = 2;               % PSK阶次
rate = 1e5;
T  = 0.0005;
fs = 12e6;
t = 0:1/fs:T;
code = psk_producing(M,t,rate);      % 随机生成码片
f0 = 7.2445e9;
rt = code.*exp(1j*2*pi*f0*t);

%% 下变频到中频
fm = 1e5;
fc = f0-fm;
rt = rt.*exp(-1j*2*pi*fc*t);

%% 波形
figure;
plot(t,angle(code)/pi+2);
title('码元');
hold on;
axis off;
plot(t,real(rt));
title('调制信号时域波形');
legend('码元','波形');

function rt = psk_producing(M,t,rate)
%
% 产生M调制码元
if M>1
    phi = pi/4;         %码元初相
    Code = 0:2*pi/M:2*pi;
    Code = exp(1j*Code)*exp(1j*phi);
    Code = Code(1:M);
    
    % 产生对应长度码片
    C_Length = ceil((max(t)-min(t))*rate)+1;
    C = int8(randn(M-1,C_Length)>0);
    if M>2
        C = sum(C);
    end
    C = C+1;
    rt = Code(C);
    
    % 产生与接收时间对应的码片
    n = floor((t-min(t))*rate+1);
    rt = rt(n);
    
else
    rt = ones(1,length(t));
end

end

仿真结果:


总结

本文对常见的通信信号进行了简单的仿真,后续会根据研究进展进行补充。 转载请附链接【杨(_> <_)】的博客_CSDN博客-信号处理,SAR,代码实现领域博主

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【杨(_> <_)】

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值