yaoyaomao 发表于 2012-2-11 14:06

新手请教一个声压信号的fft处理

已知一声压信号,做频谱图。下面是代码、数据文件和我做的图,频谱图不是我想要的,不知道怎么处理,请大家帮忙看看。
fs=2739;   %采样频率
Ndata=16566;   %数据个数
N=8192;   %FFT采用的数据个数
n=0:Ndata-1;t=n/fs; %时间序列
=textread('noise.txt','%f %f'); %读取声压信号
y=fft(x,N);
mag=abs(y);
f=(0:N-1)*fs/N;   %真实频率
subplot(1,2,1),plot(t,x); %绘出声压时程
axis();
xlabel('时间/s');ylabel('声压DB');
title('声压时程');grid on;
subplot(1,2,2),plot(f(1:N/2),mag(1:N/2)*2/N); %绘出Nyquist频率之前的振幅
xlabel('频率/Hz');ylabel('振幅');
title('声压频谱');grid on;

hcharlie 发表于 2012-2-11 16:17

你的声压是什么单位?为什么都是正的?你就这样做fft当然0频率的值很大了。

yaoyaomao 发表于 2012-2-12 09:17

本帖最后由 yaoyaomao 于 2012-2-12 10:23 编辑

回复 2 # hcharlie 的帖子

这个是用软件计算出的噪声DB值,声压的单位是DB。我重新做了一个,声压的单位是pa

又把频谱图的纵坐标经过数据变换成DB,只关注200Hz以内的频谱分布


这样对不对
页: [1]
查看完整版本: 新手请教一个声压信号的fft处理