1、利用matlab软件完成模拟信号的数字频带传输系统的仿真,要求:①画出数字频带传
时间: 2024-04-21 14:27:28 浏览: 10
输系统的信号流程图;②编写matlab程序,模拟信号的数字频带传输系统的各个部分,包括信号源、调制器、模拟带通滤波器、采样保持电路、A/D转换器、数字低通滤波器、解调器等;③通过仿真实验,分析数字频带传输系统的性能,如频谱带宽、误码率等。
下面是信号流程图和matlab程序的伪代码:
信号流程图:
信号源 -> 调制器 -> 模拟带通滤波器 -> 采样保持电路 -> A/D转换器 -> 数字低通滤波器 -> 解调器
matlab程序伪代码:
% 信号源
fs = 1000; % 采样率
t = 0:1/fs:1; % 时间序列
f1 = 50; % 信号频率1
f2 = 200; % 信号频率2
s1 = sin(2*pi*f1*t); % 信号1
s2 = sin(2*pi*f2*t); % 信号2
s = s1 + s2; % 信号
% 调制器
fc = 100; % 载波频率
m = 0.5; % 调制度
c = cos(2*pi*fc*t); % 载波
x = (1+m*s).*c; % 调制信号
% 模拟带通滤波器
fpass = [80 120]; % 通带频率范围
fstop = [70 130]; % 阻带频率范围
apass = 1; % 通带最大衰减
astop = 60; % 阻带最小衰减
fspecs = [fstop; fpass; fstop]; % 频率规格
mags = [0 1 0]; % 增益规格
devs = [10^(-astop/20) (10^(apass/20)-1)/(10^(apass/20)+1) 10^(-astop/20)]; % 通带和阻带的最大纹波
[n,fo,mo,w] = firpmord(fspec,mags,devs,fs); % 计算FIR滤波器阶数、频率响应、最大通带增益、权重因子
b = firpm(n,fo,mo,w); % 设计FIR滤波器
% 采样保持电路
fsamp = 200; % 采样频率
tsamp = 1/fsamp; % 采样周期
t_samp = 0:tsamp:1; % 采样时刻
x_samp = interp1(t,x,t_samp,'spline'); % 采样
% A/D转换器
bits = 8; % 分辨率
vmax = max(abs(x_samp)); % 量化范围
delta = vmax/2^(bits-1); % 量化步进
q = round(x_samp/delta)*delta; % 量化
% 数字低通滤波器
fcutoff = 100; % 截止频率
fsamp = 200; % 采样频率
n = 50; % 滤波器阶数
[b,a] = butter(n,fcutoff/(fsamp/2)); % 设计IIR滤波器
% 解调器
y = q.*cos(2*pi*fc*t_samp); % 解调信号
z = filter(b,a,y); % 解调后的信号
% 误码率
err = sum(s~=z)/length(s); % 误码率