【模拟信号】基于matlab调相信号产生+解调【含Matlab源码 987期】
【摘要】
一、获取代码方式
获取代码方式1: 完整代码已上传我的资源:【模拟信号】基于matlab调相信号产生+解调【含Matlab源码 987期】
获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证,...
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【模拟信号】基于matlab调相信号产生+解调【含Matlab源码 987期】
获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、调相信号产生+解调简介
相位调制,或称调相:载波的相位对其参考相位的偏离值随调制信号的瞬时值成比例变化的调制方式相。
调相和调频有密切的关系。调相时,同时有调频伴随发生;调频时,也同时有调相伴随发生,不过两者的变化规律不同。
实际使用时很少采用调相制,它主要是用来作为得到调频的一种方法。
三、部分源代码
%主程序
t0=1; %信号的持续时间,用来定义时间向量
ts=0.001; %抽样间隔
fs=1/ts; %抽样频率
fc=100; %载波频率,fc可以任意改变
t=[-t0/2:ts:t0/2]; %时间向量
kf=100; %偏差常数
df=0.25;
%所需的频率分辨率,用在求傅里叶变换时,它表示FFT的最小频率间隔
m=cos(pi*10*t); %调制信号,m(t)可以任意更改
int_m(1)=0; %求信号m(t)的积分
for i=1:length(t)-1
int_m(i+1)=int_m(i)+m(i)*ts;
end
[M,m,df1]=fftseq(m,ts,df); %对调制信号m(t)求傅里叶变换
M=M/fs; %缩放,便于在频谱图上整体观察
f=[0:df1:df1*(length(m)-1)]-fs/2; %时间向量对应的频率向量
u=cos(2*pi*fc*t+2*pi*kf*int_m); %调制后的信号
[U,u,df1]=fftseq(u,ts,df); %对调制后的信号u求傅里叶变换
U=U/fs; %缩放
%通过调用子程序env_phas和loweq来实现解调功能
[v,phase]=env_phas(u,ts,fc); %解调,求出u的相位
phi=unwrap(phase); %校正相位角,使相位在整体上连续,便于后面对该相位角求导dem=(1/(2*pi*kf))*(diff(phi)*fs); %对校正后的相位求导 %再经一些线性变换来恢复原调制信号 %乘以fs是为了恢复原信号,因为前面使用了缩放
subplot(2,2,1) %子图形式显示结果
%求信号相角的子函数,这是调频、调相都要用到的方法
function [v,phi]=env_phas(x,ts,f0)
if nargout==2 %nargout为输出变数的个数
z=loweq(x,ts,f0); %产生调制信号的正交分量
phi=angle(z); %angle是对一个复数求相角的函数
end
v=abs(hilbert(x)); %abs用来求复数hilbert(x)的模
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
四、运行结果
五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/117881351
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)