查看: 239|回复: 0|关注: 0

[未答复] invfreqz和ifft变换结果不一致的原因?

[复制链接]

新手

10 麦片

财富积分


050


3

主题

6

帖子

0

最佳答案
发表于 2020-8-5 14:49:18 | 显示全部楼层 |阅读模式
在论坛看到一个关于fft和freqz函数的帖子,是关于如何让两个函数变换后频域信号幅值一致的。但是我在做反傅里叶变换后,发现变换后幅值有些差异,不知道是什么原因?请教一下大家
我的程序就是构造了一个时域正弦叠加的信号,进行fft、freqz后不做处理直接再进行ifft、invfreqz,对比三个信号
程序如下:
% 构造时域函数
fs=1000;    %采样频率
N=2000;     %采样点数
t=(0:N-1)*(1/fs);
x=sin(2*pi*63*t)+4*sin(2*pi*82*t)+0.8*sin(2*pi*112*t);  %变换前的时域信号
%% IFFT invfreqz对比
% IFFT变换 直接变换
y=fft(x);           %这里的x是fft后未经处理的信号
x_ifft=ifft(y);
t_ifft=(1:length(x_ifft))/fs;   %时间
% invfreqz变换 直接变换
[y_freqz,w]=freqz(x,1,length(x));      %这里的x是fft后未经处理的信号
x_invfreqz=invfreqz(y_freqz,w,length(y_freqz),1);
figure,plot(x_ifft);%t_ifft,
hold on,plot(x_invfreqz);
hold on,plot(x,'--');
legend('IFFT变换','invfreqz变换','原始信号');
运行程序后就会发现,IFFT恢复的信号和之前时域一样,但是invfreqz整体幅值都偏低一些。

回复主题 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

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