Excel做傅里叶变换后的频率是实际频率,如何转化为实际频率?

Excel做傅里叶变换后的频率是实际频率,如何转化为实际频率?,第1张

用MATLAB 实现傅里叶变换:
用户任意输入一个函数,然后,输出函数的傅里叶变换函数,然后输出振幅频率
x=sin(2pit); %任意输入一个函数。
y=fft(x); %傅里叶变换函数。
plot(abs(y)); %振幅频率。
函数(function)表示每个输入值对应唯一输出值的一种对应关系。这种关系使一个集合里的每一个元素对应到另一个(可能相同的)集合里的唯一元素。函数f中对应输入值的输出值x的标准符号为f(x)。包含某个函数所有的输入值的集合被称作这个函数的定义域,包含所有的输出值的集合被称作值域。若先定义映射的概念,可以简单定义函数为,定义在非空数集之间的映射称为函数。
傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。

首先应弄清楚概念,横坐标就是频域。
数据采集率是250Hz,知道FFT计算时是多少个点,如果是256点FFT,则计算后的数组的前128个点就是结果,后128个是对称的。

前128个点就对应0~250hz,每250/128= 195hz 一个点,哪个点上幅值比较高,即为被采集量含有那个点对应的频率信号。

扩展资料

时域与频域的转换

函数或信号可以透过一对数学的运算子在时域及频域之间转换,例如傅里叶变换可以将一个时域信号转换成在不同频率下对应的振幅及相位,其频谱就是时域信号在频域下的表现,而反傅里叶变换可以将频谱再转换回时域的信号。

时域信号的频谱分析:以信号为例,信号在时域下的图形可以显示信号如何随着时间变化,而信号在频域下的图形(一般称为频谱)可以显示信号分布在哪些频率及其比例。

时域系统的频率特性:许多物理元件的特性会随着输入讯号的频率而改变,例如电容在低频时阻抗变大,高频时阻抗变小,而电感恰好相反,高频时阻抗变大,低频时阻抗变小,一个线性非时变系统的特性也会随频率而变化,因此也有其频域下的特性,频率响应的图形即为其代表。

参考资料

百度百科--时域

百度百科--FFT

首先应清楚采样频率的概念,采样频率fs代表,数据样本采集的频率,简而言之就是数据样本中两个连续数据之间的时间间隔为1/fs。
如果你把采样频率从2000改为2w那么,采集数据的时间间隔就从5e-4变成了5e-5,那么数据的频谱当然会增加10倍了

[x,fs,bite]=wavread('C:\WINDOWS\Media\Windows XP 启动wav',[1000 1499]);\x0d\z=x(:,1);\x0d\y=fft(z);\x0d\Y=fftshift(X);\x0d\sound(x,fs,bite);\x0d\subplot(2,1,1);plot(abs(Y));\x0d\\x0d\将零频分量移至频谱中心的函数\x0d\格式:Y=fftshift(X)\x0d\功能:用来重新排列X=fft(x)的输出,把X 的左右两半进行交换,从而将零频分量移至频谱中心。

第N个点对应的频率=采样频率/FFT点数N
如采样频率为100HZ,FFT点数为100点,
20HZ就是第20个点,30HZ就是第30个点,
第20个点对应幅值=第20个点实部2+第20个点虚部2
我的理解是这样。。。

(1)做波形显示以及fft变换,程序如下:
[y,fs]=wavread('E:\MATLAB6p5\work\3wav');%读出信号,采样率。
y=y(:,1);%取单声道。
sigLength=length(y);
Y = fft(y,sigLength);
Pyy = Y conj(Y) / sigLength;
halflength=floor(sigLength/2);
f=Fs(0:halflength)/sigLength;
figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)'); %画频域波形
t=(0:sigLength-1)/Fs;
figure;plot(t,y);xlabel('Time(s)'); %画时域波形
(2)关于滤波
声音频率主要集中在0~1KHZ,我想虑掉500hz以下的频率,因此采用一个高通滤波器
这里我使用了一个10阶butterworth高通滤波器,边带是500hz,但是这不能直接用,因为声音文件的采样率是44k,500hz相对于44k来说太小了。所以我得先把我的声音欠采样,然后再滤波。程序如下:
[k,Fs,bits]=wavread('E:\MATLAB6p5\work\3wav');
k=k(:,1);
y_temp=k(1:90000);
dfactor=3;
y=decimate(y_temp,dfactor);
[b,a] = butter(10,500/(Fs/(dfactor2)),'high');
y=filter(b,a,y);
y=interp(y,dfactor);
sigLength=length(y);
Y = fft(y,sigLength);
Pyy = Y conj(Y) / sigLength;
halflength=floor(sigLength/2);
f=Fs(0:halflength)/sigLength;
figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)'); %滤波后的频域波形

t=(0:sigLength-1)/Fs;
figure;plot(t,y,t,y_temp);xlabel('Time(s)'); %滤波后的时域波形

wavwrite(y,Fs,'3_'); %保存处理后的声音文件,文件名为”3_”


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12912167.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存