Frequency zero-padding(通过频域插零对信号上采样)

在看mobiCom 2018 南京大学王炜老师团队的论文《VSkin: Sensing Touch Gestures on Surfaces of Mobile Devices Using Acoustic Signals》里面提到在调制发射声音信号时,使用的是频域补零将127个ZC序列增加至1024个点。

具体过程如下图所示:

ZC -> FFT ->频域补零上采样 -> ifft(逆傅里叶变换生成时域信号)->IQ(调制最终发射的信号)

Frequency zero-padding(通过频域插零对信号上采样)_第1张图片

上采样一般使用时域补零或频域补零,时域补零方法更为常用。

1.time-domain zero-padding(时域补零)

参考 : http://dspguru.com/dsp/howtos/how-to-interpolate-in-time-domain-by-zero-padding-in-frequency-domain/

一般是在原始时域信号的末尾补足够的0。

Frequency zero-padding(通过频域插零对信号上采样)_第2张图片

下图中Figure 1(a) 是长度为32个点的原始时域信号w(n),对w(n)做一个32-point的DFT,如果只看频域的幅值,将得到figure1(b)。

figure1(c)是在figure1(a),也就是w(n)后面补96个0得到的128个时域信号采样点,figure1(d)是对figure1(c)中的时域信号做128个点的DFT得到的频域幅值。

可以看出,通过对时域补零,可以提高频域的分辨率。figure1(b)中的一个点代表了figure1(d)中的4个点。

2.频域补零

这个就是论文中用到的方法,频域补零。论文中原话是:

在频域正值后面补零,负值前面补零。

其实就是频域部分的中间。

Frequency zero-padding(通过频域插零对信号上采样)_第3张图片

figure3(a)是8个点的频谱图的实部,figure3(b)是8个点的频谱图虚部。

补零后的实部和虚部分别是figure3(c)和figure3(d)所示。

3.论文里面调制信号是通过20.25kHz的频率将发射信号调制到17.297 kHz 到 23.25 kHz之间。

所需要的目标带宽差不多是6kHz左右,目标带宽计算如下:


Nzc是上采样前点的个数,论文中是127,Nzc'是上采样后,也就是频域补零后点的个数,论文中是1024,这里应该是因为点的个数是2的N次方时,计算FFT时速度较快,fs是采样率,论文中是48000Hz,B即为最终的带宽,也就是23.25kHz-17.297kHz。

最终调制信号的方法为:

注意:这里如果要生成不止1024个点,也就是很长时间的发射信号时,一定是先将ZC序列连续拼接到你想要的样本点个数之后再生成时间序列T(t),否则得到的信号频率是有问题的,目前我还不太清楚,应该是和三角函数的周期变化了有关。

你可能感兴趣的:(signal,processing)