matlab实现单音AM、SSB信号和语音AM、SSB信号调制代码
时间: 2023-11-17 12:04:50 浏览: 97
以下是单音AM、SSB信号和语音AM、SSB信号的调制代码,使用MATLAB实现。
单音AM信号调制:
```matlab
clear all;
close all;
% 设定参数
fs = 10000; % 采样率
fc = 1000; % 载波频率
fm = 100; % 调制信号频率
Am = 2; % 调制信号振幅
Ac = 5; % 载波振幅
% 生成调制信号
t = 0:1/fs:1; % 时间序列
m = Am*sin(2*pi*fm*t); % 调制信号
% 生成载波信号
c = Ac*sin(2*pi*fc*t); % 载波信号
% AM调制
sAM = (1+m./Am).*c;
% 画图
subplot(3,1,1)
plot(t,m);
xlabel('Time(s)');
ylabel('Amplitude');
title('Modulating signal');
subplot(3,1,2)
plot(t,c);
xlabel('Time(s)');
ylabel('Amplitude');
title('Carrier signal');
subplot(3,1,3)
plot(t,sAM);
xlabel('Time(s)');
ylabel('Amplitude');
title('AM signal');
```
SSB信号调制:
```matlab
clear all;
close all;
% 设定参数
fs = 10000; % 采样率
fc = 1000; % 载波频率
fm = 100; % 调制信号频率
Am = 2; % 调制信号振幅
Ac = 5; % 载波振幅
% 生成调制信号
t = 0:1/fs:1; % 时间序列
m = Am*sin(2*pi*fm*t); % 调制信号
% 生成载波信号
c = Ac*sin(2*pi*fc*t); % 载波信号
% SSB调制
sSSB = hilbert(m).*exp(i*2*pi*fc*t) + hilbert(-m).*exp(-i*2*pi*fc*t);
% 画图
subplot(3,1,1)
plot(t,m);
xlabel('Time(s)');
ylabel('Amplitude');
title('Modulating signal');
subplot(3,1,2)
plot(t,c);
xlabel('Time(s)');
ylabel('Amplitude');
title('Carrier signal');
subplot(3,1,3)
plot(t,real(sSSB));
xlabel('Time(s)');
ylabel('Amplitude');
title('SSB signal');
```
语音AM信号调制:
```matlab
clear all;
close all;
% 载入音频文件
[x,fs] = audioread('audio.wav');
% 设定参数
fc = 5000; % 载波频率
Am = max(abs(x)); % 调制信号振幅
Ac = 1; % 载波振幅
% AM调制
t = 0:1/fs:(length(x)-1)/fs; % 时间序列
c = Ac*sin(2*pi*fc*t); % 载波信号
sAM = (1+x./Am).*c;
% 画图
subplot(2,1,1)
plot(t,x);
xlabel('Time(s)');
ylabel('Amplitude');
title('Original signal');
subplot(2,1,2)
plot(t,sAM);
xlabel('Time(s)');
ylabel('Amplitude');
title('AM signal');
```
语音SSB信号调制:
```matlab
clear all;
close all;
% 载入音频文件
[x,fs] = audioread('audio.wav');
% 设定参数
fc = 5000; % 载波频率
Am = max(abs(x)); % 调制信号振幅
Ac = 1; % 载波振幅
% SSB调制
t = 0:1/fs:(length(x)-1)/fs; % 时间序列
c = Ac*sin(2*pi*fc*t); % 载波信号
sSSB = hilbert(x).*exp(i*2*pi*fc*t) + hilbert(-x).*exp(-i*2*pi*fc*t);
% 画图
subplot(2,1,1)
plot(t,x);
xlabel('Time(s)');
ylabel('Amplitude');
title('Original signal');
subplot(2,1,2)
plot(t,real(sSSB));
xlabel('Time(s)');
ylabel('Amplitude');
title('SSB signal');
```
阅读全文