自学内容网 自学内容网

MATLAB实现AM调制解调

1.基本概念

1.1 AM调制原理

        调幅就是使载波的振幅随调制信号的变化规律而变化。基带信号m(t)与直流分量A0相加,然后和高频载波相乘实现AM信号的调制,如图1所示。

1.2 AM解调原理

       AM信号经过信道传输,引入噪声后,再和载波相乘,经过低通滤波器和隔直流后,输出原始基带信号,如图2所示。

2.MATLAB读取语音文件

       准备一段wav的语音文件,我用笔记本自带的录音机录制了一段语音“软件无线电小方圆.wav“,用MATLAB读取该语音文件,并获取采样频率信息。

clc;
clear all;
%% ***************read file*************************************
filename ='./data_source/软件无线电小方圆.wav';
[m,fm]= audioread(filename);% fm = 48e3; %音频的采样率
sound(m,fm);
figure(1);
plot(m);title('原始的语音信号');

我的这段语音数据源采样率48kHz,时域波形如图3所示,

图3 原始语音信号时域波形

3.AM调制相关参数设置和语音数据源初处理

        设置载波频率192kHz,载波采样率1.92MHz,AM调制直流分量0.5,代码里类似这些参数大家可以根据自己的需求修改。因为AM调制是用基带信号控制载波的幅值,即与载波信号数据相乘,所以在这之前,我们需要将基带信号的采样率进行处理,使其与载波信号采样率一致,代码如下:

%*****************参数设置***********************
fs = 1.92e6; %采样率 载波的采样率
fc = 192e3; %载波中心频率
am_M = 0.5;%直流偏量
%*****************插值48kHz to 1.92MHz************************
m_len=length(m)*fs/fm;%按照载波采样率的长度计算
m_t=zeros(1,m_len);
for i=1:length(m)
    for j=1:fix(fs/fm)
        m_t((i-1)*fix(fs/fm)+j)=m(i);
    end
end

4.Matlab实现AM调制解调

AM调制基带信号时域图如图4所示。

图4 AM调制基带信号

载波信号时域波形如图5所示。

图5 载波信号时域波形

AM信号时域图如图6所示。

图6 AM信号时域波形

AM解调后的信号如图7所示。

图7 AM解调完成信号时域波形

5.Matlab滤波器设计

滤波器系数获取步骤:

步骤1:使用MATLAB自带的滤波器设计工具,即fdatool获取滤波器系数。在MATLAB命令窗口输入fdatool回车,弹出滤波器设计工具

步骤2:滤波器参数设置。

选择低通滤波器,然后设置采样率、通带、阻带等参数后,最后点击设计滤波器,等待结束,生成滤波器,如图8所示:

图8 滤波器参数设置

步骤3:导出滤波器系数。

点击滤波器设计工具右上角“file”,下拉选择“Export”,设置导出系数的名称,勾选覆盖原数据,点击导出“Export”,如图9所示,返回到MATLAB工作区,找到刚刚取的变量名称,即导出的滤波器系数。

图9 导出滤波器系数

Matlab音频文件见:https://download.csdn.net/download/weixin_39813867/89880032

详细的源码可以评论留言


原文地址:https://blog.csdn.net/weixin_39813867/article/details/142888749

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!