MATLAB仿真实验

在MATLAB 中编写程序,产生一个 DSB 信号(具体参数根据自己制定的实验方案设置),绘制信号的时域波形图和频谱结构波形图,并对 DSB 信号的数据统计特性进行分析。

    该部分不仅完成了DSB调制,同时在此基础上成功完成了DSB解调。

流程图如下:

图1 DSB调制与解调流程图

代码详见DSB.m文件中。

clc
clear
close all;%-------------------------设置信号参数------------------------
fs=30.72e3;         % 采样频率
F=1000;             % 频率
Fc=4000;            % 载波频率
N=30720;            % 采样个数,N变大,时间长度变长
dt=1/fs;            % 时间间隔,fs变大,时间间隔变短,曲线变光滑
t=0:dt:(N-1)*dt;    % 时间向量,fs变大,时间长度变短
%------------------------------------------------------------%---------------------产生输入信号x--------------------------
% x(t)时域
n=wgn(1,N,0)/5;           % 产生高斯白噪声
x=cos(2*pi*F*t)+n;        % 获取x(t)的采样点
figure;                   % x(t)为加噪后的有用信号
subplot(221)
plot(t,x);
axis([2e-2 4e-2 -2 2]);
xlabel('时间(t)');
ylabel('幅值(V)');
title('x(t)时域');
%------------------------------------------------------------%-------------------------x信号的分析------------------------
disp('x(t)的均值为');
En=mean(x);                         % 求x(t)均值
disp(En);
disp('x(t)的方差为');
Dn=var(x);                          % 求x(t)方差
disp(Dn);freq=fft(x,N);                      % 做离散傅里叶
freq_d=abs(fftshift(freq));
w=(-N/2:1:N/2-1)*fs/N;              % 双边
subplot(222);
plot(w,freq_d);
%axis([-1500 1500 0 30000]);
xlabel('频率(Hz)');
ylabel('幅值(V)');
title('x(t)幅频特性');[c,lags]=xcorr(x,'unbiased');       % 求出自相关函数
subplot(224);
plot(lags/fs,c);                    % 在时域内画自相关函数
axis([-0.01 0.01 -1 1]);
xlabel('T');
ylabel('Rn(T)');
title('x(t)的自相关函数');% x(t)的功率谱密度
long=length(c);
Sn=fft(c,long);
labelx=(0:long-1)*2*pi;
plot_magn=10*log10(abs(Sn));
subplot(223)
plot(labelx,plot_magn);             % 画功率谱密度
%axis([0 6.3e5 -50 50]);
xlabel('w');
ylabel('Sn(w)');
title('x(t)的功率谱密度');
%------------------------------------------------------------%--------------------------带通滤波器------------------------
[bp,ap]=butter(5,[800*2/fs,2000*2/fs]);
[hp,wp]=freqz(bp,ap);
figure;
plot(wp/pi*fs/2,abs(hp));
grid;
%axis([4e2 3e3 0 1]);
title('带通滤波器');
xlabel('频率(Hz)'); ylabel('幅度');
%------------------------------------------------------------%------------------------产生信号Aa--------------------------
Aa=filter(bp,ap,x);                 % Aa表示通过BPF后的信号
figure;
subplot(221);
plot(t,Aa);
axis([2e-2 4e-2 -2 2]);
title('Aa(t)时域');
%------------------------------------------------------------%-----------------------Aa信号的分析-------------------------
disp('Aa(t)的均值为');
En=mean(Aa);
disp(En);%求Aa(t)均值
disp('Aa(t)的方差为');
Dn=var(Aa);
disp(Dn);%求Aa(t)方差freq=fft(Aa,N);%做离散傅里叶
freq_d=abs(fftshift(freq));
w=(-N/2:1:N/2-1)*fs/N; %双边
subplot(222);
plot(w,freq_d);
%axis([-1500 1500 0 30000]);
xlabel('频率(Hz)');
ylabel('幅值(V)');
title('Aa(t)幅频特性');[c,lags]=xcorr(Aa,'unbiased');          %求出自相关序列
subplot(224);
plot(lags/fs,c);          %在时域内画自相关函数
axis([-0.01 0.01 -1 1]);
xlabel('T');
ylabel('Rn(T)');
title('Aa(t)的自相关函数');%x(t)的功率谱密度
long=length(c);
Sn=fft(c,long);
labelx=(0:long-1)*2*pi;
plot_magn=10*log10(abs(Sn));
subplot(223)
plot(labelx,plot_magn);          %画功率谱密度
%axis([0 6.3e5 -100 50]);
xlabel('w');
ylabel('Sn(w)');
title('Aa(t)的功率谱密度');
%------------------------------------------------------------%-------------------------产生信号Ab-------------------------
Ab=Aa.*cos(2*pi*Fc*t);          % Ab是Aa乘以余弦载波后的信号(即DSB信号)
figure;
subplot(221);
plot(t,Ab);
axis([3e-2 3.5e-2 -2 2]);
title('Ab(t)时域');
%------------------------------------------------------------%-----------------------Ab信号的分析-------------------------
disp('Ab(t)的均值为');
En=mean(Ab);
disp(En);%求Ab(t)均值
disp('Ab(t)的方差为');
Dn=var(Ab);
disp(Dn);%求Ab(t)方差freq=fft(Ab,N);%做离散傅里叶
freq_d=abs(fftshift(freq));
w=(-N/2:1:N/2-1)*fs/N; %双边
subplot(222);
plot(w,freq_d);
%axis([-6000 6000 0 1.5e4]);
xlabel('频率(Hz)');
ylabel('幅值(V)');
title('Ab(t)幅频特性');[c,lags]=xcorr(Ab,'unbiased');          %求出自相关序列
subplot(224);
plot(lags/fs,c);          %在时域内画自相关函数
axis([-0.01 0.01 -1 1]);
xlabel('T');
ylabel('Rn(T)');
title('Ab(t)的自相关函数');%Ab(t)的功率谱密度
long=length(c);
Sn=fft(c,long);
labelx=(0:long-1)*2*pi;
plot_magn=10*log10(abs(Sn));
subplot(223)
plot(labelx,plot_magn);          %画功率谱密度
axis([0 6.3e5 -80 40]);
xlabel('w');
ylabel('Sn(w)');
title('Ab(t)的功率谱密度');
%------------------------------------------------------------%-----------------------产生信号Ac---------------------------
p=cos(2*pi*Fc*t);%余弦波
Ac=Ab.*p;                           % Ac是Ab再乘以余弦载波后的信号
figure;
subplot(221)
plot(t,Ac);
axis([3e-2 3.5e-2 -2 2]);
title('Ac(t)时域');
%------------------------------------------------------------%-----------------------Ac信号的分析-------------------------
disp('Ac(t)的均值为');
En=mean(Ac);
disp(En);%求Ac(t)均值
disp('Ac(t)的方差为');
Dn=var(Ac);
disp(Dn);%求Ac(t)方差freq=fft(Ac,N);%做离散傅里叶
freq_d=abs(fftshift(freq));
w=(-N/2:1:N/2-1)*fs/N; %双边
subplot(222);
plot(w,freq_d);
%axis([-2500 2500 0 30000]);
xlabel('频率(Hz)');
ylabel('幅值(V)');
title('Ac(t)幅频特性');[c,lags]=xcorr(Ac,'unbiased');          %求出自相关序列
subplot(224);
plot(lags/fs,c);          %在时域内画自相关函数
axis([-0.01 0.01 -1 1]);
xlabel('T');
ylabel('Rn(T)');
title('Ac(t)的自相关函数');%Ac(t)的功率谱密度
long=length(c);
Sn=fft(c,long);
labelx=(0:long-1)*2*pi;
plot_magn=10*log10(abs(Sn));
subplot(223)
plot(labelx,plot_magn);          %画功率谱密度
%axis([0 6.3e5 -80 40]);
xlabel('w');
ylabel('Sn(w)');
title('Ac(t)的功率谱密度');
%------------------------------------------------------------%------------------------低通滤波器--------------------------
[bp,ap]=butter(4,F*2/fs);
[hp,wp]=freqz(bp,ap);
figure;
plot(wp/pi*fs/2,abs(hp));
grid;
%axis([0 2e3 0 1]);
title('低通滤波器');
xlabel('频率(Hz)'); ylabel('幅度');
%------------------------------------------------------------%----------------------产生输出信号y-------------------------
y=filter(bp,ap,Ac);             % y是Ac通过LPF后的信号,从而实现解调
figure;
subplot(221)
plot(t,y);
axis([3e-2 3.5e-2 -2 2]);
title('y(t)时域');
%------------------------------------------------------------%-----------------------y信号的分析--------------------------
disp('y(t)的均值为');
En=mean(y);
disp(En);%求y(t)均值
disp('y(t)的方差为');
Dn=var(y);
disp(Dn);%求y(t)方差freq=fft(y,N);%做离散傅里叶
freq_d=abs(fftshift(freq));
w=(-N/2:1:N/2-1)*fs/N; %双边
subplot(222);
plot(w,freq_d);
%axis([-1500 1500 0 15000]);
xlabel('频率(Hz)');
ylabel('幅值(V)');
title('y(t)幅频特性');[c,lags]=xcorr(y,'unbiased');          %求出自相关序列
subplot(224);
plot(lags/fs,c);          %在时域内画自相关函数
axis([-0.01 0.01 -1 1]);
xlabel('T');
ylabel('Rn(T)');
title('y(t)的自相关函数');%y(t)的功率谱密度
long=length(c);
Sn=fft(c,long);
labelx=(0:long-1)*2*pi;
plot_magn=10*log10(abs(Sn));
subplot(223)
plot(labelx,plot_magn);          %画功率谱密度
%axis([0 6.3e5 -120 40]);
xlabel('w');
ylabel('Sn(w)');
title('y(t)的功率谱密度');
%------------------------------------------------------------

