声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2268|回复: 6

[FFT] [求助]用FFT方法求总谐波失真

[复制链接]
发表于 2008-5-6 14:45 | 显示全部楼层 |阅读模式

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

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

x
附件是7999点的1K正弦波

我通过采集卡采集了7999点的1K正弦波数据,
我想用FFT法作出它的2,3,4,5次谐波,可是看不到,不知哪里错了,希望各位帮忙,
目的是求出总谐波失真,希望有了解的可以给些建议(我采集的这个波形按理说应该有不小于0.2%的失真),
本人是出学,还没入门,希望各位指正.谢谢

X为读入的文本,进行8192点变换,不足补零.

n=8192;
fs=64730;    //采样频率
y=fft(x,n);
fn=0:length(y)-1;
f=fs*fn/length(y);
plot( f(1:n/2),abs( y(1:n/2) ));

程序所出结果图形

程序所出结果图形

1000.0.txt

89.83 KB, 下载次数: 31

7999点的1K正弦波数据

回复
分享到:

使用道具 举报

发表于 2008-5-6 14:58 | 显示全部楼层
因为谐波太小了,纵坐标用对数坐标画画看。另外因为旁瓣太大,应想办法减小,比如取采集频率=2.56*K*1000,K为正整数,采样点数为1024的整数倍,数据不加零,加窗。。。试试。

[ 本帖最后由 hcharlie 于 2008-5-6 15:07 编辑 ]
 楼主| 发表于 2008-5-6 15:26 | 显示全部楼层
感谢回答,我依据您的意见改了了对数坐标,如下图,基波位置基本没问题,还是分辨不出个谐波分量,看来真是要加其他手段了:-(

n=8192;
fs=64730;
y=fft(x,n);
fn=0:length(y)-1;
f=fs*fn/length(y);
plot( f(1:n/2),log(abs( y(1:n/2)/n ))); <---加了对数

加了对数

加了对数
发表于 2008-5-6 16:39 | 显示全部楼层
2楼已指出旁辨太大,要想法减小旁辨的影响。下程序中用了blackman窗函数,因为谐波比基波还是要小得多,用对数坐标能看清。程序清单和计算结果如下。
x=load('1000.txt');
M=length(x);
x=x.*blackman(M);
N=8192;
fs=64730;
y=fft(x,N);
fn=0:N-1;
f=fs*fn/N;
plot( f(1:N/2),log(abs( y(1:N/2)))); %<---加了对数
axis([0 10000 -5 10]); grid;
jn2a.jpg
 楼主| 发表于 2008-5-6 16:54 | 显示全部楼层
真是受益匪浅啊,非常感谢2位的帮助,谢谢.

[ 本帖最后由 eight 于 2008-5-6 18:16 编辑 ]
 楼主| 发表于 2008-5-7 10:23 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-9 14:12 编辑
原帖由 songzy41 于 2008-5-6 16:39 发表
2楼已指出旁辨太大,要想法减小旁辨的影响。下程序中用了blackman窗函数,因为谐波比基波还是要小得多,用对数坐标能看清。程序清单和计算结果如下。
x=load('1000.txt');
M=length(x);
x=x.*blackman(M);
N=819 ...

您的回复给了我非常大的帮助,真是非常感谢,另外我还想请教一下我的波形数据经过FFT变换后,横坐标我知道是频率,但纵坐标代表什么呢?
是相应频率的有效值,还是什么的,在实际中怎么应用,因为我是想求总谐波失真,方法是用2,3,4,5次谐波的有效值除以基波的有效值,这个百分比就是谐波失真.
现在我的迷惑是,您为了突出小值,加了log运算,那么我实际运算中如何处理呢?期待您百忙中的回复,谢谢.

具体来说就是我还是不是很清楚FFT运算后所得数据的左坐标的实际含义
发表于 2008-5-7 16:37 | 显示全部楼层
纵坐标是相对值fn/N,单位为分贝(线性幅值为1作为0分贝)。要求谐波的幅值,可在线性刻度下计算。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-6 07:27 , Processed in 0.078138 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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