在数字信号处理中,我们所用的数字信号大多是由模拟信号采样得到的,我们在利用matlab plot函数将这些离散点连成曲线时,会发现采样率与采样点数会对波形有很大的影响,我们下面来分析一下具体影响,并分析一下对于不同信号,Fs与N取多少合适:
以下均为个人分析,评论区欢迎大家多多指正啦,共同学习
一、结论:
时域 | 频域 | |
Fs | 分辨率 | 分辨率 |
N | 采样时长 | 分辨率、幅度 |
二、分析
2.1数字频率与模拟频率的关系
重点在数字频率的物理意义:
(1).数字角频率与模拟角频率关系:
数字角频率(rad/s) = 模拟频率(rad/s) x 采样周期(s)
即
(2).数字频率与模拟频率关系:
由 w = 2*pi*f 及(1):
数字频率(Hz) = 模拟频率(Hz) x 采样周期(s)
=模拟频率(Hz)/采样频率(Hz)
=1/n
n:一个周期内的采样点数。
(3).重点:数字频率的物理意义
决定在一个模拟周期内的采样点数。数字频率越小,一个周期内的采样点越多。
2.2什么是FFT
(1).为什么要频谱分析:
对信号进行频谱分析是因为在频域角度看信号相当于站在不同于时域的另一个角度看问题,可能会更容易解决问题(对比sin和方波信号)。
方波就是由一系列不同频率的正弦信号之和组成的,从频谱轻易可以看出
以上代码如下:
clc;
clear;
close all;
N = 256*1000;%采样点数(频谱分辨率很高)
fs = 128;%采样频率
%% 时域波形
t=(0:N-1)/fs;
x = square(t);
figure,plot(t,x),axis([0 40 0 2]),grid on,xlabel('t/s'),ylabel('x'),title('方波波形');
plot_fft(x,fs,N),axis([0 10 0 1])
%% 频谱分析封装代码
%x:待处理信号
%fs:采样率
%N:采样点数
function plot_fft(x,fs,N)
y = fft(x);
y = abs(y);
f = (0:N-1)*fs/N;
figure,plot(f(1:N/2),y(1:N/2)*2/N),grid on,xlabel('f/Hz'),ylabel('|fft(x)|'),title('信号幅频特性'),grid on;
end
(2).连续信号怎么进行频谱分析:
可以参考《信号与线性系统分析》的知识,连续信号频谱分析最先是从傅里叶的一句话开始的:
任意周期信号都可以由一系列不同频率的正弦/虚指数信号相加得到!
a.连续周期信号频谱分析:基于傅里叶这句话我们可以把连续周期信号分解成一系列不同频率的正弦/虚指数信号之和,这就是傅里叶级数(FS)
b.连续非周期信号频谱分析:当然,大多数信号不一定是周期的,我们这时候利用FS对非周期信号分析的话,可以算出来,不同频率分量的模值无限小!这个时候FS(傅里叶级数)就不足以解决非周期信号的频谱分析了,但是事实上,虽然都是无限小,但相对大小仍有区别。我们可以通过数学的形式来放大这种无穷小的相互差异,我们引入频谱密度函数(傅里叶变换FT):
可以看到,我们乘了一个无穷的数,来放大了不同程度无穷小之间的相对大小。从物理意义层面理解:把非周期信号看出周期趋于无穷的周期信号来求FS。
事实上,连续周期信号也可以用傅里叶变换分析频谱。
总结:
频谱分析方法 | |
连续周期信号 | FS and FT |
连续非周期信号 | FT |
(3).序列怎么进行频谱分析?
事实上,电脑不能处理连续信号,只能对采样后的数字信号进行处理。所以,我们在处理连续信号时要经过采样量化等操作后才可以进行处理。
采样:
下面,是时域采样的代码:
clc;
clear;
close all;
N = 256;%采样点数
fs = 128;%采样频率
%% 时域波形
t=(0:N-1)/fs;
x = sin(2*pi*10*t);
subplot(211),plot(t,x),axis([0 1 -1 1]),xlabel('t/s'),ylabel('sin(2*pi*10*t)'),title('连续信号');
subplot(212),stem(x),axis([0 128 -1 1]),xlabel('n'),ylabel('sin(2*pi*10*n*TS)'),title('采样后');
采样后,对数字信号的处理,就是DSP即《数字信号处理》的课程内容了。
插一段,实际上,我们在传输信号时,信道(光纤/双绞线等等)包括我们的传输设备都会产生噪声,这些噪声就是随机信号的一种,我们在分析这样的复合信号时,就要用到《随机信号分析》的内容了,其实主要也还是两点:1、时域最重要的数字特征:自相关函数 2.频域最重要的数字特征:功率谱密度。这两个数字特征刚好还凑成了一对傅里叶变换对。《信号与系统》、《DSP》、《随机信号分析》这就是信息类本科生的三门信号课程的主要内容。第一门课告诉我们连续信号怎么从频域分析,第二门课告诉我们计算机怎么处理信号,第三门课告诉我们有噪声怎么办。信息类(通信工程/信息工程/电子信息工程/自动化.....)本科生除了信号个方向外,还有电子线路课程(数电、模电低频高频)这一个方向,这两个方向基本就是最重要的两个课程的学习。
下面,继续介绍:主要介绍非周期序列的频谱分析
a.DTFT:在采样完成后,我们还是对序列进行傅里叶变换,这点和傅里叶变换一样,但是它有个新名字:DTFT(离散时间傅里叶变换),
b.DFT:但是我们知道,非周期信号的频谱是连续的。前面说过,计算机并不能处理连续的信号,我们只能对频谱进行采样,这就是DFT(离散傅里叶变换),它的意义很简单:N点DFT:对|H(e^jw)|在频率区间[0,2*Pi]进行N点等间隔采样,离散的频谱我们就能分析啦!可以看到经过时域采样,和频域的DFT,我们的时域波形频谱都是一个个离散的序列,可以供计算机处理。但是,但是DFT的计算量是非常大的,它的计算次数是与N的平方成正比的,实现起来是很不现实的。
c.FFT:可以减少DFT计算次数的快速傅里叶变换(FFT)应运而生了。
到这里也就到了非周期序列频谱分析的最后方法:也就是FFT!
这里的历史,是很重要的,只有清楚知道以后,才能知道FFT的优势。
以上的内容还缺了拉氏变换和Z变换,他们其实都是傅里叶变换的推广,这里就不再说了。
2.3 Fs、N对时域采样的影响
下面进入正题:
2.3.1 时域分辨率:1/Fs,分辨率也就是两个相邻点的间隔时间,间隔时间越短,那么采样后的序列携带的信息越完整,plot的图像也看起来更像实际图像。
下图是对同一个信号进行相同采样点数N,不同采样频率采样后的plot图像
可见,采样率的影响决定了一个周期内的采样点数,也决定的序列所携带信息的多少(不过只要符合时域采样定理,都是把序列可以还原成原来的连续信号滴)
代码如下:
clc;
clear;
close all;
N = 256;%采样点数
fs1 = 32;%采样频率
fs2 = 128;%采样频率
%% 时域波形
t1=(0:N-1)/fs1;
x1 = sin(2*pi*5*t1);
subplot(211),plot(t1,x1),axis([0 0.5 -1 1]),xlabel('t/s'),ylabel('sin(2*pi*10*t)'),title('采样率:32Hz');
t2 = (0:N-1)/fs2;
x2 = sin(2*pi*5*t2);
subplot(212),plot(t2,x2),axis([0 0.5 -1 1]),xlabel('t/s'),ylabel('sin(2*pi*10*t)'),title('采样率:128Hz');
2.3.2采样点数N:决定了采样的总时间。
点(*)代表的是采了128个点,线(-)代表采了256个点,可以看到序列的总长度由采样点数决定。
代码:
clc;
clear;
close all;
N1 = 128;%采样点数
N2 = 256;
fs = 128;%采样频率
%% 时域波形
t1=(0:N1-1)/fs;
x1 = sin(2*pi*5*t1);
t2=(0:N2-1)/fs;
x2 = sin(2*pi*5*t2);
figure,plot(t1,x1,'*',t2,x2,'-'),xlabel('t/s'),ylabel('sin(2*pi*10*t)'),title('不同采样点数的影响');
legend('N1=128','N2=256')
2.3.3 N一般取2的次幂:128/256/512/2048....(之前玩那个微信小程序2048上头,这些数现在还记得很清楚)
2.3.4 fs的取值,符合时域采样定理:大于信号最高频率的两倍。
2.4 N、FS对频域的影响
下面就是重点了:
2.4.1频率分辨率:FS/N
这里的分析就用到了我们在最开始“2.1数字频率与模拟频率的关系”里的知识。
我们知道FFT是对|H(e^jw)|在频率区间[0,2*PI]进行等间隔采样得到的,也不难看出,这个频率区间是数字角频率。但是我们待处理的信号往往是知道他的模拟频率,所以我们把这个频率区间换成模拟频率区间,数字角频率2*pi对应的模拟频率 f=2*pi*fs/2*pi=fs,所以频率区间的对应的模拟频率范围为[0,fs],我们再对这个区间进行N等分,每个点的间隔就是Fs/N,也就是频率分辨率!
2.4.2 N决定频谱幅度
假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。而第一个点就是直流分量,它的模值就是直流分量的N倍。而每个点的相位呢,就是在该频率下的信号的相位。
over!完结!