MATLAB 三路频分复用通信系统

一、详细设计步骤

(1)系统整体框图

MATLAB 三路频分复用通信系统_第1张图片

(2)语音信号采样

MATLAB 三路频分复用通信系统_第2张图片

原理图 1-1
语音信号的采样即为信号的抽样过程,是把连续时间模拟信号转换成离散时间连续幅度的抽样信号。 其原理如图所示1-1所示,其公式为:
x_a (t)^= P_T (t)*x_a (t)
本系统使用MATLAB自带的函数audiorecorder(),recordlocking()和getaud iodata()获得原始语音信号,采样频率为
fs = 44100Hz

(3)语音信号的调制

语音信号的调制即为频分复用的频谱搬移过程,该过程的关键是对各路语音信号载波频率的选取。
其定义为: (3)
对应已调信号的幅度谱为:
MATLAB 三路频分复用通信系统_第3张图片

原理图1-2
由原理图1-2可知,已调信号的带宽是调制信号带宽f_H的两倍,即调制后的带宽为:
B = 2f_H
为了使各个信号不会相互干扰,各个已调信号的间隔要大于B;设各载波的频率间隔为f_g,由于f_H = 3.4KHz,所以
f_g≥B=2f_H=2×3.4KHz=6.8KHz
另外,在选取载波频率时,还要考虑抽样定理,即载波频率不能大于1/2*fs,结合(1)式可知:
fc ≤22050Hz
综合上述考虑,取fc1 = 5K,fc2 = 11.8K,fc3 = 18.6K。 将三个原始语音信号调制后相加得到复用信号。

(4)带通滤波器的设计

为了解调出原始语音信号,需要在接收端设计三个带通滤波器,为了达到较好的效果,将采用哈明窗设计FIR带通滤波器。本系统采用滤出上边频的方式,因fc1 = 5K,fc2 = 11.8K,fc3 = 18.6K,取第一路[fp1,fp2,fs1,fs2] = [5000,8400,4950,8450];第二路[fp1,fp2,fs1,fs2] = [11800,15200,11750,15
250];第三路[fp1,fp2,fs1,fs2] = [18600,22000,18550,22050];其中,fp1为通带下限边界频率,fp2为通带上限边界频率,fs1为阻带下限截止频率,fs2为阻带上限截止频率。
将复用信号分别通过三个带通滤波器得到三路已调信号。

(5)语音信号的解调

语音信号的解调过程分为两个过程,分别为与载波相乘和低通滤波。
①与载波相乘
由于带通滤波器,本系统滤出的是上边频,因此其公式为:

U = 1/2 AU_Ωm U_cm [cos⁡(w_c+Ω)t+cos⁡(w_c-Ω)t]*cos⁡(w_c )
= 1/2 AU_Ωm U_cm [cos⁡(2w_c+Ω)t+cosΩt]
式中包含cosΩt,说明将已调信号与载波信号相乘可以得到高频2w_c+Ω和原始信号频率叠加的波形。 ②低通滤波的设计 为了得到原始信号,将解调后的信号送至低通滤波器,滤除高频成分即可得到原始信号。同样为了达到较好的效果,将采用哈明窗设计FIR带通滤波器;因语音信号的频带范围小于3.4K,将低通滤波器的截止频率设置为3.4K。

(6)语音信号的还原

经过第(5)步得到的信号即为采样信号,要听到原始信号的复原还需将采样信号转换成模拟信号;本系统使用MATLAB自带的audioplayer()函数直接还原出模拟信号,最后使用play()函数将信号播出。

二、程序代码

(1)获取语音信号函数

%------------------------------------------------------------------------
% File name:           getaudio
% Last modified Date:  2021年6月7日10点59分
% Author:              Jasmine
% Descriptions:        函数getaudio(),获取语音信号函数
% Parameter:          输入参数fresam为采样频率,sto为存储方式,met为1时为
%                      一通道是单声道,为2时为两通道是立体声
%------------------------------------------------------------------------

function str = getaudio(fresam,sto,met)
    disp('按下任意键开始录音:');
    pause
    audio = audiorecorder(fresam,sto,met);
    disp('开始录音!');
    %录音时间为10s
    recordblocking(audio, 10);
    disp('录音结束!');
    % 获取录音数据
    str = getaudiodata(audio);
end

(2)设计带通滤波器函数

%------------------------------------------------------------------------
% File name:           bandpass
% Last modified Date:  2021年6月7日10点59分
% Author:              Jasmine
% Descriptions:        函数bandpass(),使用哈明窗设计带通滤波器
% Parameter:          输入参数分别为:fp1通带下限边界频率,fp2通带上限边界频率
%                      fs1阻带下限截止频率,fs2阻带上限截止频率;输出参数为a即所设计的FIR滤波器
%------------------------------------------------------------------------

function a = bandpass(fp1,fp2,fs1,fs2)
    fs = 44100;
    %将各频率转换成相应的数字滤波器频率
    wp1 = 2*pi*fp1/fs;wp2 = 2*pi*fp2/fs;
    ws1 = 2*pi*fs1/fs;ws2 = 2*pi*fs2/fs;
    %获取过渡带宽度
    bt = wp1-ws1;
    %求出窗函数窗宽
    N = ceil(6.6*pi/bt);M = N-1;
    %获得哈明窗
    wind = hamming(N);wind = wind';
    %求出截止频率
    wn = [(wp1+ws1)/2/pi,(wp2+ws2)/2/pi];
    %设计FIR滤波器
    a = fir1(M,wn,wind);
end

(3)系统代码

见链接:https://download.csdn.net/download/weixin_44410704/19426606

三、运行结果

(1)Workspace

MATLAB 三路频分复用通信系统_第4张图片
MATLAB 三路频分复用通信系统_第5张图片
MATLAB 三路频分复用通信系统_第6张图片

(2)各幅度谱及时域波形图

MATLAB 三路频分复用通信系统_第7张图片

(1)原始信号的时域波形图和幅度谱

MATLAB 三路频分复用通信系统_第8张图片

(2)audio3未加入高斯白噪声时的频谱图

MATLAB 三路频分复用通信系统_第9张图片

(3)audio3加入高斯白噪声时的频谱图

MATLAB 三路频分复用通信系统_第10张图片

(4)三路信号频谱搬移后的幅度谱

MATLAB 三路频分复用通信系统_第11张图片

(5)复用信号幅度谱

MATLAB 三路频分复用通信系统_第12张图片

(6)第一路带通滤波器的幅度谱

MATLAB 三路频分复用通信系统_第13张图片

(7)第二路带通滤波器的幅度谱

MATLAB 三路频分复用通信系统_第14张图片

(8)第三路带通滤波器的幅度谱

MATLAB 三路频分复用通信系统_第15张图片

(9)第一路已调信号的幅度谱

MATLAB 三路频分复用通信系统_第16张图片

(10)第二路已调信号的幅度谱

MATLAB 三路频分复用通信系统_第17张图片

(11)第三路已调信号的幅度谱

MATLAB 三路频分复用通信系统_第18张图片

(12)三路信号解调后的幅度谱

MATLAB 三路频分复用通信系统_第19张图片

(13)低通滤波器的幅度谱

MATLAB 三路频分复用通信系统_第20张图片

(14)恢复信号的时域波形图和幅度谱

你可能感兴趣的:(MATLAB,电子信息工程各种设计,语音识别,信号处理,matlab)