声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2157|回复: 9

[综合讨论] 如何在程序中实现信号FFT后的实部和虚部的求解

[复制链接]
发表于 2008-4-26 18:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
如果给定一个信号比方说x=cos(2*pi*f*t+w)经过FFT后我想知道其实部和虚部,请问程序语言怎么实现?

[ 本帖最后由 eight 于 2008-4-28 18:27 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-4-26 21:24 | 显示全部楼层

回复 楼主 的帖子

取实部real,虚部imag
是这个吗
 楼主| 发表于 2008-4-26 21:55 | 显示全部楼层
如果一个余弦信号经过FFT以后得到实部和虚部例如
fs=1;
N=100;  %频率分辨率为fs/N=0.01Hz,下面信号的频率0.05是0.01的整数倍,即为整周期采样
n=0:N-1;
t=n/fs;
f0=0.05;%设定余弦信号频率
x=cos(2*pi*f0*t+pi/3);
y1=fft(x,N);%进行fft变换
p1=real(y1);
q1=imag(y1);
得到的p1和q1为什么只在2点有值?刚接触FFT,弱智问题还请不要见笑!

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图
untitled1.jpg (14.47 KB)
p1
2008-4-26 20:56


那么如果我用同样的方法求得另一个函数的实部和虚部,记为P2,Q2的话,对他们进行计算,比方说要求得p1*p2,p1*q2.怎么老提示说内部矩阵要一致?难道经过real(x)以后出来的值还要求幅值?
发表于 2008-4-26 22:34 | 显示全部楼层
cos函数只有一个频率阿
两个点是对称的,只看一个即可
 楼主| 发表于 2008-4-27 10:12 | 显示全部楼层
我得到的图确实是2点对称的。如果我要求出在这2点的幅值怎么弄呢?
发表于 2008-4-27 10:33 | 显示全部楼层
原帖由 rocky_ding 于 2008-4-27 10:12 发表
我得到的图确实是2点对称的。如果我要求出在这2点的幅值怎么弄呢?

对3楼的改一下就ok了
fs=1;
N=100; %频率分辨率为fs/N=0.01Hz,下面信号的频率0.05是0.01的整数倍,即为整周期采样
n=0:N-1;
t=n/fs;
f0=0.05;%设定余弦信号频率
x=cos(2*pi*f0*t+pi/3);
y1=fft(x,N);%进行fft变换
y1=abs(y1); %求幅值
min_y1=min(y1);
max_y1=max(y1);
ind=find(y1>(min_y1+max_y1)/2); % 检测最大值的位置
a=y1(ind); % 最大值,即2点幅值
plot(n,y1,n(ind),y1(ind),'ro')

图中红色圆圈即为所求的幅值。

频谱图

频谱图

评分

1

查看全部评分

发表于 2008-4-27 13:45 | 显示全部楼层
原帖由 friendchj 于 2008-4-27 10:33 发表

对3楼的改一下就ok了
fs=1;
N=100; %频率分辨率为fs/N=0.01Hz,下面信号的频率0.05是0.01的整数倍,即为整周期采样
n=0:N-1;
t=n/fs;
f0=0.05;%设定余弦信号频率
x=cos(2*pi*f0*t+pi/3);
y1=fft(x,N);%进行 ...



为什么要找到y>最大和最小的平均呢?
 楼主| 发表于 2008-4-27 15:12 | 显示全部楼层
6楼兄弟首先谢谢你的解释
我要取的是FFT以后实部和虚部的幅值!
这个问题别的朋友已经给我做处了回答:如果变换后实部和虚部分别记为p1,q1他们在5HZ处是有幅值的!
如果要取在5Hz处的数值,例如设为
Ram5=p1(6)   %5Hz的实部
Iam5=q1(6)     %5Hz的虚部
因为5Hz是在笫6根谱线上。
那么为什么在5HZ处有值,为什么5HZ对应第6跟谱线现在是我不明白的。请教。:@(
发表于 2008-4-27 16:01 | 显示全部楼层
原帖由 rocky_ding 于 2008-4-27 15:12 发表
6楼兄弟首先谢谢你的解释
我要取的是FFT以后实部和虚部的幅值!
这个问题别的朋友已经给我做处了回答:如果变换后实部和虚部分别记为p1,q1他们在5HZ处是有幅值的!
如果要取在5Hz处的数值,例如设为
Ram5=p1(6)  ...

这个具体点说说吧,你画图时以6楼的plot(n,y1)为例子,n=0:N-1; y1是一个行向量,这样plot时候n=0 1 2 3 4 5分别对应y1的前六个元素,那n=5不就是对应y1(6)吗,另外这里6楼的图的横坐标用的是FFT采样点来表示的,单位不是HZ,要变成HZ还要乘个0.01(频率分辨率),所以不是你说的5HZ

评分

1

查看全部评分

发表于 2008-4-27 19:36 | 显示全部楼层
原帖由 antonylau 于 2008-4-27 13:45 发表



为什么要找到y>最大和最小的平均呢?

画图时和9楼的意思是一样的。
y>最大和最小的平均是为了寻找那两个频率点,最大和最小的平均只是我设的一个阈值,当然可以不是他,只要能把那两个点找出来就行。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 02:19 , Processed in 0.091599 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表