时域波形图:

图2 低分辨率DSB调制信号的时域波形

图3 高分辨率DSB调制信号的时域波形

输入信号为加噪后频率为F的余弦信号,通过乘以频率为Fc的余弦载波,绘制图形即可得到DSB时域波形,通过分析DSB时域波形,当分辨率越高时,越能够看见其形成的包络。

频谱图:

图4 DSB调制信号的频谱结构波形

通过分析DSB幅频特性:由于载波为频率Fc的余弦信号,时域上载波与调制信号相乘,即可在频域实现频谱搬移。

均值:

图5 DSB调制信号的均值

方差:

图6 DSB调制信号的方差

通过分析DSB统计特征:输入信号x(t)幅值为1,通过DSB调制后利用mean(),var()函数即可得到均值,方差。可见其均值为负值,方差较小,波形变化范围相对不大。

自相关函数:

图7 DSB调制信号的自相关函数波形

通过分析DSB自相关函数:在DSB调制下,信号的自相关函数变化具有周期性,相关时间较短,但DSB信号总体上有呈正相关,负相关的趋势。

功率谱密度:

图8 DSB调制信号的功率谱密度波形

通过分析DSB功率谱密度:根据维纳-欣钦定理,对DSB调制中自相关函数进行傅里叶变换即可得到功率谱密度,可见由于BPF的存在滤除了200Khz附近的噪声。由图可知功率谱密度近似以w = 200Khz对称,且在低频,高频处数值更大。

