【问题标题】:Conversion of passband signal to baseband equivalent model to decrease the sampling rate and the number of samples将通带信号转换为基带等效模型以降低采样率和采样数
【发布时间】:2017-08-06 01:39:21
【问题描述】:

我正在尝试使用匹配过滤来检测以 fc=75kHz 调制的特定信号。此外,检测是在一个 7 分钟的音频文件中实现的,采样率为 312.5kHz(这会导致非常大量的样本——大约 1.35 亿)。这使得处理和过滤过程花费太多时间并且不适用于实时应用程序。然后,我决定使用以下代码将信号转换为基带等效模型(以更改采样频率,从而减少采样数):

    audio = audioread(file);
    fc = 75000;
    t = (1:length(audio)).';
    y = audio*sqrt(2).*exp(-i*2*pi*fc*t);

但这不起作用,我对原始信号和转换为基带后的信号进行了傅里叶变换,以观察频域中的频谱。

如您所见,75kHz 信号的频谱不会移动到零点。

我的问题是:

  1. 我转换为基带的代码是否错误?如果可以,如何将此信号转换为基带信号?
  2. 有没有其他方法可以在不丢失 75kHz 信号信息的情况下显着减少该文件的样本数(我尝试使用采样率 = 150kHz 进行下采样,但仍然太多样本)?

【问题讨论】:

  • 我认为您需要将t = (1:length(audio)).'; 替换为t = (1:length(audio)).'/312500; 以正确定义时间,同时考虑原始采样率。此外,您可能需要在乘以虚指数后应用低通滤波器。也许转换前的带通滤波器也会有所帮助
  • @LuisMendo,样本数量和时间尺度之间的一个误解搞砸了很多,感谢您向我展示我的错误,它确实帮助我解决了很大一部分问题

标签: matlab signals signal-processing sampling


【解决方案1】:

正如 cmets 中提到的@Luis Mendo,要将频谱从 75kHz 移动到 0,采样率为 312.5kHz,您需要将时间变量除以采样率:

fs = 312500;
t = (1:length(audio)).'/fs;
y = audio*sqrt(2).*exp(-i*2*pi*fc*t);

这将改变整个输入频谱(包括 312.5-75=237.5Hz 左右的图像,33kHz 和 66kHz 左右的其他导频以及 0Hz 附近的低通分量)。为了摆脱这些,您应该对您的y 信号进行低通滤波。您可能可以调整滤波器过渡带,但查看您的图表,您似乎需要在 75kHz 中心频率的大约 4-5kHz 范围内包含信号,并排除 66kHz 左右的下一个干扰(远离 75kHz 的 9kHz中心频率)。基于Kaiser Window Lowpass Filter Design sample from Matlab documentation,您可以设计这样的过滤器:

fcuts = [4000 9000];
mags = [1 0];
devs = [0.05 0.01];

[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fs);
hh = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');

filtered_signal = filter(hh, 1, y);

然后您应该能够将信号抽取大约 24 倍(给出 ~13kHz 的最终采样率以适应 8000Hz 的近似信号带宽和过渡带):

decimation_factor = 24;
baseband = filtered_signal(1:decimation_factor:end);

这个过程虽然很容易可视化,但也相当浪费,因为您最终会丢弃大部分过滤后的输出。然后,一个有效的实现将使用a polyphase FIR decimator,利用与上面设计的相同的滤波器系数:

firdecim = dsp.FIRDecimator ('DecimationFactor',decimation_factor, 'Numerator', hh);
baseband = firdecim(y); 

【讨论】:

  • 感谢您的指导,它确实帮助我更深入地理解了这个问题。根据您的回答,我有一个问题:-您如何估计最终的采样率约为 9191 Hz?是不是当我们把75kHz信号移到原点时,中心频率=0,所以我们可以选择不受奈奎斯特限制的采样率。
  • 我在考虑 9000Hz 抑制频率,但实际上它的宽度必须足够信号带宽 (~8kHz) 加上过渡带 (9kHz - 4kHz)。所以它真的应该是13kHz。然后,我选择了一个整数抽取因子,它至少给了我很多剩余带宽(312.5kHz / 24 ~ 13.021kHz)。
猜你喜欢
  • 1970-01-01
  • 2010-09-11
  • 1970-01-01
  • 2019-04-20
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
相关资源
最近更新 更多