声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3192|回复: 8

[FFT] 我的FFT怎么只有直流分量呢?

[复制链接]
发表于 2009-5-9 10:22 | 显示全部楼层 |阅读模式

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

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

x
不知道怎么回事,FFT变换后结果只有直流分量,麻烦大家帮忙分析分析,可能哪里有问题,我的QQ337103372
源代码见附件。
程序:
clc
clear
close all
SampleData=load('3.txt')
x=SampleData(1:512)
subplot(311)
plot(x)
title('512个样本点,fs=100')
grid on
%---------------------------------------
%FFT变换
%---------------------------------------
fs=100
N=512
n=0:N-1;
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=n*fs/length(y);%进行对应的频率转换
subplot(312);
plot(f,mag);%做频谱图
title('FFT变换后的频谱图')
grid on
y=fftshift(fft(x,N));%进行fft变换
mag=abs(y);%求幅值
n=-(N-1)/2:(N-1)/2
f=n*fs/length(y);%进行对应的频率转换
subplot(313);
plot(f,mag);%做频谱图
title('零頻移到中央后的频谱图')
grid on

3.txt

4.5 KB, 下载次数: 11

fft7.m

603 Bytes, 下载次数: 9

回复
分享到:

使用道具 举报

发表于 2009-5-9 11:42 | 显示全部楼层
信号中的直流分量太大,在FFT之前先去除直流,再FFT分析就能改善。

评分

1

查看全部评分

 楼主| 发表于 2009-5-9 11:52 | 显示全部楼层
不好意思,我不是信号处理专业的,你能详细的说说吗?怎么去除直流分量
发表于 2009-5-9 13:06 | 显示全部楼层
LZ算fft前先去除趋势项或平均值, 具体动手搜下
发表于 2009-5-9 18:29 | 显示全部楼层
在FFT前做
x=x-mean(x);
 楼主| 发表于 2009-5-9 21:52 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-18 13:51 编辑
原帖由 songzy41 于 2009-5-9 18:29 发表
在FFT前做
x=x-mean(x);

我在其他论坛也看到大家说如果是实测数据要先去除直流分量和趋势项,再做FFT变换。我想问一下,使用x=x-mean(x); 可以去掉直流分量,但是趋势项可以去掉吗?也就是说使用你这条语句可以同时去掉直流分量和趋势项吗?不好意思,我不是信号处理专业的。
发表于 2009-5-9 23:17 | 显示全部楼层
matlab中有个detrend函数可以去掉直流分量,直接用就行吧?

评分

1

查看全部评分

 楼主| 发表于 2009-5-10 08:54 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-18 13:52 编辑
原帖由 fangdian 于 2009-5-9 23:17 发表
matlab中有个detrend函数可以去掉直流分量,直接用就行吧?

这个我不太清楚,但是用上面那位仁兄说的倒确实可以去掉直流分量,我现在的问题是如何去掉趋势项
发表于 2009-5-10 14:21 | 显示全部楼层
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-11 18:24 , Processed in 0.094945 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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