4、分析生物电信号数据

(1.1)心电图(ECG)

数据文件名:ECG.mat

包含25000个数据采样点,250个数据采样点为一组,共100组。

数据示意图:

图9 ECG示意图

代码详见Biological.m文件。

%--------------------------------------分析ECG过程--------------------------------------------------disp('ECG的均值为');
E1=mean(ECG);                         % 求ECG均值
disp(E1); disp('ECG的方差为');
D1=var(ECG);                          % 求ECG方差
disp(D1);[c,lags]=xcorr(ECG,'unbiased');       % 求出自相关函数
figure(1)
plot(lags,c);                    % 在时域内画自相关函数
%axis([-0.01 0.01 -1 1]);
xlabel('T');
ylabel('Rn(T)');
title('ECG的自相关函数');long=length(c);
Sn=fft(c,long);
labelx=(0:long-1)*2*pi;
plot_magn=10*log10(abs(Sn));
plot(labelx,plot_magn);             % 画功率谱密度
%axis([0 6.3e5 -50 50]);
xlabel('w');
ylabel('Sn(w)');
title('ECG的功率谱密度');

均值:

图10 ECG的均值

方差:

图11 ECG的方差

通过分析ECG统计特征:选取数据文件压缩包,将生物电信号ECG数据作为数组加入到MATLAB工作区中,利用mean(),var()函数即可得到均值,方差。可见其均值为负值,方差较小,波形变化范围相对不大。

