matlab单边带调幅系统的建模仿真(笔记)
单边带调幅系统的建模仿真
希尔伯特变换
实信号 x(t) 的希尔伯特变换就是将该信号中所有频率成分的信号份量移相 −π/2 而得到的新信号,记为 x^(t)\hat{x}(t)x^(t)。对于单频率正弦波信号,设 m(t) = Acos(2πft + φ),则其希尔伯特变换为
m^(t)=Acos(2πft+ϕ−π2)=Asin(2πft+ϕ)\hat{m}(t)=A \cos \left(2 \pi f t+\phi-\frac{\pi}{2}\right)=A \sin (2 \pi f t+\phi)m^(t)=Acos(2πft+ϕ−2π)=Asin(2πft+ϕ)
对於任意实周期信号 x(t),可用周期傅里叶级数展开表示为
x(t)=∑n=0∞ancos(2πnft+ϕn)x(t)=\sum_{n=0}^{\infty} a_{n} \cos \left(2 \pi n f t+\phi_{n}\right) x(t)=n=0∑∞ancos(2πnft+ϕn)
希尔伯特变换为
x^(t)=∑n=0∞ancos(2πnft+ϕn−π2)=∑n=0∞ansin(2πnft+ϕn)\begin{aligned} \hat{x}(t) &=\sum_{n=0}^{\infty} a_{n} \cos \left(2 \pi n f t+\phi_{n}-\frac{\pi}{2}\right) \\ &=\sum_{n=0}^{\infty} a_{n} \sin \left(2 \pi n f t+\phi_{n}\right) \end{aligned} x^(t)=n=0∑∞ancos(2πnft+ϕn−2π)=n=0∑∞ansin(2πnft+ϕn)
实信号 x(t) 的解析信号 y(t) 是一个复信号,其实部为信号 x(t) 本身,其虚部为 x(t) 的希尔波特变换 x^(t)\hat{x}(t)x^(t)。即
y(t)=x(t)+jx^(t)y(t)=x(t)+\mathrm{j} \hat{x}(t) y(t)=x(t)+jx^(t)
例如对x(t)=cos(t)进行希尔伯特变换的程序如下:
t = 0:0.1:25;
s = cos(t);
s_h = hilbert(s);
plot(t,real(s,h),t,imag(s_h),'k--');
单边带调幅与解调原理
设基带信号为:
m(t)=∑n=0∞ancos(2πnft+ϕn)m(t)=\sum_{n=0}^{\infty} a_{n} \cos \left(2 \pi n f t+\phi_{n}\right) m(t)=n=0∑∞ancos(2πnft+ϕn)
则以Acos(2pifc*t)为载波的双边带输出(DSB)信号为:
sDSB(t)=m(t)Acos2πfct=Acos2πfct∑n=0∞ancos(2πnft+ϕn)=A2∑n=0∞ancos(2π(fc+nf)t+ϕn)+A2∑n=0∞ancos(2π(fc−nf)t−ϕn).\begin{aligned} s_{D S B}(t) &=m(t) A \cos 2 \pi f_{c} t \\ &=A \cos 2 \pi f_{c} t \sum_{n=0}^{\infty} a_{n} \cos \left(2 \pi n f t+\phi_{n}\right) \\ &=\frac{A}{2} \sum_{n=0}^{\infty} a_{n} \cos \left(2 \pi\left(f_{c}+n f\right) t+\phi_{n}\right)+\frac{A}{2} \sum_{n=0}^{\infty} a_{n} \cos \left(2 \pi\left(f_{c}-n f\right) t-\phi_{n}\right).\end{aligned} sDSB(t)=m(t)Acos2πfct=Acos2πfctn=0∑∞ancos(2πnft+ϕn)=2An=0∑∞ancos(2π(fc+nf)t+ϕn)+2An=0∑∞ancos(2π(fc−nf)t−ϕn).
上式第一项为上边带,第二项为下边带。上边带的调制输出为:
sSSB(t)=A2∑n=0∞ancos(2π(fc+nf)t+ϕn)=A2∑n=0∞(ancos(2πnft+ϕn)cos2πfct−ansin(2πnft+ϕn)sin2πfct)=A2m(t)cos2πfct−A2m^(t)sin2πfct\begin{aligned} s_{S S B}(t) &=\frac{A}{2} \sum_{n=0}^{\infty} a_{n} \cos \left(2 \pi\left(f_{c}+n f\right) t+\phi_{n}\right) \\ &=\frac{A}{2} \sum_{n=0}^{\infty}\left(a_{n} \cos \left(2 \pi n f t+\phi_{n}\right) \cos 2 \pi f_{c} t-a_{n} \sin \left(2 \pi n f t+\phi_{n}\right) \sin 2 \pi f_{c} t\right) \\ &=\frac{A}{2} m(t) \cos 2 \pi f_{c} t-\frac{A}{2} \hat{m}(t) \sin 2 \pi f_{c} t \end{aligned} sSSB(t)=2An=0∑∞ancos(2π(fc+nf)t+ϕn)=2An=0∑∞(ancos(2πnft+ϕn)cos2πfct−ansin(2πnft+ϕn)sin2πfct)=2Am(t)cos2πfct−2Am^(t)sin2πfct
下边带为
sSSB(t)=A2m(t)cos2πfct+A2m^(t)sin2πfcts_{S S B}(t)=\frac{A}{2} m(t) \cos 2 \pi f_{c} t+\frac{A}{2} \hat{m}(t) \sin 2 \pi f_{c} t sSSB(t)=2Am(t)cos2πfct+2Am^(t)sin2πfct
例题1
设基带信号为一个在 150Hz 到 400Hz 内幅度随频率逐渐递减的音频信号,载波信号为 1000Hz 的正弦波,幅度为 1。仿真采样率设为 10000Hz,仿真时间 1 秒。求 SSB 调制输出信号波形和频谱。
clear;
Fs=10000; % 仿真的采样率
t=1/Fs:1/Fs:1; % 仿真时间点
m_t(Fs*1)=0; % 基带信号变量初始化
for F=150:400 % 基带信号发生:频率150Hz~400Hzm_t=m_t+0.003*sin(2*pi*F*t)*(400-F); % 幅度随线性递减
end
m_t90shift=imag(hilbert(m_t)); % 基带信号的希尔伯特变换
carriercos=cos(2*pi*1000*t); % 1000Hz载波 cos
carriersin=sin(2*pi*1000*t); % 1000Hz正交载波 sin
s_SSB1=m_t.*carriercos-m_t90shift.*carriersin; % 上边带SSB
s_SSB2=m_t.*carriercos+m_t90shift.*carriersin; % 下边带SSB
% 下面作出各波形以及频谱
figure(1);
subplot(4,2,1); plot(t(1:100),carriercos(1:100),...
t(1:100),carriersin(1:100),'--r'); % 载波
subplot(4,2,2); plot([0:9999],abs(fft(carriercos))); % 载波频谱
axis([0 2000 -500 6000]);
subplot(4,2,3); plot(t(1:100),m_t(1:100)); % 基带信号
subplot(4,2,4); plot([0:9999],abs(fft(m_t))); % 信号频谱axis([0 2000 -500 6000]);
subplot(4,2,5); plot(t(1:100),s_SSB1(1:100)); % SSB波形上边带
subplot(4,2,6); plot([0:9999],abs(fft(s_SSB1))); % SSB频谱上边带axis([0 2000 -500 6000]);
subplot(4,2,7); plot(t(1:100),s_SSB2(1:100)); % SSB波形下边带
subplot(4,2,8); plot([0:9999],abs(fft(s_SSB2))); % SSB频谱下边带
axis([0 2000 -500 6000]);
例题2
对例题1产生的单边带(上边带)信号进行相干解调,仿真其解调波形和幅度频谱。
clear;
Fs=10000; % 仿真的采样率
t=1/Fs:1/Fs:1; % 仿真时间点
m_t(Fs*1)=0; % 基带信号变量初始化
for F=150:400 % 基带信号发生:频率150Hz~400Hzm_t=m_t+0.003*sin(2*pi*F*t)*(400-F); % 幅度随线性递减
end
m_t90shift=imag(hilbert(m_t)); % 基带信号的希尔伯特变换
carriercos=cos(2*pi*1000*t); % 1000Hz载波 cos
carriersin=sin(2*pi*1000*t); % 1000Hz正交载波 sin
s_SSB1=m_t.*carriercos-m_t90shift.*carriersin; % 上边带SSBout=s_SSB1.*carriercos; % 相干解调
[a,b]=butter(4, 500/(Fs/2)); % 低通滤波器设计4阶,截止频率为500Hz
demodsig=filter(a,b,out); % 解调输出
% 下面作出各波形以及频谱
figure(1);
subplot(3,2,1); plot(t(1:100),s_SSB1(1:100)); % SSB波形
subplot(3,2,2); plot([0:9999],abs(fft(s_SSB1))); % SSB频谱axis([0 5000 -500 6000]);
subplot(3,2,3); plot(t(1:100),out(1:100)); % 相干解调波形
subplot(3,2,4); plot([0:9999],abs(fft(out))); % 相干解调频谱axis([0 3000 -500 6000]);
subplot(3,2,5); plot(t(1:100),demodsig(1:100)); % 低通输出信号
subplot(3,2,6); plot([0:9999],abs(fft(demodsig)));% 低通输出信号的频谱axis([0 3000 -500 6000]);
例题3
设计一个单边带发信机、带通信道和相应的接收机,参数要求如下。
(1)输入话音信号为一个话音信号,采样率 8000Hz。话音输入后首先进行预滤波,预滤5.6 单边带调幅系统的建模仿真 预滤波器是一个频率范围在 [300,3400]Hz的带通滤波器。其目的是将话音频谱限制在 3400Hz 以下。单边带调制的载波频率设计为 10KHz,调制输出上边带。要求观测单边带调制前後的信号功率谱。
(2)信道是一个带限高斯噪声信道,其通带频率范围是 [10000,13500]Hz。要求能够根据信噪比 SNR 要求加入高斯噪声。
(3)接收机采用相干解调方式。为了模拟载波频率误差对解调话音音质的影响,设本地载波频率为 9.8KHz,与发信机载波频率相差 200Hz。解调滤波器设计为 300Hz 到 3400Hz 的带通滤波器。
根据题设参数,系统中信号最高频率约为 14KHz。为了较好地显示调制波形,系统仿真采样率设为 50KHz,满足取样定理。由於话音信号的采样率为 8000Hz,与系统仿真采样率不相等,因此,在进行信号处理之前,必须将话音信号的采样率提高到 50KHz,可用插值函数来完成这一任务。
首先编写程序将基带音频信号读入,进行 [300,3400]Hz 的带通滤波,并将信号采样率提高到 50KHz,进行单边带调制之后,将调制输出结果保存为 wav 文件,程序如下。
[wav,fs]=audioread('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]);
audiowrite('SSB_OUT.wav',0.5*SSB_OUT,Fs); % 将SSB调制输出存盘备用
音频文件下载
为了仿真指定信噪比的信道,编写信道仿真函数如下:
function out=ch5example9prog2(in, SNRdB)
% SNR_dB 设定信噪比
% in 输入信号序列
% out 信道输出序列
Fs=50000; %系统采样率
Power_of_in=var(in);
Power_of_noise=Power_of_in/(10.^(SNRdB/10));
bandwidth=13500-10000; % 信道带宽
N0=Power_of_noise/bandwidth; % 噪声功率谱密度值W/Hz
Gauss_noise=sqrt(N0*Fs/2).*randn(size(in));
[num, den]=butter(4, [10000 13500]/(Fs/2)); % 带通信道10KHz到13.5KHz
signal_of_filter_out=filter(num, den, in);
noise_of_filter_out=filter(num, den, Gauss_noise);
SNR_dB=10*log10(var(signal_of_filter_out)/var(noise_of_filter_out))
% 测量得出的信噪比
out=signal_of_filter_out+noise_of_filter_out; % 信道输出
利用信道仿真函数计算 SSB 调制信号通过信道后的输出结果,例如计算出信道信噪比为 20dB 时的信道输出,并将结果保存为「 Channel OUT.wav 」文件,输出仿真的实际测量信噪比为 19.7dB,与设置值相符合。
clear;
[in, Fs] = audioread("SSB_OUT.wav");
SNRdB = 20;
out = ch5example9prog2(in, SNRdB);
audiowrite("channel_out.wav",out,Fs);SNRdB = 19.6597
最后实现单边接收机:
clear;
[recvsignal, Fs]=audioread('Channel_out.wav');% 读入信道输出信号数据
t=(1/Fs:1/Fs: length(recvsignal)/Fs)';
fc_local=10000-200; % 本地载波频率9.8KHz
local_carrier=cos(2*pi*fc_local.*t); % 本地载波
xianggan_out=recvsignal.*local_carrier; % 相干解调
[fenzi,fenmu]=butter(3,[300 3400]/(Fs/2)); % 设计300Hz~3400Hz的带通滤波器
demod_out=filter(fenzi,fenmu,xianggan_out); % 对相干输出信号进行滤波
sound(demod_out/max(demod_out), Fs); % 播放解调音频
audiowrite('SSBDemod_OUT.wav',demod_out,Fs); % 保存输出信号
摘选的书籍:《MATLAB/Simulink通信系统建模与仿真实例分析》
matlab单边带调幅系统的建模仿真(笔记)相关推荐
- 常规调幅系统matlab结果,基于MATLAB的单边带调幅系统的建模仿真.doc
基于MATLAB的单边带调幅系统的建模仿真 目 录 0 前言1 1 单边带调制与解调的基本概念2 1.1 单边带调制2 1.2 单边带解调2 1.3 希尔波特(Hilbert)变化2 2 单边带调制的 ...
- matlab移相法实现单边带调制,根据Matlab 单边带体系仿真研讨
0 导言 依据通讯理论,单边带体系将功率悉数转化到了有用信息的边带,运用的带宽只要双方带调制信号的一半,具有100%理论传输功率和2倍的频带运用率,成为一种广泛运用的办法.现在,通讯设备大多选用单边带 ...
- matlab调幅举例,基于MATLAB的单边带调幅和解调的实现设计.doc
基于MATLAB的单边带调幅和解调的实现设计 数字通信原理课程设计报告书 课题名称单边带调幅SSB和解调的实现设计姓 名学 号 院 系物理与电信工程系专 业通信工程指导教师 2010年 1月 15日 ...
- matlab 调幅频谱ifft,通原抑制载波单边带调幅.doc
通原抑制载波单边带调幅 通信原理 课程设计论文 学院:信息工程学院 班级:通信09-2班 姓名:伍国超 学号: 抑制载波单边带调幅(SSB) 1.设计内容概述 设计目的 1. 研究模拟连续信号在SSB ...
- matlab与单边带系统仿真,基于Matlab 单边带系统仿真研究
0 引言本文引用地址:http://www.eepw.com.cn/article/201809/388626.htm 根据通信理论,单边带系统将功率全部转换到了有用信息的边带,使用的带宽只有双边带调 ...
- matlab信号仿真模型,对Matlab单边带信号处理得到生动的仿真模型
根据通信理论,单边带系统将功率全部转换到了有用信息的边带,使用的带宽只有双边带调制信号的一半,具有100%理论传输效率和2倍的频带利用率,成为一种广泛使用的方式.目前,通信设备大多采用单边带系统,信号 ...
- matlab单机带负荷系统模型,用MATLAB仿真实现电力系统静态稳定性分析
科技情报开发与经济 SCI-TECH INFORMATION DEVELOPMENT & ECONOMY 2008 年 第 18 卷 第 34 期 1 问题的提出 电力系统静态稳定是一个相对成 ...
- matlab带电阻性负载仿真,基于MATLAB的带整流负载同步发电机仿真研究
带整流负载的同步发电机系统已广泛存在于电站.舰船.飞机等独立供电系统中.对于整流系统模型的计算与仿真受到了许多学者的关注.但由于同步电机及整流桥数学模型建立和求解的复杂性,给人们的分析研究带来了一定的 ...
- 常规双边带调幅(AM)仿真
一.调制原理 常规双边带调幅又叫标准调幅,简称调幅(AM).假设调制信号 m(t) 的平均值为 0,将其加上一个直流分量 A0 后与载波相乘就可以得到AM信号. 调制模型如下图所示: 二.解调原理 对 ...
最新文章
- 一不小心肝出了4W字的Redis面试教程
- Ubuntu操作系统安装之开发人员必备
- 日志中的秘密 Windows登录类型知多少?
- Google发布Android Studio 1.0
- mysql启动触发器_MYSQL中禁用/启动触发器
- IntelliJ IDEA 部署 Web 项目,终于搞懂了!
- linux下的磁盘空间使用
- Javascript实现BFS算法
- cocos2dx实现翻书效果。
- 剑指offer全书题解 (Python)【更新完毕】
- 绿联网卡转接mac设置_绿联外置网卡Mac os 11.0 Big Sur驱动方案来了
- 截止失真放大电路_音频放大器结构组成_音频放大器分类
- Slick.AI | 人工智能在智慧环保应用案例
- 关于搭建k8s集群遇到的问题与解决方法
- 关于WGAN的学习总结——Lipschitz约束与正则化
- ArcGIS栅格数据四参数七参数投影变换
- 自增主键的sql设置语句
- 计算机打印机安装步骤,打印机安装步骤
- 计算机视觉学习路线—计算机视觉入门必读的20本书
- SiamFC代码配置复现 matlab版本
热门文章
- ES6中数组首尾两端和中间添加/移除数据方法
- Linux命令之nl命令
- java计算机毕业设计智能快递分拣系统源码+mysql数据库+系统+部署+lw文档
- php对接ai图片处理,php – 使用imagick将.psd和.ai转换为PNG / JPG
- 三分钟教你学Git(二十七) - 修改多个commit
- 基于单片机控制IGBT的应用怎么实现,首先得了解IGBT是啥
- 家庭消耗品跟踪管理软件HomeLists
- Kafka消息队列学习笔记1——Kafka入门1
- 谈谈读书如何提升自己
- Creo导入电路生成的emn格式文件并编辑标注尺寸-提示不重新生成模型错误-解决