用matlab画出“ASK基带输入”、“ASK调制输出”和“ASK解调输出”的波形源代码
时间: 2023-09-01 09:10:28 浏览: 51
下面是MATLAB代码:
```
% 定义基带信号的时间轴
t = 0:0.01:1;
% 定义基带信号
m = [zeros(1,length(t)/2) ones(1,length(t)/2)];
% 绘制ASK基带输入波形
subplot(3,1,1);
plot(t,m);
title('ASK基带输入');
xlabel('时间');
ylabel('幅度');
% 定义载波信号频率和振幅
fc = 5;
Ac = 2;
% ASK调制
s = (Ac+m).*cos(2*pi*fc*t);
% 绘制ASK调制输出波形
subplot(3,1,2);
plot(t,s);
title('ASK调制输出');
xlabel('时间');
ylabel('幅度');
% ASK解调
dem = s.*cos(2*pi*fc*t);
% 低通滤波
[b,a] = butter(6, 2*fc*0.01);
dem = filter(b,a,dem);
% 绘制ASK解调输出波形
subplot(3,1,3);
plot(t,dem);
title('ASK解调输出');
xlabel('时间');
ylabel('幅度');
```
其中,基带信号为矩形波,载波信号为正弦波,调制方式为幅度调制(ASK)。在代码中通过cos函数实现了ASK调制和解调。在解调过程中,使用了一个6阶Butterworth低通滤波器对解调信号进行滤波,去除高频成分。
相关问题
用matlab写出ASK解调输出波形的源代码
以下是一个简单的 MATLAB 代码示例,用于生成一个ASK解调输出波形:
```matlab
% 设置初始参数
fc = 1000; % 载波频率
fs = 10000; % 采样频率
T = 1/fs; % 采样间隔
t = 0:T:1; % 时间轴
m = [1 0 1 1 0 1 0 0]; % 调制信号
Ac = 2; % 载波幅度
Am = 1; % 调制信号幅度
% 产生ASK调制信号
c = Ac*sin(2*pi*fc*t); % 载波信号
s = m.*c; % ASK调制信号
% 进行ASK解调
r = s.*c; % 解调信号
[b,a] = butter(6,fc*2/fs); % 设计低通滤波器
y = filter(b,a,r); % 低通滤波
% 绘制输出波形
subplot(3,1,1)
plot(t,m,'LineWidth',2)
xlabel('时间 (s)')
ylabel('幅度')
title('调制信号')
subplot(3,1,2)
plot(t,s,'LineWidth',2)
xlabel('时间 (s)')
ylabel('幅度')
title('ASK调制信号')
subplot(3,1,3)
plot(t,y,'LineWidth',2)
xlabel('时间 (s)')
ylabel('幅度')
title('ASK解调输出波形')
```
上述代码首先生成了一个1秒钟的时间轴,然后定义了一个基于二进制序列的调制信号。接下来,它使用正弦波载波信号对调制信号进行ASK调制,并产生解调信号。最后,代码使用一个Butterworth低通滤波器对解调信号进行滤波,并绘制输出波形。
用matlab画出ASK解调输出的波形所需要的代码
以下是使用MATLAB绘制ASK解调输出波形的示例代码:
```matlab
% 设置参数
fc = 10; % 载波频率
fs = 100; % 采样频率
t = 0:1/fs:1; % 时间序列
A = 1; % 载波幅度
D = [1, 0, 1, 1, 0]; % 数字信号
% 生成ASK调制信号
x = zeros(size(t));
for i = 1:length(D)
if D(i) == 1
x((i-1)*fs+1:i*fs) = A*cos(2*pi*fc*t((i-1)*fs+1:i*fs));
end
end
% 绘制ASK调制信号图形
subplot(3,1,1);
plot(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
title('ASK Modulated Signal');
% 生成载波信号
c = A*cos(2*pi*fc*t);
% 绘制载波信号图形
subplot(3,1,2);
plot(t, c);
xlabel('Time (s)');
ylabel('Amplitude');
title('Carrier Signal');
% 进行ASK解调
r = x.*c;
b = zeros(1,length(D));
for i = 1:length(D)
b(i) = sum(r((i-1)*fs+1:i*fs))/fs;
end
% 绘制ASK解调输出信号图形
subplot(3,1,3);
plot(t, r);
hold on;
stem(t(1:length(D)), b, 'r');
xlabel('Time (s)');
ylabel('Amplitude');
title('ASK Demodulated Signal and Output');
legend('Demodulated Signal', 'Output');
```
该代码会生成一个包含三个子图的图形窗口,分别为ASK调制信号、载波信号和ASK解调输出信号。其中,解调输出信号由蓝色曲线和红色竖线组成,蓝色曲线是解调后的信号,红色竖线是对应的输出。