自相关函数:

图12 ECG的自相关函数

通过分析ECG自相关函数:相关时间较长,且均大于0,因此ECG生物信号波形整体呈现正相关趋势且持续时间较长。

功率谱密度:

图13 ECG的功率谱密度

通过分析ECG功率谱密度:根据维纳-欣钦定理,对ECG自相关函数进行傅里叶变换即可得到功率谱密度。由图可知ECG的功率谱密度近似以w = 160K rad / s对称,且在低频,高频处数值更大。

(1.2)肌电图(EMG)

数据文件名:EMG.mat

包含22500个数据采样点,45个数据采样点为一组,共500组。

数据示意图:

图14 EMG的示意图

代码详见Biological.m文件。

%--------------------------------------分析EMG过程----------------------------------------------------disp('EMG的均值为');
E3=mean(EMG);                         % 求EMG均值
disp(E3); disp('EMG的方差为');
D3=var(EMG);                          % 求EMG方差
disp(D3);[c,lags]=xcorr(EMG,'unbiased');       % 求出自相关函数
figure(3)
plot(lags,c);                    % 在时域内画自相关函数
%axis([2e-2 4e-2 -2 2]);
xlabel('T');
ylabel('Rn(T)');
title('EMG的自相关函数');long=length(c);
Sn=fft(c,long);
labelx=(0:long-1)*2*pi;
plot_magn=10*log10(abs(Sn));
plot(labelx,plot_magn);             % 画功率谱密度
%axis([0 6.3e5 -50 50]);
xlabel('w');
ylabel('Sn(w)');
title('EMG的功率谱密度');

均值:

图15 EMG的均值

方差:

图16 EMG的方差

通过分析EMG统计特征:选取生物电信号EMG数据作为数组加入MATLAB工作区中,利用mean(),var()函数即可得到均值,方差。可见其均值为正值,方差相比ECG而言较大,说明波形变化范围相对较大。

自相关函数:

局部情况(低分辨率):

图17 低分辨率下EMG的自相关函数

整体情况(高分辨率):

图18 高分辨率下EMG的自相关函数

通过分析EMG自相关函数:相关时间相比ECG较短,但自相关函数幅值较大,因此EMG生物信号波形起伏较大且持续时间短。

功率谱密度:

图19 EMG的功率谱密度

通过分析EMG功率谱密度:根据维纳-欣钦定理,对EMG自相关函数进行傅里叶变换即可得到功率谱密度。由图可知功率谱密度变化剧烈,且幅值较大。

(1.3)脑电图(EEG)

数据文件名:EEG.mat

