重叠失真(alisasing)或者混叠失真是在信号调制的时候,载波频率小于原信号最高频率导致的。下面小虎就带大家用MATLAB仿真理解一下。
仿真结果
原始信号如下:
调质频率分别是300Hz和50Hz
下面一组图中,从左到右、上到下依次是原始信号1、调幅波1,2、解调波1,2的时域图像。
- 可以看到,由于调制频率50Hz比原始信号的频率100Hz小,所以调幅波出现波峰混乱的情况。
- 解调后,由于重叠失真,导致解调后的波形与原始信号极大偏离。
- 为了避免重叠失真,参考信号采样中的采样定理,载波频率应该比原始信号的频率大。实际使用中,载波频率至少数倍甚至数十倍大于原始信号的最高频率。
代码分析
参数设置
采样频率是44100,采样间隔1/44100。调质波为:
Fs=44100;
dt=1.0/Fs;
T=1; N=T/dt;
t=[0:N-1]/N;
x1=sin(2*pi*100*t);
调制
% fz=300Hz
subplot(2,2,1)
x2=ammod(x1,300,Fs,0);
plot(t,x2);
axis([0,0.2,-1.2,1.2]);
% fz=50Hz
subplot(2,2,2)
x4=ammod(x1,50,Fs,0);
plot(t,x4);
axis([0,0.2,-1.2,1.2]);
解调
% fz=300Hz
subplot(2,2,3)
x3=amdemod(x2,300,Fs,0);
plot(t,x3);
axis([0,0.2,-1.2,1.2]);
% fz=50Hz
subplot(2,2,4)
x5=amdemod(x4,50,Fs,0);
plot(t,x5);
axis([0,0.2,-1.2,1.2]);
完整代码
Fs=44100;
dt=1.0/Fs;
T=1; N=T/dt;
t=[0:N-1]/N;
x1=sin(2*pi*100*t);
% fz=300Hz
subplot(2,2,1)
x2=ammod(x1,300,Fs,0);
plot(t,x2);
axis([0,0.2,-1.2,1.2]);
subplot(2,2,3)
x3=amdemod(x2,300,Fs,0);
plot(t,x3);
axis([0,0.2,-1.2,1.2]);
% fz=50Hz
subplot(2,2,2)
x4=ammod(x1,50,Fs,0);
plot(t,x4);
axis([0,0.2,-1.2,1.2]);
subplot(2,2,4)
x5=amdemod(x4,50,Fs,0);
plot(t,x5);
axis([0,0.2,-1.2,1.2]);
参考资料
[1] 张春华等,工程测试技术基础(第二版),华中科技大学出版社
[2] 何岭松等,中国大学MOOC——工程测试技术基础
更多
信号处理趣学D0——系列专栏的说明与目录
信号处理趣学D1——相关函数的意义&利用自相关函数消除噪声
信号处理趣学D2——利用自相关函数对分析音频的周期变化
信号处理趣学D3——工程测试技术模拟信号采样
信号处理趣学D4——利用谐波叠加对周期方波进行逼近
信号处理趣学D5——利用仿真教你理解周期混叠和采样定理
信号处理趣学D6——利用MATLAB画出非周期函数的频谱图
信号处理趣学D7——自功率谱的物理意义&通过自功率谱分析原信号的简谐分量
信号处理趣学D8——关于拉氏变换和频谱图的那些事儿
信号处理趣学D9——教你仿真理解信号的调制和解调
信号处理趣学D10——简单理解过调失真(附例子和代码)
信号处理趣学D11——怎么避免信号调质过程的时候失真?