|
信号的幅值调制实际上就是载波和调制信号幅值上的的点乘,频率调制则是在频率部分点乘。
给你一个幅值调制解调的代码:
% 调制信号的频率20Hz,载波信号频率100Hz,采样点2048;采样频率1024;
% ---信号调制---
clc;clear all;
N=2048;%采样点数
fs=1024;%采样频率
n=0:N-1;
t=n/fs;
f1=20;%调制波的频率为20Hz
A1=3;
f2=100;%载波频率为100Hz
xt=A1*sin(2*pi*f1*t);%调制信号
xtc=cos(2*pi*f2*t);%载波,调制和解调用
yf=fft(xt);
Smt=xt.*xtc;
yfm=fft(Smt);
f=n*fs/length(n);
% ---绘图---
figure(1);subplot(411);
plot(t,xt);
title('原始调制信号(调制波)');xlabel('t/s');ylabel('幅度');grid;
figure(1);subplot(412);
plot(f(1:N/2),abs(yf(1:N/2))*2/length(n));
title('原始调制信号的频谱');xlabel('f/hz');ylabel('幅度');grid;
figure(1);subplot(413);
plot(t,Smt);
title('已调信号Sm');xlabel('t/s');ylabel('幅度');
figure(1);subplot(414);
plot(f(1:N/2),abs(yfm(1:N/2))*2/length(n));
title('已调信号的频谱');xlabel('f/hz');ylabel('幅度');
% ---信号解调---
Mot=Smt.*xtc;%解调波
yfd=fft(Mot);
% ===设计滤波器===
fq=fs/2;%计算Nyquist频率
wp=[0.1/fq 30/fq];%通带的边界频率(0.2-40Hz),需归一化除以Nyquist频率
NF=320;%选用hanning窗,阻带衰减30db时的N=320;
b=fir1(NF,wp,hanning(NF+1));%设计FIR滤波器
% ===End===
xdft=filtfilt(b,1,Mot);%产生零相位输出,采用filtfilt对输入信号滤波
ydff=fft(xdft);%对调制信号进行傅立叶变换
% ---绘图---
figure(2);subplot(411);
plot(t,Mot);
title('滤波前的解调信号');xlabel('t/s');ylabel('幅度')
figure(2);subplot(412);
plot(f(1:N/2),abs(yfd(1:N/2))*2/length(n)); %绘制滤波之前的频谱
title('滤波前的解调信号频谱');xlabel('f/hz');ylabel('幅度');
figure(2);subplot(413);
plot(t,xdft); %绘制解调之后信号波形
title('滤波后的解调信号');xlabel('t/s');ylabel('幅度');
figure(2);subplot(414);
plot(f(1:N/2),abs(ydff(1:N/2))*2/length(n));
title('滤波后解调信号的频谱');xlabel('f/hz');ylabel('幅度');
|
|