# fft and octave computing
**Repository Path**: wrandz/fft-and-octave-computing
## Basic Information
- **Project Name**: fft and octave computing
- **Description**: 绘制频谱图及频域倍频程计算
- **Primary Language**: Matlab
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 1
- **Created**: 2022-08-20
- **Last Updated**: 2025-11-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# fft and octave computing
## 介绍
计算测量信号的频谱、功率谱、功率谱密度和倍频程结果。
## fft demo
#### 目的:
使用扬声器播放1kHz纯音,用BBM测量,比较PAK软件和程序绘制的频谱图,两者一致。
#### 数据来源及参数
- 采样频率Fs=16384Hz,Amp_1_Bits_32.mat文件数据格式663552x3,测量时长663552/16384=40.5s,3个通道;
- b站视频:【PAK软件操作】 https://www.bilibili.com/video/BV14V4y1k7mx/?share_source=copy_web&vd_source=31a15d87ec853c70731096b14f3bec46
#### 使用方法
运行main_fft程序,分别得到500-2500Hz通道1、2、3的频谱图,与PAK出图比较如下:
| | channel1 | channel2 | channel3 |
| :------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: |
| 程序出图 |
|
|
|
| PAK出图 |
|
|
|
程序结果与软件结果一致。
## octave demo
#### 目的:
计算两组噪声测试数据的A计权1/3倍频程谱,并对比。
#### 数据来源及参数
- 某机电产品的实测噪声数据,使用吸声棉来降低高频噪声。test1.mat 工况,未加吸声棉;test2.mat 工况,添加吸声棉(20210712xxx实验吸声棉效果测试);
- 采样频率Fs=16384Hz,test1.mat文件数据格式3911494x2,测量时长3911494/16384=238.7s,2个通道;test2.mat文件数据格式3917267x2,测量时长3917267/16384=239.1s,2个通道;
#### 使用方法
运行main_octave程序,分别得到1-4kHz通道1、2的倍频程谱对比结果,如下:
| | channel1 | channel2 |
| :------: | :----------------------------------: | :----------------------------------: |
| SPLband |  |  |
| sumLevel | 无吸声棉:68.8924;有吸声棉:62.3466 | 无吸声棉:68.8212;有吸声棉:62.8376 |
## psd demo
#### 目的:
若信号不是谐波信号,而是宽带信号,则需要计算其功率谱或功率谱密度。
main_psd,加窗傅里叶变换之后,使用能量恢复系数,保持总的平均功率不变。
main_psd_welch,加窗傅里叶变换之后,恢复每个频点的真实功率值,和pwelch函数计算结果一致。
具体应用中选取哪种psd计算方法,看应用需求。
个人看法:当信号由强谐波成分+宽带底噪构成,使用main_psd_welch,可以查看分析频率处的真实功率值,此时相当于main_fft;
当信号不存在明显谐波成分,使用main_psd,可以整体地查看能量在频率轴上的分布。
#### 数据来源及参数
来源于 octave demo 的数据。
#### 使用方法
运行main_psd_welch程序,可以计算功率谱或功率谱密度。程序结果与MATLAB的pwelch函数结果一致。
| | main_psd_welch计算结果 | pwelch计算结果 |
| :------: | :----------------------------------: | :----------------------------------: |
| psd转为SPL |  |  |