%% 信号频谱分析 Matlab 仿真代码 % 作者:xxx % 时间:xxxx 年 xx 月 xx 日

%% 生成信号 fs = 1000; % 采样频率为 1000Hz T = 1; % 信号时长为 1s t = 0:1/fs:T-1/fs; % 时间序列 f1 = 50; % 信号频率为 50Hz f2 = 200; % 信号频率为 200Hz x = sin(2pif1t) + 0.5sin(2pif2*t); % 生成复合信号

%% 时域波形显示 figure(1); subplot(2,1,1); % 将窗口分为两行一列,当前画图在第 1 行第 1 列 plot(t, x); % 绘制信号波形 xlabel('Time(s)'); % 设置 x 轴标签 ylabel('Amplitude'); % 设置 y 轴标签 title('Time Domain Waveform'); % 设置图像标题

%% 频域幅度谱显示 N = length(x); % 信号长度 X = fft(x)/N; % 进行 FFT 变换 f = fs*(0:N/2-1)/N; % 频率序列 mag = abs(X(1:N/2)); % 幅度谱 subplot(2,1,2); % 将窗口分为两行一列,当前画图在第 2 行第 1 列 plot(f, mag); % 绘制幅度谱 xlabel('Frequency(Hz)'); % 设置 x 轴标签 ylabel('Magnitude'); % 设置 y 轴标签 title('Frequency Domain Amplitude Spectrum'); % 设置图像标题

%% 频域相位谱显示 phase = angle(X(1:N/2)); % 相位谱 figure(2); plot(f, phase); % 绘制相位谱 xlabel('Frequency(Hz)'); % 设置 x 轴标签 ylabel('Phase(Rad)'); % 设置 y 轴标签 title('Frequency Domain Phase Spectrum'); % 设置图像标题


原文地址: https://www.cveoy.top/t/topic/mUzl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录