关于如何用matlab做傅里叶变换的问题

手头要处理数据,每个数据可看作是一段纵波。波的图像由origin处理得到。现在想把图像导入matlab中,进行傅里叶变换,从而得到傅里叶系数。这样就可以将其中不同振幅的波分离出来,从而求出其占整体的百分比。

目前这些波的图像都没有函数式,只是图像,是否需要先拟合,然后根据解析式进行变换。

我想了很久,查了很多书,可书上的东西有些太难了,我只是需要一个很简单的频谱分析就可以了。大侠帮帮忙吧。
谢谢你的回答,你给出的程序我在计算机上试一下。但是我没学过数字信号处理。看来要不不少课啊。

不需要解析式,你学过数字信号处理的话看看matlab的fft函数就应该会用

fs=10000;%采样频率
N=1000; %采样点数
n=0:N-1;
t=n/fs;
y=sin(2*pi*t)+0.1*sin(4*pi*t)+0.01*sin(8*pi*t);
%给定信号
figure(1);
subplot(211);
plot(t,x);%绘出信号的时域波形
xlabel('时间/t');
ylabel('幅值');
title('信号的时域波形');
grid on;
y=fft(x,N);%进行fft变换
m=abs(y(1:N/2))*2/N;%求信号的真实幅值
f=n*fs/N; %进行对应的频率转换
subplot(212);
stem(f(1:N/2),m(1:N/2));%绘出频谱图
xlabel('频率/Hz');
ylabel('幅值');
title('信号频谱图');
grid on;
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-25
不需要拟合 :
设抽样频率为Fs(Hz),信号点数为N,信号序列为x。
x=imread(‘’)
f = fftshift(fft(x));
w = linspace(-Fs/2, Fs/2, N);%频率坐标,单位Hz
plot(w,abs(f));
title('信号的频谱');
xlabel('频率(Hz)');
第2个回答  2011-07-11
fs=10000;%采样频率
N=1000; %采样点数
n=0:N-1;
t=n/fs;
y=sin(2*pi*t)+0.1*sin(4*pi*t)+0.01*sin(8*pi*t);
%给定信号
figure(1);
subplot(211);
plot(t,x);%绘出信号的时域波形
xlabel('时间/t');
ylabel('幅值');
title('信号的时域波形');
grid on;
y=fft(x,N);%进行fft变换
m=abs(y(1:N/2))*2/N;%求信号的真实幅值
f=n*fs/N; %进行对应的频率转换
subplot(212);
stem(f(1:N/2),m(1:N/2));%绘出频谱图
xlabel('频率/Hz');
ylabel('幅值');
title('信号频谱图');
grid on;

matlab是如何进行傅里叶变换的?采用什么方法进行积分运算?
首先,打开MATLAB软件,迎接您的是软件的主界面。接着,利用`syms`命令定义四个符号变量:a、b、c、x 和 t。这些变量将用于后续的数学表达式定义和傅里叶变换操作。然后,创建第一个符号表达式A,它等于7乘以变量a的正弦值,即 A = 7*sin(a)。使用`fourier`函数对表达式A进行傅里叶变换。变换结果...

Matlab中的傅里叶变换
在Matlab中实现傅里叶变换,通常有两种常见方法。首先,通过定义时间序列信号来展示信号在时间空间中的变化。例如,定义一个时间序列xt,表示随时间变化的信号,并通过绘图展示这一过程。接着,使用傅里叶变换公式对信号进行转换,将其从时间域转换到频率域。在Matlab中,这可以通过计算信号xt与复指数函数的...

Matlab中对时域函数作傅里叶变换 即FFT函数的使用
在Matlab中,执行傅里叶变换通常涉及对特定函数或已有数据进行处理。首先,让我们考虑输入一个具有多频率成分的函数的情况。假设我们有一个函数,包含多种频率的成分,我们希望将其转换为频域表示。在Matlab中,通过调用FFT(快速傅里叶变换)函数,我们可以实现这一转换。假设函数为f(t),其中t表示时间。

怎么用matlab做傅里叶变换
这样用matlab做傅里叶变换: 1、我们使用matlab开发的傅立叶变换程序代码如下: syms x f = exp(-2*x^2); %our function ezplot(f,[-2,2]) % plot of our function FT = fourier(f)% Fourier transform 将其写入到我们的matlab程序模块中。 2、我们运行上面的傅立叶变换程序代码,将得出运行结果:FT ...

matlab短时傅里叶变换
Matlab中的短时傅里叶变换(STFT)是一种强大的工具,它允许我们同时解析信号的频率和时间信息,这对于分析正弦信号的混合情况尤其有用。以下是使用Matlab实现STFT的简要步骤:1. 以5Hz和10Hz正弦波叠加为例,原始信号通过fft只能识别出特定频率成分,而无法跟踪频率随时间的变化。这时,STFT通过窗口滑动和...

Matlab模拟傅里叶变换
矩阵形式的傅里叶变换为:接下来是具体的实现步骤,以Digital Signal Processing Using Matlab中的例子为准,通过定义和编写脚本,可以模拟并观察变换效果。验证变换正确性可通过命令行检查结果的对应关系。然而,值得注意的是,目前Matlab在处理复函数时可能存在不准确的问题,有待进一步研究。对于离散时间傅里...

Matlab中短时傅里叶变换 spectrogram和stft的用法
在Matlab中,进行短时傅里叶变换主要使用spectrogram和stft这两个函数。spectrogram函数提供了一种将数据分段加窗,做快速傅里叶变换(FFT)的方法,并在分段时存在重叠,因此一个向量的短时傅里叶变换结果会形成一个矩阵。使用spectrogram函数进行短时傅里叶变换,可以通过指定参数来调整变换的效果。例如,...

matlab是如何进行傅里叶变换的?采用什么方法进行积分运算?
第六步,使用函数fourier(B,c,t),对代数式B进行傅里叶变换。得到的结果中dirac(2,t)是对狄拉克函数的二阶导数。7\/8 第七步,使用符号变量x,创建代数式C,其中C=abs(4*x)。8\/8 第八步,使用函数fourier(C,x,t),对代数式C进行傅里叶变换 matlab软件是一款科学计算软件,在工程和科学...

如何用matlab计算傅里叶级数呢?
然而,你给出的函数f(t) = e^(-2|t|)在matlab中求傅里叶级数是有些复杂的,因为它的积分可能涉及到一些特殊函数。此外,由于该函数是偶函数,其傅里叶变换的实部和虚部是对称的,因此只需要计算一半的频率范围即可。不过,我可以给你一个例子,这个例子使用的是矩形函数,其傅里叶级数的计算相对...

如何用MATLAB完成傅里叶变换和逆变换?
用MATLAB进行傅里叶变换用fft()函数来变换,其逆变换用ifft()函数来变换。变换要求X为向量,而不是变量。根据题主的代码应这样来处理。>> t=-pi:pi\/100:pi;>> x=sin(2*pi*t);>> y=fft(x); %傅里叶变换 >> plot(abs(y))x=ifft(y); %傅里叶逆变换 >> plot(t,x)

相似回答