防混淆作用的低通滤波器

处理模拟信号时A/D转换器是必不可少的。在使用A/D转换器对模拟信号进行量化处理,即数字化时,如果信号中含有高于采用频率1/2以上的频率成分,那么如图1.3所示,就会产生完全不同的频率成分,从而发生量化误差。这种现象称为混淆效应

QQ截图20171103160500

QQ截图20171103160520


   (aliasing effect),防止产生这种现象的装置有防混淆滤波器(anti-aliasing effect),这种滤波器由LPF构成。
    图1.3(a)是以100kHz的间隔对95kHz的正弦波进行采样(A/D转换)时的情况。将各采样点连接起来,将会出现以100us为半周期的5kHz的正弦波,这个5kHz的波形就是基于混淆误差所产生的频率成分。
   把这种情况用频谱表示出来就是图1.3(b),如果用100kHz对95kHz的信号波进行采样,那么在以采样频率为中心,偏离距离为信号频率的两端就会产生频谱。另外,在以采样频率的整数倍为中心的两端也会出现频谱,不过在图1.3中没画出。
   为了防止混淆误差的产生,可以如图1.3(d)所示插入LPF使输入信号成分在采用频率1/2以上的频率范围低于系统分辨率。这个LPF就是放混淆滤波器。
   例如,用12位的A/D转换器进行100kHz的采样时,应该使用能够确保在50kHz处衰减量达到1/4096=-72dB的LPF。
   当然,如果已知信号中不含有50kHz以上的频率成分,就没有必要再使用LPF。
   近来,伴随着半导体技术的进步,A/D转换器已经能够比较方便地实现采样频率的高速化。如果信号的频率带宽相同,那么采样频率越高,滤波器的斜率越容易改善,就可以减轻滤波器的负担,这叫做超采样(over sampling)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较复杂的问题,我会尽力回答。首先,我们可以使用以下 MATLAB 代码生成余弦函数 cos(2t) 并进行高采样率和低采样率下的波形和频谱分析: ```MATLAB % 生成余弦函数 cos(2t) t = linspace(0, 10*pi, 10000); % 时间轴 y = cos(2*t); % 余弦函数 % 高采样率下的波形和频谱分析 figure; subplot(2,1,1); plot(t, y, 'b'); title('High Sampling Rate Waveform'); xlabel('Time (s)'); ylabel('Amplitude'); subplot(2,1,2); N = length(y); Y = fft(y); f = linspace(0, 1, N/2)*N/(t(end)-t(1)); plot(f, abs(Y(1:N/2)), 'r'); title('High Sampling Rate Spectrum'); xlabel('Frequency (Hz)'); ylabel('Magnitude'); % 低采样率下的波形和频谱分析 Fs = 100; % 采样率 Ts = 1/Fs; % 采样间隔 t_down = 0:Ts:t(end); % 降采样后的时间轴 y_down = cos(2*t_down); % 降采样后的余弦函数 figure; subplot(2,1,1); stem(t_down, y_down, 'b'); title('Low Sampling Rate Waveform'); xlabel('Time (s)'); ylabel('Amplitude'); subplot(2,1,2); N_down = length(y_down); Y_down = fft(y_down); f_down = linspace(0, 1, N_down/2)*N_down/(t_down(end)-t_down(1)); plot(f_down, abs(Y_down(1:N_down/2)), 'r'); title('Low Sampling Rate Spectrum'); xlabel('Frequency (Hz)'); ylabel('Magnitude'); ``` 上述代码中,我们首先生成了余弦函数 cos(2t),并分别对高采样率和低采样率下的波形和频谱进行了分析。可以看到,高采样率下的频谱图像中只有一个明显的峰,而低采样率下的频谱图像中出现了混淆误差,即出现了多个峰。这是由于在低采样率下,采样间隔变大,导致高频信号被混淆到低频区域。 为了解决混淆误差,我们可以设计一个抗混叠低通滤波器。一个简单的抗混叠低通滤波器可以使用 MATLAB 中的 fir1 函数进行设计。下面是一个示例代码: ```MATLAB % 设计抗混叠低通滤波器 Fc = 20; % 截止频率 b = fir1(100, Fc/(Fs/2)); % 使用抗混叠低通滤波器处理低采样率信号 y_filtered = filter(b, 1, y_down); % 绘制经过滤波器处理后的波形和频谱 figure; subplot(2,1,1); stem(t_down, y_filtered, 'b'); title('Filtered Low Sampling Rate Waveform'); xlabel('Time (s)'); ylabel('Amplitude'); subplot(2,1,2); N_filtered = length(y_filtered); Y_filtered = fft(y_filtered); f_filtered = linspace(0, 1, N_filtered/2)*N_filtered/(t_down(end)-t_down(1)); plot(f_filtered, abs(Y_filtered(1:N_filtered/2)), 'r'); title('Filtered Low Sampling Rate Spectrum'); xlabel('Frequency (Hz)'); ylabel('Magnitude'); ``` 上述代码中,我们使用 fir1 函数设计了一个低通滤波器,截止频率为 20Hz。然后,我们使用 filter 函数对低采样率信号进行滤波处理,得到经过滤波器处理后的波形和频谱。可以看到,经过滤波器处理后,混淆误差得到了较好的修复,频谱图像中只有一个明显的峰。同时,我们还可以计算截断误差和混叠误差,以分析滤波器的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值