MATLAB 傅里叶变换怎么理解 下面代码最终计算怎样能够看出频率

clearall;N=256;dt=0.02;n=0:N-1;t=n*dt;x=sin(2*pi*t);m=N;a=zeros(1,m);b=zeros(1,m);for... clear all;
N=256;dt=0.02;
n=0:N-1;t=n*dt;
x=sin(2*pi*t);
m=N;
a=zeros(1,m);b=zeros(1,m);
for k=0:m-1
for ii=0:N-1
a(k+1)=a(k+1)+2/N*x(ii+1)*cos(2*pi*k*ii/N);
b(k+1)=b(k+1)+2/N*x(ii+1)*sin(2*pi*k*ii/N);
end
c(k+1)=sqrt(a(k+1)^2+b(k+1)^2);
end
subplot(211);plot(t,x);title('原始信号'),xlabel('时间/t');
subplot(212);plot((0:m-1)/(N*dt),c);
title('Fourier');xlabel('频率/HZ');ylabel('振幅');
展开
 我来答
dukinkin
2014-11-01 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:901万
展开全部

时域谱和频域谱是相互对应的


时域的信号长度,决定频域的采样间隔,它们成导数关系


时域中信号有N点,每点间隔dt,所以时域信号长度为N*dt

那么频谱每点的间隔就是1/(N*dt)


傅立叶变换结果和原来信号有相同的点数,所以m=N

又第一点一定对应0频率,所以

频域信号的很坐标就是(0:m-1)/(N*dt)


这句就是根据这个很坐标和频谱c,画出频谱plot((0:m-1)/(N*dt),c);


所以在频谱图上,可以根据峰值的位置的横坐标读出对应的频率


clear all;

N=256;dt=0.02;

n=0:N-1;t=n*dt;

x=sin(2*pi*t);

m=N;

a=zeros(1,m);b=zeros(1,m);

for k=0:m-1

    for ii=0:N-1

        a(k+1)=a(k+1)+2/N*x(ii+1)*cos(2*pi*k*ii/N);

        b(k+1)=b(k+1)+2/N*x(ii+1)*sin(2*pi*k*ii/N);

    end

c(k+1)=sqrt(a(k+1)^2+b(k+1)^2);

end

subplot(211);plot(t,x);title('原始信号'),xlabel('时间/t');

f=(0:m-1)/(N*dt);

subplot(212);plot(f,c);hold on

title('Fourier');xlabel('频率/HZ');ylabel('振幅');

ind=find(c==max(c),1,'first');%寻找最到值的位置

x0=f(ind); %根据位置得到横坐标(频率)

y0=c(ind); %根据位置得到纵坐标(幅度)

plot(x0,y0,'ro');hold off

text(x0+1,y0-0.1,num2str(x0,'频率=%f'));


Sievers分析仪
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
百度网友4327fcbb9b
推荐于2017-09-02 · 知道合伙人教育行家
百度网友4327fcbb9b
知道合伙人教育行家
采纳数:26425 获赞数:292062
从师范学校毕业后一直在现在单位工作

向TA提问 私信TA
展开全部

  MATLAB 傅里叶变换

  傅立叶变换的分类:
傅立叶级数:将周期性连续函数变换为离散频率点上的函数
(连续)傅立叶变换:将连续函数变换为连续频率的函数
离散时间傅立叶变换:将离散函数变换为连续频率的函数
离散傅立叶变换:将有限长离散函数变换为离散频率点上的函数
其中FFT是离散傅立叶变换的快速计算方法,适用于离散信号,并且注意变换后的点数与信号的采样点数一致。尽管可以将信号补0,但补0不能提高频域的分辨率。
matlab中提供了函数fft做一维的FFT。


  时域谱和频域谱是相互对应;时域的信号长度,决定频域的采样间隔,它们成导数关系;

  时域中信号有N点,每点间隔dt,所以时域信号长度为N*dt;那么频谱每点的间隔就是1/(N*dt)。

  傅立叶变换结果和原来信号有相同的点数,所以m=N,又第一点一定对应0频率,所以频域信号的很坐标就是(0:m-1)/(N*dt),这句就是根据这个很坐标和频谱c,画出频谱plot((0:m-1)/(N*dt),c),所以在频谱图上,可以根据峰值的位置的横坐标读出对应的频率。


clear all;

N=256;dt=0.02;

n=0:N-1;t=n*dt;

x=sin(2*pi*t);

m=N;

a=zeros(1,m);b=zeros(1,m);

for k=0:m-1

    for ii=0:N-1

        a(k+1)=a(k+1)+2/N*x(ii+1)*cos(2*pi*k*ii/N);

        b(k+1)=b(k+1)+2/N*x(ii+1)*sin(2*pi*k*ii/N);

    end

c(k+1)=sqrt(a(k+1)^2+b(k+1)^2);

end

subplot(211);plot(t,x);title('原始信号'),xlabel('时间/t');

f=(0:m-1)/(N*dt);

subplot(212);plot(f,c);hold on

title('Fourier');xlabel('频率/HZ');ylabel('振幅');

ind=find(c==max(c),1,'first');%寻找最到值的位置

x0=f(ind); %根据位置得到横坐标(频率)

y0=c(ind); %根据位置得到纵坐标(幅度)

plot(x0,y0,'ro');hold off

text(x0+1,y0-0.1,num2str(x0,'频率=%f'));

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式