本帖最后由 Windseeker 于 2014-9-28 18:34 编辑
close all
clear all
clc
%参数设置
fm=1000;%待调制信号的最大频率
fc=10000;%通信中一般取载波频率为fc>=5fm
fs=8*fc;%时域抽样定理,通信中一般取8fc~10fc
N=2048;%采样频率和数据点数
M=N;%做M点fft变化时的M
A=3;
n=0:N-1;%抽样点数
%信号生成
t=n/fs;%时间序列
mt=cos(2*pi*fm*t);%待调制信号
ct=cos(2*pi*fc*t);%载波信号
am=(A+mt).*ct;%AM调制信号
dsb=mt.*ct;%DSB调制信号
%信号解调,以DSB信号为例
sp=dsb.*ct;
wc=1.5*2*pi*fm/fs;%6dB截止数字角频率(对fs归一化)
b=fir1(16,wc/pi);%窗函数法设计FIR DF LP,N=16表示设计滤波器阶数,即滤波器的单位脉冲响应长度为N+1,wc/pi表示wc对pi归一化的数字频率,默认选用哈明窗,返回冲激响应
m2=filter(b,1,sp);%由于是FIR数字滤波,所以a=1;滤去高频分量2fc
m2=2*m2;%放大幅度
%频谱分析
f=[0:M-1]*fs/M;%频域的频率序列,一般取fft点数相等
MTF=fft(mt,M);%做fft变换
CTF=fft(ct,M);%做fft变换
AMF=fft(am,M);%做fft变换
DSBF=fft(dsb,M);%做fft变换
M2F=fft(m2,M);%做fft变换
figure(1);
subplot(5,1,1);
plot(t,mt);
xlabel('t');
ylabel('m(t)');
title('信号的时域波形');
grid on
subplot(5,1,2);
plot(t,ct);
xlabel('t');
ylabel('c(t)');
grid on
subplot(5,1,3);
plot(t,am);
xlabel('t');
ylabel('AM');
grid on
subplot(5,1,4);
plot(t,dsb);
xlabel('t');
ylabel('DSB(t)');
grid on
subplot(5,1,5);
plot(t,m2);
xlabel('t');
ylabel('m2(t)');
grid on
figure(2);
subplot(5,1,1);
plot(f,MTF);
xlabel('频率f/Hz');
ylabel('幅度abs(MTF)');
title('信号的幅度谱');
grid on
subplot(5,1,2);
plot(f,CTF);
xlabel('频率f/Hz');
ylabel('幅度abs(CTF)');
grid on
subplot(5,1,3);
plot(f,abs(AMF));
xlabel('频率f/Hz');
ylabel('幅度abs(ANF)');
grid on
subplot(5,1,4);
plot(f,abs(DSBF));
xlabel('频率f/Hz');
ylabel('幅度abs(DSBF)');
grid on
subplot(5,1,4);
plot(f,abs(M2F));
xlabel('频率f/Hz');
ylabel('幅度abs(M2F)');
grid on
大家有什么问题可以探讨一下,后续会连载,大家相互学习