(43)MATLAB生成矩形脉冲及其频谱

时间:2024-10-23 20:25:23

文章目录

  • 前言
  • 一、MATLAB仿真代码
  • 二、仿真结果画图


前言

矩形脉冲在通信信号中是很重要的调制符号波形,在理论分析中也是及其重要的基础波形,本文使用MATLAB生成矩形脉冲,并使用FFT变换给出其频谱。


一、MATLAB仿真代码

代码如下:

clear
clc
close all

%% 生成矩形脉冲
fs = 1000;                          % 采样率
T = 0.2;                            % 矩形脉冲宽度,单位s
t = -0.5 : 1/fs : 0.5;              % 时基
t2 = t;

rect_pulse = (abs(t)<T/2) + 0.5*(abs(t)==T/2); % 矩形脉冲函数
% rect_pulse = rectpuls(t,T);         % 使用MATLAB库函数

figure()
plot(t,rect_pulse,'LineWidth',1.5);
grid on
title(['矩形脉冲(脉冲宽度=', num2str(T),' s)']);
xlabel('时间/s');
ylabel('幅度');
ylim([-0.1 1.1]);                   % 限制y轴范围,以便更清楚地看到矩形脉冲

%% 矩形脉冲的频谱
L = length(rect_pulse);
N = 2^nextpow2(L);

% 对矩形脉冲进行FFT转换为频域表示
X = fft(rect_pulse,N);

% 定义频域的频率刻度,并绘制幅度频谱
P2 = abs(X/N);                      % 计算双边幅度频谱P2
Y = fftshift(P2);
f = (-N/2:N/2-1)*(fs/N);

figure()
plot(f,Y,'LineWidth',1.5) 
grid on
title('矩形脉冲的频谱');
xlabel('频率(Hz)')
ylabel('频谱幅度|P(f)|')
xlim([-100 100]);                   % 限制x轴范围,以便更清楚地看到主要的频谱分量

二、仿真结果画图

矩形脉冲的时域波形图:

在这里插入图片描述

矩形脉冲的频谱(0频分量在中心的双边谱):

在这里插入图片描述

高斯脉冲见:
(39)MATLAB生成高斯脉冲及其频谱

零为中心的功率谱的绘制方法见:
(42)MATLAB中使用fftshift绘制以零为中心的功率谱