采样频率决定一周期内采样点的个数吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了采样频率决定一周期内采样点的个数吗相关的知识,希望对你有一定的参考价值。

采样频率是指: 对模拟信号进行A/D采样时,每秒钟对信号采样的点数。 比如,对1秒时间段上的模拟连续信号采样,采样频率为1M,就是在时间轴上每隔1us采样一个点,那么就是一共采样1M个点。 采样点数就是上面所说的,根据采样时间和采样频率就能确定采样点数。 信号频率和采样频率之间需要满足奈奎斯特采样定理。 即采样频率至少是信号频率的2倍,才可能从采样后的数字信号,恢复为原来的模拟信号而保证信号原始信息不丢失。 参考技术A 一.调用方法

X=FFT(x);
X=FFT(x,N);
x=IFFT(X);
x=IFFT(X,N)

用MATLAB进行谱分析时注意:

(1)函数FFT返回值的数据结构具有对称性。

例:
N=8;
n=0:N-1;
xn=[4 3 2 6 7 8 9 0];
Xk=fft(xn)


Xk =
39.0000 -10.7782 + 6.2929i 0 - 5.0000i 4.7782 - 7.7071i 5.0000 4.7782 + 7.7071i 0 + 5.0000i -10.7782 - 6.2929i

Xk与xn的维数相同,共有8个元素。Xk的第一个数对应于直流分量,即频率值为0。

(2)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。在IFFT时已经做了处理。要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。

二.FFT应用举例

例1:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。采样频率fs=100Hz,分别绘制N=128、1024点幅频图。

clf;
fs=100;N=128; %采样频率和数据点数
n=0:N-1;t=n/fs; %时间序列
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号
y=fft(x,N); %对信号进行快速Fourier变换
mag=abs(y); %求得Fourier变换后的振幅
f=n*fs/N; %频率序列
subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=128');grid on;
subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=128');grid on;
%对信号采样数据为1024点的处理
fs=100;N=1024;n=0:N-1;t=n/fs;
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号
y=fft(x,N); %对信号进行快速Fourier变换
mag=abs(y); %求取Fourier变换的振幅
f=n*fs/N;
subplot(2,2,3),plot(f,mag); %绘出随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=1024');grid on;
subplot(2,2,4)
plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=1024');grid on;本回答被提问者采纳
参考技术B 前述章节介绍了信号在不同域中的表达方式,其中也介绍了常用的FFT的属性,但是一个完整的FFT计算系统不仅有FFT计算单元,还得有源数据的采集单元,本次课堂就会介绍这部分相关内容。

采样

FFT计算系统中,需要大量准确的数据源做支撑,下图是一个典型的FFT计算系统,其中有ADC采样-FFT处理-结果显示部分。

采样的过程就是把传感器等输出的连续模拟量转化为数字系统内的离散点,即采样点。由于FFT计算的需求,ADC采样部分必要要有足够高的采样速度及合理的精度。原则上说,一般采样速度最好能到100kHz,采样精度至少有12位。如下图的一个曲线,100kHz是指1s内能够连续采集100k个点,每个点的幅值的精度是:系统支持采样的最大幅值 / 2^12。

举个例子,如果要测量某个对象的温度变化,如下左图设置测试系统,信号输入源为一个温度计。

假如说实际的温度变化非常剧烈,实际温度如上右图所示,如果采样的速度远低于温度变化的速度,那么采集到的数据就如右图最下方所示,得到了一个完全没有变化的温度曲线。显然,这是错误的采集结果。

混叠

采样过程中不仅要满足上述速度和精度的要求,同时还要保证信号采样的准确性。FFT之所以需要如此多的采样数据是为了避免一种现象,即混叠。简单来说,混叠是采样信号的过程混入了原信号没有的信号成分,造成了采集信号的不准确性。混叠问题通常很容易被忽略。

再举个采集的例子,此次是在频域内分析,假设真实信号的频率为fin,采样的频率为fs,fin比fs略大。按照混叠的规律来说,采样时会产生多余的信号成分,频率为(fin-fs),如下图所示。这就是采样频率设置的问题导致了混叠现象的产生。

那么是否有方法避免上述问题呢,答案是肯定的。把采样频率fs设置为信号输入最大频率fmax的两倍以上,最后得到的结果如下图所示,fs-fmax就落在了我们信号观察的范围之外了,这样就可以避免混叠问题了。如果在采样之后再添加一个低通滤波器,那么混叠的信号就可以被过滤掉。

上述的最小采样频率的要求被称为奈奎斯特(Nyquist)定理。在这里,的确满足了信号的准确性不被混叠(仅仅为频率准确性),但是如果采样频率仅仅为最大有效频率的两倍,那么针对这个最大频率的信号,其每个周期的信号只能有两个采样点,如下图所示。如果提高采样频率,那么每个周期相应的采样点数就会增加,对信号的还原就会越真实,这是在保证信号频率准确之后,另一个需要采集者需要考虑的问题点。

综上所述,采样时,必须满足奈奎斯特定理以避免混叠问题,这是其一;其二是在此基础上,在允许的情况下,尽可能的提高采样频率,能够最大程度上保证采集信号信息的完整性。

以上是关于采样频率决定一周期内采样点的个数吗的主要内容,如果未能解决你的问题,请参考以下文章

STM32 ADC采样频率的理解

STM32 ADC采样频率的理解

matlab仿真中在哪里设置采样频率?设置采样频率的目的是啥?

MATLAB中的FFT的采样频率和采样点怎样确定

数字信号处理基本序列 ( 正弦序列 | 数字角频率 ω | 模拟角频率 Ω | 数字频率 f | 模拟频率 f0 | 采样频率 Fs | 采样周期 T )

MATLAB中的FFT的采样频率和采样点怎样确定?