基于MATLAB的语音信号FSK调制画图的源代码
时间: 2023-09-09 09:12:34 浏览: 172
基于MATLAB对FSK信号调制与解调的仿真设计.doc
以下是基于MATLAB的语音信号FSK调制画图的源代码:
```matlab
% 读取语音文件
[y, Fs] = audioread('speech.wav');
% FSK调制参数设置
f1 = 1000; % 第一个频率
f2 = 2000; % 第二个频率
Tb = 0.05; % 符号时间
Fsymb = 1/Tb; % 符号速率
Fc = 10000; % 载波频率
Fs = 8*Fc; % 采样率
N = length(y); % 信号长度
t = (0:N-1)/Fs; % 时间序列
% 将语音信号转换为二进制信号
b = dec2bin(typecast(int16(y), 'uint16'), 16);
b = b(:) - '0';
% FSK调制
s1 = sin(2*pi*f1*t);
s2 = sin(2*pi*f2*t);
s = zeros(1, N);
for n = 1:length(b)
if b(n) == 0
s((n-1)*Fsymb+1:n*Fsymb) = s1((n-1)*Fsymb+1:n*Fsymb);
else
s((n-1)*Fsymb+1:n*Fsymb) = s2((n-1)*Fsymb+1:n*Fsymb);
end
end
x = s.*sin(2*pi*Fc*t);
% 画图
subplot(211);
plot(t, y);
xlabel('时间 (s)');
ylabel('幅度');
title('语音信号');
subplot(212);
plot(t, x);
xlabel('时间 (s)');
ylabel('幅度');
title('FSK调制信号');
```
这段代码会读取名为 `speech.wav` 的语音文件,将其转换为二进制信号,并根据设定的FSK调制参数进行调制,最后画出语音信号和FSK调制信号的波形图。注意,这只是一个简单的示例代码,实际应用中需要根据具体的需求进行修改和优化。
阅读全文