我其实早已经学完了数字信号处理,只不过今天一个简单的其他学校的代码问题遇到了挫折,于是深夜想赶紧把这个问题整理下来,虽然基础,但是怕忘记所以为了以后再次忘记进行查验:
信号频率
这个就是信号重复的频率:y=sin(2*f0*pi*t);这个f0就是信号的物理频率(关于频率、角频率一定要明白关系)
采样频率
为什么要采样?我们都是对于信号进行离散化处理,采样的最大意义就是在于降低内存。因为我们根本不需要十分精密的数据就可以得出信号。但是要满足采样定理fs>2f0,否则由于离散化处理造成频谱周期化搬移——fs小了就会混叠。fs:1s内对于这个信号均匀连续取多少个点。
频谱分辨率
这个是最难理解的概念,你可能在某一次明白了但是很容易忘记,你最好再学习一下。我这里只是简单说一下。你可以理解成对于一个连续信号的频谱你就只可以取有限的数目缝隙来看该缝隙处的频谱。所以如果我们缝隙取得足够多我们就可以把这个频谱直接看完了。所以频谱分辨率越高越好。可是频率分辨率和什么有关系呢我们假设我们对于T=5s的数据进行采样。fs=100hz,所以我们一共取了N=100*5=500个点,所以我们分辨率为fs/N(这个最好有一定的基础),我们可以看出我们从表面来看影响我们的分辨率有两个因素:N点的数目 和 fs的大小。fs大小直接设定了。所以我们可以改变N点的大小。N=T*fs所以我们可以增加我们数据的时间,但是这个时候如果我们的时间确定了,T=5s就这么长的数据,怎么办呢?我们可以补零 举个例子 data = [1 2 3 4 5],此时N=5.你可以把他变成N=10->data=[1 2 3 4 5 0 0 0 0 0];如此便增加了"频谱分辨率",然后我问过了老师,老师说:“补零不能提高分辨率,时域补零可以看到在频谱上起到了插值的作用。”
换句话说,补零可以说增加了我们可以看到更多的频率,但是我们仍然区分不开我们两个信号。
其实补零也有缺点:就是增加了误差,你相当于改变了信号的结构。一般我们就是补零来使其变成2的幂次。只是进行了插值。