matlab实验十ask,matlab实验十ASK调制与解调实验
时间: 2023-10-08 22:11:14 浏览: 95
基于MATLAB的ASK调制解调实验.pdf
MATLAB实验十ASK调制与解调实验
实验目的:
掌握ASK调制与解调原理,加深对MATLAB通信仿真的理解。
实验原理:
ASK调制
ASK调制全称为幅度调制(Amplitude Shift Keying),是一种通过改变载波的幅度来实现数字信号传输的调制方式。其调制信号可以表示为:
$$s(t)=\left\{
\begin{aligned}
& A_c \cos(2\pi f_c t), &\text{数字信号为0}\\
& (A_c+mA_c) \cos(2\pi f_c t), &\text{数字信号为1}
\end{aligned}
\right.$$
其中,$A_c$ 为载波幅度,$f_c$ 为载波频率,$m$ 为数字信号的调制指数,通常取值为1。
ASK解调
ASK解调的过程就是将调制信号还原为原始的数字信号。一般采用包络检波的方法。即将接收到的调制信号经过一个倍频电路,然后再经过一个包络检波电路,得到原始的数字信号。
实验步骤:
1. 生成二进制随机序列。
```matlab
N = 1000; % 生成N个随机序列
rand_seq = randi([0,1],1,N); % 生成二进制随机序列
```
2. 将二进制序列映射到ASK调制调制信号。
```matlab
Ac = 1; % 载波幅度
fc = 10; % 载波频率
Tb = 100e-6; % 一位二进制信号的时间长度
t = Tb/99:Tb/99: Tb*N; % 时间序列
carrier = Ac*cos(2*pi*fc*t); % 生成载波信号
m = rand_seq; % 二进制随机序列
message = zeros(1,length(t)); % 初始化调制信号
for i = 1:length(m)
if m(i) == 1
message((i-1)*100+1:i*100) = (Ac+Ac*m(i))*ones(1,100);
else
message((i-1)*100+1:i*100) = Ac*ones(1,100);
end
end
ask_signal = carrier.*message; % ASK调制信号
```
3. 加入高斯白噪声。
```matlab
SNR_dB = 10; % 信噪比
ask_signal = awgn(ask_signal, SNR_dB, 'measured');
```
4. 解调ASK信号,还原二进制数字信号。
```matlab
envelop = abs(hilbert(ask_signal)); % 包络检波
threshold = (Ac+Ac*m(1))/2; % 阈值
bin_seq = zeros(1,N); % 初始化还原的二进制数字信号
for i = 1:N
if envelop((i-1)*100+1) > threshold
bin_seq(i) = 1;
else
bin_seq(i) = 0;
end
end
```
5. 绘制ASK调制信号和解调后还原的二进制数字信号。
```matlab
subplot(2,1,1);
plot(t, ask_signal);
title('ASK Modulated Signal');
xlabel('Time (s)');
ylabel('Amplitude');
subplot(2,1,2);
stem(bin_seq);
axis([0 N -0.5 1.5]);
title('Demodulated Binary Sequence');
xlabel('Bit Index');
ylabel('Amplitude');
```
实验结果:
![ASK调制与解调实验结果](https://img-blog.csdn.net/20180508214212465?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hpbmdncHRfYXJjaGl2ZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)
阅读全文