时域信号补零是否能提高FFT分辨率?

在192KHZ采样率下,为达到1HZ频率分辨率,需要192K个采样点,但最佳FFT数据量为2的次方。考虑到计算限制和效率,文章探讨了补零和过采样作为提高分辨率的方法。通过MATLAB模拟,补零确实能增加FFT的频率分辨率。然而,减少有效数据并补零到48K,当信号频率超过原始范围时,仍能准确测量。作者认为,补零后的信号失去真实性,讨论分辨率意义减弱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在设计中,当采样率为192KHZ时。需要对被采样信号频率分辨率达到1HZ,按照FFT运算后,采样点数需要达到192K个才能有1HZ的精度,但FFT运算的数据量最好的是2的次方。例外,FFT计算时会有数据上限要求、以及数据量过大会增加计算时间,不利于系统设计。那么如果采取补零、以及过采样的方法是否可以提高系统分辨率呢?下面采用MATLAB进行补零效果的验证,后期再进行FPGA实际采样。

fs=48000;        %采样率
n1=0:1:47999;     %1秒钟采集48000个点
y1=sin(2*pi*5760*n1/fs);    %生成5760HZ信号
s1=sin(2*pi*5759*n1/fs);    %生成5759HZ信号
figure(1);              
subplot(4,1,1);
plot(n1,y1);
title('原始时域信号');
subplot(4,1,2);
plot(abs(fft(y1)));
title('原始频域信号');

n2=0:1:1499;                 %只取1500个有效数据
y2=sin(2*pi*5760*n2/fs);
s2=sin(2*pi*5759*n2/fs);    
subplot(4,1,3);
plot(n2,y2);
title('截取时域信号');

subplot(4,1,4);
plot(abs(fft(y2)));
title('截取频域信号');

n3=0:1:46499;               %补46500个零
y3=n3-n3;
figure(2);
subplot(4,1,1);
plot(n3,y3);
title('补零时域信号');

y4=[y2,y3];
s4=[s2,y3];
subplot(4,1,2);
plot(n1,y4);
title('截取后补零时域信号');

subplot(4,1,3);
plot(abs(fft(y4))); 
title('截取后补零频域信号');

subplot(4,1,4);
plot(abs(fft(s4))); 


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值