包含1列加速度计时程信号的csv文件,先进行带通滤波再计算噪声功率谱密度,并画出滤波后时程曲线图和功率谱密度图的MATLAB程序
时间: 2024-03-21 13:38:28 浏览: 122
好的,下面是MATLAB程序,包含带通滤波和噪声功率谱密度的计算,并绘制滤波后时程曲线图和功率谱密度图。
```matlab
% 读取CSV文件中的数据
data = csvread('data.csv');
% 数据预处理
Fs = 1000; % 采样频率
t = 0:1/Fs:(length(data)-1)/Fs; % 时间向量
acc = data(:,1); % 加速度数据
% 带通滤波
f1 = 5; % 低频截止频率
f2 = 50; % 高频截止频率
[b,a] = butter(2, [f1 f2]/(Fs/2), 'bandpass'); % 2阶带通滤波器
acc_filtered = filtfilt(b,a,acc); % 零相移滤波
% 绘制滤波后时程曲线图
figure;
plot(t, acc_filtered);
xlabel('Time (s)');
ylabel('Acceleration (m/s^2)');
title('Acceleration Time History (Filtered)');
% 计算噪声功率谱密度
N = length(acc_filtered); % 信号长度
xdft = fft(acc_filtered); % 快速傅里叶变换
Pxx = (1/(Fs*N)) * abs(xdft).^2; % 计算功率谱密度
f = 0:Fs/N:Fs/2; % 频率向量
% 绘制功率谱密度图
figure;
loglog(f,Pxx(1:N/2+1));
xlabel('Frequency (Hz)');
ylabel('PSD (m^2/s^4/Hz)');
title('Power Spectral Density (Filtered)');
```
需要注意的是,程序中的数据文件名为`data.csv`,需要根据实际情况修改。另外,滤波器的阶数和截止频率也可以根据实际情况进行修改。
阅读全文