# 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 | | :------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | | 程序出图 | chan1_fft | chan2_fft | chan3_fft | | PAK出图 | chan1_PAK | chan2_PAK | chan3_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 | ![test1_test2_chan1_oct](/test1_test2_chan1_oct.png) | ![test1_test2_chan2_oct](/test1_test2_chan2_oct.png) | | 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 | ![test1_chan1_psd_welch](/test1_chan1_psd_welch.png) | ![test1_chan1_pwelch](/test1_chan1_pwelch.png) |