当前位置: 首页 > news >正文

《汽车噪声控制》课程作业

作业内容

MATLAB绘制给出单个正弦波或余弦波的时域图和频域图

绘制实测数据的时域图和频域图

1 单个正弦波的时频图

1 单个正弦波的时频图

% 正弦波参数设置

f0 = 1000; % 信号频率 1kHz

Fs = 16384; % 采样频率 16kHz

T = 0.05; % 信号持续时间 0.05

A = 0.8; % 信号幅度

% 生成时间向量

t = 0:1/Fs:T; 

% 时间轴 (0T秒,步长1/Fs)

% 生成正弦波信号

sine_wave = A * sin(2*pi*f0*t);

% 绘制时域波形

subplot(2,1,1)

plot(t, sine_wave)

xlabel('时间 (s)')

ylabel('幅度')

title('时域波形')

xlim([0 0.01]) % 显示前10ms波形

% 频谱分析

N = length(sine_wave);

% 采样点数

freq = (-Fs/2:Fs/N:Fs/2-Fs/N);% 频率轴

spectrum = fftshift(fft(sine_wave)); % 进行FFT

% 绘制频域波形

subplot(2,1,2)

plot(freq, abs(spectrum)/N*2)  % 归一化处理

xlabel('频率 (Hz)')

ylabel('幅度')

title('频域特性')

xlim([0 16000])   % 显示0-2kHz范围

grid on

2 实测数据的的时频图

filename = 'D:\Desktop\MATLAB\(此处放置实测数据文件)';

dataMat = readmatrix(filename, 'NumHeaderLines',16, 'Delimiter',',');

% 使用高效读取函数

%% 数据预处理

t = dataMat(:,1);         % 时间序列

signals = dataMat(:,2:end);

 % 30通道信号矩阵

%% 信号参数配置

Delta = 3.051757812500e-05; % 采样间隔

Fs = 1/Delta;  % 采样频率

DataLength = 32768; % 固定数据长度

signalIdx = 1;  % 目标信号索引

%% 时域分析

figure('Name','信号时频分析','NumberTitle','off');

subplot(2,1,1);

plot(t, signals(:,signalIdx), 'LineWidth',2);

title(sprintf('时域波形 - 信号 %d', signalIdx)); % 优化字符串生成

xlabel('时间 (s)');

ylabel('幅值 (Pa)');grid on;

axis tight;  % 自动优化坐标范围

%% 频域分析优化

signal = signals(:,signalIdx);

Y = fft(signal, DataLength);

% 明确指定FFT点数

P2 = abs(Y)/DataLength;  % 幅度归一化

P1 = P2(1:DataLength/2+1);  % 单侧频谱

P1(2:end-1) = 2*P1(2:end-1);% 能量修正

%% 频率向量生成优化

f = Fs*(0:DataLength/2)/DataLength;

subplot(2,1,2);

plot(f, P1, 'Color',[0 0.447 0.741], 'LineWidth',2);

title(sprintf('频域特性 - 信号 %d', signalIdx));

xlabel('频率 (Hz)');ylabel('幅值');

xlim([0 Fs/2]); grid on;

set(gcf,'Position',[100 100 800 600]);

% 标准化图形尺寸

http://www.dtcms.com/a/107875.html

相关文章:

  • 英飞凌高信噪比MEMS麦克风驱动人工智能交互
  • Pandas基础及series对象
  • Token是什么?
  • 时序数据库 InfluxDB(六)
  • Python爬虫第一战(爬取优美图库网页图片)
  • *快排延伸-自省排序
  • conda activate激活环境失败问题
  • 《雷神之锤 III 竞技场》快速求平方根倒数的计算探究
  • conda 激活环境vscode的Bash窗口
  • 数据清洗的具体内容
  • 【Linux】手动部署并测试内网穿透
  • Python基础语法 - 判断语句
  • ffmpeg命令整理
  • 从零开始学习Slam|ICP原理与应用
  • Sentinel实战(三)、流控规则之流控效果及流控小结
  • OpenIPC开源FPV之Adaptive-Link新版本算法v0.60.0
  • 强大而易用的JSON在线处理工具
  • python网络爬虫开发实战之Ajax数据提取
  • 链表的操作-反转链表
  • spring 设计模式、核心模块
  • 创建Linux虚拟环境并远程连接,finalshell自定义壁纸
  • 最短路径:Bellman-Ford算法
  • 抽象类与接口:特征与比较
  • 【实用技巧】电脑重装后的Office下载和设置
  • 自动化测试(web测试)
  • vue-系统登录后进入页面【el-input】输入框无法正常显示?需要手动刷新才可以恢复设置样式?让我来瞅瞅~
  • 关于 UPDATE 语句 和 SELECT ... FOR UPDATE 的对比分析,包括语法、功能、锁机制、使用场景及示例代码
  • java知识梳理(二)
  • 【电子通识】为什么电子元件的规格书常常要看英文版本
  • 从 Credit Metrics 到 CPV:现代信用风险模型的进化与挑战