目录
1 仿真环境
2 AM信号调制
3 同步解调
4 FFT验证
1 仿真环境
采用MATLAB,版本应该无所谓,创建好.m文件后,复制以下代码。
%% 生成原始信号 fs = 1024; % 采样率 t = 0:1/fs:1; % 时间向量 f = 10; % 原始信号频率 m = sin(2*pi*f*t); % 原始信号 %% 生成载波信号 fc = 100; % 载波频率 c = cos(2*pi*fc*t); % 载波信号 c1= cos(2*pi*fc*t+0.25*pi); % 带相位的载波信号 %% AM调制 beta = 0.5; % 调制指数 s = (1 + beta*m).*c; % 调制信号 %% 解调 y = s.*c; % 相乘 y1 = s.*c1; % 相乘(含有相位差) [b,a] = butter(6,2*f/fs,'low'); % 设计低通滤波器 z = filter(b,a,y); % 低通滤波 z1= filter(b,a,y1); % 低通滤波 %% FFT(调制与解调) nfft = 1024; % FFT点数 f = (0:nfft/2-1)/nfft*fs; % 频率向量 M = abs(fft(m,nfft)); % 原始信号的频谱 S = abs(fft(s,nfft)); % 调制信号的频谱 Y = abs(fft(y,nfft)); % 同步解调信号的频谱 Z = abs(fft(z,nfft)); % 低通后的解调信号的频谱 Y1 = abs(fft(y1,nfft)); % 含相位差解调信号的频谱 Z1 = abs(fft(z1,nfft)); % 含相位差低通后的解调信号的频谱 %% 绘图 subplot(3,1,1); plot(t,m); title('原始信号'); subplot(3,1,2); plot(t,c); title('载波信号'); subplot(3,1,3); plot(t,s); title('调制信号'); figure; subplot(2,2,1); plot(t,y); title('同步载波相乘信号'); subplot(2,2,2); stairs(z); title('低通后的解调信号'); subplot(2,2,3); plot(t,y1); title('含相位差载波相乘信号'); subplot(2,2,4); stairs(z1); title('低通后的解调信号'); figure; subplot(2,2,1); plot(f,M(1:nfft/2)); title('原始信号频谱'); subplot(2,2,2); plot(f,S(1:nfft/2)); title('调制信号频谱'); subplot(2,2,3); plot(f,Y(1:nfft/2)); title('同步解调信号频谱'); subplot(2,2,4); plot(f,Z(1:nfft/2)); title('低通后的解调信号频谱'); figure; subplot(2,2,1); plot(f,M(1:nfft/2)); title('原始信号频谱'); subplot(2,2,2); plot(f,S(1:nfft/2)); title('调制信号频谱'); subplot(2,2,3); plot(f,Y1(1:nfft/2)); title('含相位差解调信号频谱'); subplot(2,2,4); plot(f,Z1(1:nfft/2)); title('含相位差低通后的解调信号频谱');
2 AM信号调制
其中采样率为1024,时间向量即进行归一化处理,实现0-1均匀分布,可以看到调制时,beta=0.5,s = (1 + beta*m).*c; 这就是前文提到的AM表达式之一。
3 同步解调
同步解调分为无相位差的载波解调与有相位差的载波解调,如图所示,可以看到同步相乘与有相位差的相乘,最后经过低通后仅对解调后信号的幅度、均值有影响,与前文的理论计算保持一致。
4 FFT验证
如图为AM调制与同步相乘的FFT结果,可以看到原始信号频谱在10位置,这个10并非说原始信号f=10,所以就在10。其实对于fs=1024hz采样率而言,采样点数fft为1024,所以频谱分辨率就是1024fs/1024fft=1hz,而fft为对称频谱,实际显示就是0~512点,即采样率最低为待采信号的一倍,故实际频谱最多显示为0~512Hz。调制后的信号,载波在100,上下边频分别为110、90,可以看到AM频谱就是标准的三条线。(大家可以试一下把fs采样率从1024改到1000再运行,可以看到频谱泄露)。
同步解调后,频谱为基带信号+高频谐波,实际上相乘就是对频谱的上下搬移,即100的频谱与100相乘,得到0与200,即对应同步解调信号的频谱,经过低通滤波后,可以看到只剩下了基带信号,但是似乎有一点频谱泄露,是因为滤波器性能导致。
此图和上图基本一致不再进行阐述。值得注意的是,后续大家如果通过单片机对AM信号进行ADC采样与FFT分析,一定要保持一个原则即频谱分辨率小于AM信号的基带信号,即若基带信号为1KHz,频谱分辨率最起码为1KHz、500Hz、250Hz,使得1KHz可以恰好落在分辨率点,不会出现频谱泄露,计算不会出现偏差。
5 总结
总体而言,本仿真的所有效果和上篇文章的理论基本一致,后续将对AM实战进行分析。