ch5example9prog1.m

来自「利用matlab模拟的语音识别系统」· M 代码 · 共 20 行

M
20
字号
% ch5example9prog1.m
[wav,fs]=wavread('GDGvoice8000.wav');
t_end=1/fs *length(wav);  % 计算声音的时间长度
Fs=50000;                 % 仿真系统采样率
t=1/Fs:1/Fs:t_end;        % 仿真系统采样时间点
% 设计300Hz~3400Hz的带通预滤波器H(z) 
[fenzi,fenmu]=butter(3,[300 3400]/(fs/2));
% 对音频信号进行预滤波 
wav=filter(fenzi,fenmu,wav);
% 利用插值函数将音频信号的采样率提升为Fs=50KHz 
wav=interp1([1/fs:1/fs:t_end],wav,t,'spline');
wav_hilbert=imag(hilbert(wav)); % 音频信号的希尔伯特变换
fc=10000;                       % 载波频率Hz
SSB_OUT=wav.*cos(2*pi*fc*t)-wav_hilbert.*sin(2*pi*fc*t); % 单边带调制 
figure(1);                      % 观察调制前后频谱 
subplot(2,2,1); plot(wav(53550:53750));     axis([0 200 -0.3 0.3]);
%subplot(2,2,2); psd(wav, 10000, Fs);        axis([0 25000 -20 10]);
subplot(2,2,3); plot(SSB_OUT(53550:53750)); axis([0 200 -0.3 0.3]);
%subplot(2,2,4); psd(SSB_OUT, 10000, Fs);    axis([0 25000 -20 10]);
wavwrite(0.5*SSB_OUT,Fs,'SSB_OUT.wav');      % 将SSB调制输出存盘备用 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?