MATLAB仿真——CW信号(含代码)

一、CW信号形式

严格来说,CW有两种意义,一种是连续波(英语为Continuous Wave,缩写为CW),指的是振幅与频率恒定不变的电磁波,通常是正弦波,一般理解为正弦波作为载波的调制信号,CW可以包含线性调制(AM,DSB,SSB,VSB等)、非线性调制(FM、PM)、数字调制(ASK、FSK等)。另一种是等幅数据报或者等幅波电报,在无线电爱好者中常用。

本次仿真的是前者,数学表达式如下:

sleft ( t 
ight )=Aexp[j(2pi f_c t + phi_0)], 0<t leq T

A表示信号幅值,f_c表示载频,phi_0表示初始相位,T表示脉宽。

二、仿真代码及结果展示

1.仿真代码

fs = 300;       % 采样率
T = 1/fs;       % 采样时间
N = 600;        % 采样点数
t = (0:N-1)*T;  % 采样时间序列

A_danpin = 10;  % 设置信号幅度
f_danpin = 80;  % 设置信号载频频率
y_danpin = A_danpin*cos(2*pi*f_danpin*t);  % 信号表达式

%%%%%%%%%%%绘制时域图%%%%%%%%%%%%
tiledlayout(2,1);       % 创建一个2x1分块图布局
ax1 = nexttile;         % 创建坐标区对象ax1
plot(ax1,t,y_danpin);   % 绘制时域图
xlabel(ax1,'t/s');      % 设置x轴标签
ylabel(ax1,'幅度/V');    % 设置y轴标签
title(ax1,'时域波形');   % 设置标题

n = 2^nextpow2(N);         % 进行FFT变换时的采样点数,采样点数越大,分辨的频率越精确,N>=L,超出的部分信号补为0
Y = fft(y_danpin,n)/n*2;   % 除以N乘以2才是真实幅值,N越大,幅值精度越高
f = fs/n*(0:1:n-1);        % 频率序列
P = abs(Y);                % 幅值处理

%%%%%%%%%%%绘制频谱图%%%%%%%%%%%%
ax2 = nexttile;                % 创建坐标区对象ax1
plot(ax2,f(1:n/2),P(1:n/2));   % 函数fft返回值的数据结构具有对称性,因此我们只取前一半
xlabel(ax2,'频率(Hz)');        % 设置x轴标签
ylabel(ax2,'幅值 ');           % 设置y轴标签
title(ax2,'频谱');             % 设置标题

2.仿真结果

下面是使用MATLAB对CW信号进行的仿真结果图。

MATLAB仿真——LFM信号(含代码)

我常用的写作开源软件Marktext的介绍、下载、安装与设置