包含26900个数据采样点,1345个数据采样点为一组,共20组。

数据示意图:

图20 EEG的示意图

代码详见Biological.m文件。

%--------------------------------------分析EEG_1过程-----------------------------------------------disp('EEG_1的均值为');
E2=mean(EEG_1);                         % 求EEG_1均值
disp(E2); disp('EEG_1的方差为');
D2=var(EEG_1);                          % 求EEG_1方差
disp(D2);[c,lags]=xcorr(EEG_1,'unbiased');       % 求出自相关函数
figure(2)
plot(lags,c);                    % 在时域内画自相关函数
%axis([-0.01 0.01 -1 1]);
xlabel('T');
ylabel('Rn(T)');
title('EEG_1的自相关函数');long=length(c);
Sn=fft(c,long);
labelx=(0:long-1)*2*pi;
plot_magn=10*log10(abs(Sn));
plot(labelx,plot_magn);             % 画功率谱密度
%axis([0 6.3e5 -50 50]);
xlabel('w');
ylabel('Sn(w)');
title('EEG_1的功率谱密度');

均值:

图21 EEG的均值

方差:

图22 EEG的方差

通过分析EEG统计特征:选取生物电信号EEG数据作为数组加入MATLAB工作区中,利用mean(),var()函数即可得到均值,方差。可见其均值为正值,方差适中,说明波形变化相对平稳。

自相关函数:

图23 EEG的自相关函数

通过分析EEG自相关函数:相关时间EEG较长,自相关函数幅值适中且总体大于0,近似以T = 0 处对称分布,在T = 0处取得最大值。因此EEG生物信号波形相对平稳且持续时间较长,总体波形在T = 0处将产生一个峰值。

功率谱密度:

图24 EEG的功率谱密度

通过分析EEG功率谱密度:根据维纳-欣钦定理,对EEG自相关函数进行傅里叶变换即可得到功率谱密度。由图可知功率谱密度近似以170K rad对称,幅值变化相对剧烈。

思考题

为什么要抑制载波?相比与AM信号,DSB信号可以增加多少功率利用率?

答:载波功率不携带信息,抑制载波可以提高功率利用率。AM信号在满调幅情况下的最大调制效率为1/3,而DSB信号的功率利用率为100%,所以可以增加66%的功效。

