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

发布于:2025-04-03 ⋅ 阅读:(22) ⋅ 点赞:(0)

作业内容

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]);

% 标准化图形尺寸


网站公告

今日签到

点亮在社区的每一天
去签到