模拟调制—DSB信号及生物电信号特性测量分析实验报告相关推荐

  1. matlab 模拟调制dsb,Matlab实现模拟调制与解调

    本文会介绍简单的模拟调制解调方法,涉及AM.DSB.SSB,但没有VSB,VSB相关的资料会在后文附上. 幅度调制幅度调制原理幅度调制是由调制信号去控制高频载波的幅度,使之随调制信号作线性变化的过程 ...

  2. matlab信号频率分析实验报告,信号抽样实验报告

    大连理工大学实验报告 学院(系): 专业: 班级: 姓 名: 学号: 组: ___ 实验时间: 实验室: 实验台: 指导教师签字: 成绩: 实验三 信号抽样 一.实验目的 1 学会运用MATLAB 完 ...

  3. matlab中s_cplot,matlab系统模型建立和动态特性研究分析实验.docx

    实验二MATLAB系统模型建立和动态特性分析实验 一.实验目地 1掌握如何使用 MALAB进行系统模型地建立: 2 ?学习利用MALAB命令得阶跃响应曲线,分析系统动态特性; 3.利用MALAB求阶跃 ...

  4. matlab语音信号分析实验报告,DSP实验二 语音信号分析与处理,南京理工大学紫金学院实验报告,信号与系统...

    实验二语音信号分析与处理 学号姓名 注:1)此次实验作为<数字信号处理>课程实验成绩的重要依据,请同学们认真.独立完成,不得抄袭. 2)请在授课教师规定的时间内完成: 3)完成作业后,请以 ...

  5. matlab信号分析实验报告,信号分析及处理实验报告(基于MATLAB).doc

    WORD 格式 整理 PAGE 学习 参考 资料 分享 武 汉 工 程 大 学 电气信息学院 专业班级 14通信3班 实验时间 12-16周周二上午 学生学号 1404200529 实验地点 4B31 ...

  6. MATLAB用相干解调DSB信号,AM DSB信号解调的MATLAB实现

    AM &DSB信号解调的MATLAB实现 一.实验目的 掌握AM&DSB解调器电路原理: 掌握AM&DSB解调仿真原理. 了解MATLAB软件,学习应用MATLAB软件的仿真技 ...

  7. Matlab心电信号的PQRST模拟-实验报告

    心电信号处理算法设计-实验要求 data4 是一段实际采样得到的心电数据, 采样频率为 100Hz, 波形如下图所示.设计相应的算法, 计算心率, 单位为: 次/分钟.可能会用到的知识为数字滤波器的设 ...

  8. 信号与系统实验感想 matlab,信号与系统MATLAB实验报告.doc

    信号与系统MATLAB实验报告.doc 成绩 信号与系统实验报告 课 程 名 信号与系统 学 部 机械与电子信息学部 专 业 电子信息工程 学 号 姓 名 曹 禹 指导教师 吴国平 日 期 2013/ ...

  9. matlab gui语音信号去噪的原理,多媒体实验报告语音信号的去噪增强处理

    一.实验目的●了解计算机存储信号的方式以及语音信号的特点.●掌握谱减法实现语音去噪增强的原理.二.实验设备条件●计算机(带话筒).●Matlab.三.实验要求1.利用windows自带的录音机录制一段 ...

最新文章

  1. 2021深度学习的研究方向推荐!Transformer、Self-Supervised、Zero-Shot和多模态
  2. 把java文件打包成.jar (jar命令详解)
  3. SERU最佳需求分析方法
  4. 【面经】记一次字节跳动前端面试经历
  5. OpenUDID 是否足够替代 UDID 使用?有何不同?
  6. 你不知道的JavaScript-0
  7. 网站服务器中病毒该如何处理,网站被中了木马无法删除怎么办? 解决网站中病毒的办法...
  8. 完成简单的四则运算(包含小括号)(栈)
  9. http的“无连接”指的是_头条一面:HTTP协议无状态中的 quot;状态quot; 到底指的是什么?...
  10. MYSQL8.0 排序查询报错 this is incompatible with sql_mode=only_full_group_by
  11. 电子证件照尺寸怎样裁剪?怎么把照片裁剪成2寸?
  12. 根据经纬度来计算旋转矩阵
  13. CSM32RV20开发(二):Si24R1 通信模式调试
  14. sim卡iccid编辑软件_5G超级SIM卡 能握在自己手中的 才是最安全的
  15. awb入门(4).颜色恒常方法(一)gamut mapping
  16. 使用梯度下降求函数的极小值
  17. 程序员笑话:只有程序猿才看得懂
  18. 人工智能换脸技术python_人工智能几行代码实现换脸,python+dlib实现图文教程
  19. 计算机组成与系统结构指导,计算机组成与系统结构实验指导书
  20. 11.0、C语言数据结构——栈

热门文章

  1. 手把手教你使用Python抓取QQ音乐数据(第一弹)
  2. 华为扩大内存代码_华为畅享6内存扩大拨号代码 | 手游网游页游攻略大全
  3. 【贪心】加工生产调度【经典】
  4. 服务器ftp文件不能共享文件夹权限,ftp服务器共享文件夹权限设置
  5. CF11A Increasing Sequence(C++)
  6. Camera基本结构及原理
  7. mysql五日均线代码_5日均线--攻击线
  8. python爬取歌曲教程_歌曲网站,教你爬取 mp3 和 lyric
  9. 如何使用 you-get 下载视频
  10. OpenGL ply